Full disclosure: I have been a programmer and project manager in the past and I’ve been unemployed for a while now so if this comes out as a rant – well maybe it is.
I’ve been searching for a job for a while and I’ve noticed some things about the so called programming job market.
The first thing that is noticeable is that everyone wants to hire ‘full stack’ programmers. By full stack they mean programmers that are experts at programming in the back end (to servers, databases, ERP systems, etc), architecture and design of systems and applications, the middle tier and ETL, and the front end (presentation layer) to the end user.
Now, I’m going to make a statement that I’ve taken from my experience in the SAP world. If someone tells you they are an expert in all of SAP they are lying to you.
I will make a statement right now – if someone tells you they are an expert ‘full stack’ programmer – they are lying to you.
I am very honest about my strengths and weaknesses as a programmer in the pursuit of a job. I think though, that the key to getting a job must by lying. Everyone must be lying (virtually everyone) and employers just don’t catch on.
That doesn’t mean that programmers in general don’t know the different aspects of coding. On average they do. What I am saying is that we all have weaknesses and strengths. To claim you are an expert full stack programmer is to deny that maybe you are really strong on the back end and weak on the front end or that you have no experience interfacing with other systems or something like that.
To continue in this subject; however, is that a lot of job requirements extend the programmers required skills in to project management. For me, this isn’t an issue. I have certifications in T-SQL, PMP, and my CSSGB.
If I have these things isn’t really the point. The point is that just because you are a programmer, doesn’t mean you do everything.
To use an analogy – look at a construction site. There are specific people there to perform specific tasks. There is even a specific job where a flagman guides people on the ground and guides crane operators so that no one gets hurt. Different people are experts at pouring concrete, metal work, there are architects that design the buildings, project managers that guide all the workers, truck drivers with CDL to bring the concrete and there are different truck drivers than the ones that bring the supplies for construction.
So, with these job requirements it would be a fair assertion to make that in programming, they expect the architect to design the solution (ok), build the building, pour the concrete, do the metal work, drive the trucks, and manage the project.
It doesn’t make any sense, does it? Yes, a single programmer *can* do everything. They just aren’t going to do everything well. Yes, an architect can design the building and do all the parts of construction, but they aren’t going to do a great job with everything.