What it takes to become a developer?

Image: the TV series Halt and Catch Fire

In this blog I’ll analyze the 2020 developer survey conducted by the good people of Stackoverflow. In particular, I’m interested in answering three questions: 1) What is the profile of an average developer, in particular in relation to formal education. 2) What are the pros and cons of being a developer. And 3) What programming languages and technologies should you add to your arsenal in order to make yourself more attractive in the job market.

My main focus is to shed some light on the developer community and hopefully give some insights to less experienced individuals that may be interested in either breaking into the field or advancing their careers.

But first, let’s have a quick glance of the dataset. The dataset is consisted of more than 64K developers, from 184+ countries. More than 70% of the respondents are male, while only 6% identifying themselves as women. As for the demographics, almost 19% of the respondents live in the US, with another 41% coming from only 9 other countries including UK, Germany, France and India.

Now let’s dive a bit deeper into the dataset and answer a few interesting questions. And if you want a more detailed result please checkout my analysis in my GitHub page.

Who is a typical developer?

Here, my main focus is on the role of formal education: Is formal education important?

Overall, more than 72% of the responders have a bachelor degree or higher level education. But how big a role formal education plays in a developer’s career in reality?

In the following table we could see that only 16% of the responders attach no importance to the role of formal education in their respective careers. However, If we break down the responses by the degree, we notice a huge difference among various categories. For example, more than 1/3 of those with no college degree or some college education have mentioned that formal education is not necessary.

Should you become a developer?

Perhaps this is the most interesting result in the dataset to me: 78% of the 47.2K responders who are developer by profession mentioned that they code as a hobby. For me, there are few things that can beat this feature: being able to mix your profession and hobby.

The result for job satisfaction is not that clear, somewhere in the 50–50 range. And when they asked if they had to work overtime, only 7% answered never. In fact, more than 1/3 of the responders mentioned that they work overtime at least couple of times a month. So, if that’s a crucial factor to you, better be aware of it.

What technologies should you especially pay attention to?

Being a developer requires to always stay on top of up and coming technologies. This is especially dizzying for those who just want to break into the field. Hence, I’ve analyzed the response to the questions with respect to career enhancement.

My rationale is that if a particular programming language or technology is on top of the to-master-list for a big bunch of developers, then learning them will have a positive impact for especially the less experienced individuals.

JavaScript & Python come on top of most desired programming languages.

Having analyzed the responses, perhaps not surprisingly, if you want to be in demand in this market, focus on the followings: master JavaScript and python as your programming language.

For analysis of structured and unstructured data, PostgreSQL and MongoDB come on top.

Furthermore, you may want to be comfortable with PostgreSQL and MongoDB. Last but not least, add these frameworks to your arsenal: node.js and react.js if you want to go into web development route and TensorFlow if you’re more interested in ML and data science.

Pro Tip I: DevOps

Image: Real Python

The data suggests that more than 60% of the responders believe knowledge of DevOps is important in their job. As someone who is somewhat experienced in this field, I can attest that proficiency with DevOps is becoming ever more important. If you really want to distinguish yourself from other candidates, you may also want to improve your skills in this area. Especially if you’re going to — or are interested in — work in smaller companies.

Pro Tip II: Communication Skills

Finally, remember that being a developer is especially a collaborative profession. You’re always communicating with others — including your future you. This happens sometimes with code, sometimes with writing documents, sometimes by presenting your findings etc.

As you begin to improve your technical prowess, keep in mind that communication skill is more important than yet another programming language.

Good luck.