So there is no need to be smart to be a developer ?
I have conducted technical interview and my main focus has ALWAYS been how smart the developer is. The market is saturated with developers having below average abilities and a bad hire cost much more than rejecting few passable ones. That's how it is.
I can probably brag since ALL people who passed my interviews and got hired were the top performers. Not good, right at the top after few weeks or few months.
How does that happen? What I am seeking is potential, not what was done. Has someone some potential and can he express it? That’s what I am answering.
The tests have mostly three parts: pure technical knowledge (language, frameworks, tooling), trivia (general IT knowledge), problem solving (reading and writing code, solving problems).
The last part has much more weight as the remaining two parts can leverage the ability to quickly learn to be fulfilled. The reverse is not true, you can know design patterns by heart without being able to implement them or apply them in proper situation. It would be even a dream to have them adapted to the situation at hand!
I have no shame to define metrics and standardize the way the test is conducted. I am quite proud of it.
Here is an example of it:
As you can see “problem solving” accounts for 50%. You can also see that the number of items increases as the items require less and less thinking in later questions.
Here is an example of question being brainless: “What is OWASP?”. You know, or you don’t.
I do not know why some people start saying one does not need to be smart to be a developer and this is something that simply hurts the market. Not everyone can be a developer.
Did you know that there are quite a lot of offers requiring the developer to assume more than his role?
Here is the first offer I found on Monster.be by typing “php” and selecting Brussels as a region.
Title: Drupal Developer - PHP/ Symfony
Obviously, I had to redact the top, but I wanted the screen to be easy to recognize, hence the “wasted” space.
I color-coded it by roles. Each role is a position that exists in the IT world:
- Yellow: Architect [responsible for system architecture]
- Cyan: Business Analyst [responsible for gathering requirements and refining them, offer strategies to achieve a goal too]
- Pink: Project manager [responsible to oversee project life-cycle, often the SPOC for a team]
- Green: Consulting/Technical adviser [responsible for technical decisions, can offer recommendations]
- Orange: Quality control [execute tests—more recently: write them!] and report on quality
Now, the funny part. I took the data from glassdoor:
- Software architect : 4.598 month
- Business analyst: 4.200 month
- Project manager: 5.444 month
- Technical advisor: 4.755 month
- Quality control (aka "software tester"): 2.312 month
- Software developer: 4.045 month
We can quickly see something: developers are cheap. They become very cheap when they even do parts or whole of the functions above!
How did we get to this situation? Developers are smart, damn smart. They have to learn every day and challenges renew. In 2000, making an Ajax request was painful (XMLhttpRequest), changing the web page at run-time was tedious. Then something called JQuery combined in the advance of browser technologies made that part easier … so we moved to having full application built into the browser! Today, you can edit Word documents and navigate your files and play games right in the browser! Even VR…
Did we call back all developers in a secret training center during the night? No, they went along. They kept up to date and learned.
This is THE job that can change from one year to another. So, that’s not a miracle that a developer can take on easier jobs.
This did probably put you in denial. How can these smart people be underpaid? Well, contrary to what is advertised, there is no shortage of developers. There is a shortage of competent ones. Companies hire incompetent developers, lowering the wages for the most competent. They hurt themselves in the process, but the most competent developers will fix the technical debts then leave for better pastures or move to a Business Analyst, Software Architect or Project Manager role. One problem here is that there are too many people who get trained to fill these roles and are subpar compared to a developer who could fit.
To give you a practical insight on the developer job, I created a friendly version of some problems I asked to developers. You can give them a go and appreciate how difficult these can be. These are for junior developers, so they use concepts everyone should be able to come up with. Also, you are not under “interview pressure” which makes them even easier. You will have to click to read the texts.
If you solve each in less than 10 minutes, congratulations, you have the basis to pursue development. If it’s opaque to you after 30 minutes, you won’t cut it.
If you did it seriously, you may have been challenged by the last two. Few people will get these as they look like “maths” puzzles. Albeit, the concepts covered are really basic and pervasive. (Not many details not to spoil this.)
Lastly, some people would think it’s illegal, non-ethical, elitist or whatsoever. Only the "elitist" part is true. While we admit that size or strength may be a deciding factor for a job, we can’t tolerate intelligence can be. It’s time to revise that thinking!
Do not hesitate to comment, but be civil and give some ground when required.
What can be asserted without evidence can also be dismissed without evidence — Hitchens's Razor
Software Developer | .NET | SQL | Web Development | Focused on Delivering Robust & Efficient Code
6yGood article, though for an OCD like me the typos are annoying :) [Bellow, really? :D]