Confusion of a Developer

Waad
8 min readFeb 15, 2021

A data analysis of Stack Overflow’s developer survey data from 2020

Introduction

Oxford Learner’s Dictionaries defines confusion as:

A state of not being certain about what is happening, what you should do, what something means, etc.*

Well, I am a developer and I had been confused many times in regard to what, when and how to improve my knowledge in this field and advance further in my career.

Technology is changing in a very fast pace and is hard to keep up with. When we speak of technology here, we are referring to any software development technologies such as programming languages, databases, frameworks, etc. In this post, I used Stack overflow’s 2020 Annual Developer Survey data to get a better understanding of the developer community direction and preferences.

The contribution to this survey came from 64461 developers from 183 different countries in which 75% of them identified as developers by profession. Each participant was asked 60 questions about software development, personal preferences, job information in addition to many others. My analysis of this data aims to answer the big three questions of What, When, and How.

Part I: What technologies to pick?

To enter a “Tech” field, improve your current job position or even innovate with a personal concept that popped into your mind, you will need some guidance on the current state of the technology nowadays and the expectations for the upcoming years.

In this part, I am comparing six branches of software technology in which developers worked with in 2020 to the technologies they are targeting in the future. This knowledge is necessary for whoever is considering learning new technology, starting a new project or upgrading an existing one.

This study will cover five different areas of software development starting with the programming languages. Even though many people are still very interested in learning Javascript, almost a slightly higher number of people are interested in learning Python. Moreover, more people are interested in learning Typescript in 2021 compared to previous year. We also notice the addition of Rust and Go to the 2021 list and that less people have been interested in learning PHP and C++ recently.

Programing Languages

We see the most change in the web frameworks section, people are more interested in learning React.js, Vue.js and Angular nowadays while we see that JQuery and Express loosing popularity. We also see the new introduction of Flask to the developers’ lists.

Web Frameworks

As for the databases, PostgreSQL is leading while other technologies has become higher on developers’ lists for next year such as MongoDB and Elastic search.

Databases

An additional category we are checking is miscellaneous technologies which covers Frameworks, Libraries and Tools. The largest number of developer were and still are interested in working with Node.js. However, with IR4, it seems that TensorFlow is getting a lot of interest from the developers. Some technologies are still popular and recommended such as .Net Core.

Miscellaneous Technologies

Next we see that the platforms used and desired to be used next year are almost identical with slight changes in positions. The only thing to notice here was that wordpress did not make the list in 2021 while kubernetes did.

Platforms

One of the most important tools a developer can use is the collaboration tools. Still GitHub (as expected) is the first position followed by Slack. Interestingly, not many others changed their positions within the top 10 tools.

Collaboration Tools

Part II: When should I start?

Next, I will try to answer these two intimidating questions every developer had asked :

“When should I stop my formal education and get a job?”

“ Did I make a mistake when I steered clear from getting a higher educational degree?”

For this, I am analyzing the various possibilities for job satisfaction, positions and job types based on educational levels and majors.

To start with, if there is one thing most developers agreed on, it is the importance of having a formal education, such as a university degree in computer science to their careers. In regards to developers’ jobs, around 34% of the developers see that it is a key qualification. On the other hand, 49% see its importance but not as a mandatory requirement while 16% do not believe it actually has any influence.

Since formal education is important, let’s examine which majors were developers mostly interested in. As you can see from the figure below, more than 60% of the developers who contributed to the survey have been or are currently enrolled in formal education that is either Computer Science, Computer Engineering or Software Engineering. This is followed by almost that 9% in Engineering disciplines and 8% in IS, IT or system admin majors. Additionally, we notice that a total of 10% of the developers belonged to natural science and mathematics.

To analyze this further, considering how fields of study change with time and that many majors were introduced in last few years, I provided the below figure comparing the majors between two age groups (10–39 and 40–69):

Next, I looked at the effect of the highest educational degree on developers employment.

From the above figure we can see that:

  1. Most developers in full-time jobs have BS degree. However, we also notice that in each employment category, BS degree holders are the majority.
  2. Large number of MS Degree holders are employed full-time or are independent, contractor or freelancer.
  3. There is a higher change of getting a full-time job for people who attend collage/university without earning a degree compared to people who never completed any formal education.
  4. Some students also have full-time careers.

Finally, I looked at job satisfaction for each developers’ educational degree:

According to the survey, we notice that in all categories, we have the same pattern. However, the main notice is that in general, a larger number of developers are either very satisfied or slightly satisfied with their jobs.

Part III: How developers act?

So now that you made up your plans and drew your path, you are getting into some unfamiliar territories and you ask yourself “How would other developers act?

First, let’s imagine you are planning to find a new job, you would ask “How did developers learn more about a company?” from the survey we see that mostly from company reviews or via media.

Then you became unsure which job offers to accept when they have the same compensation, benefits, and location. And you would ask yourself “How did other developers decide which one to pick?” The answer is that they considered many factors in which technologies they will be working with was the deal-breaker. Office environment, company culture and time flexibility came next.

Later at your job, while working, you face an issue that prevents you from completing your work and you ask yourself “Well, how would other developers act when they are stuck?” The simple answer was “…Visit Stack Overflow”.

It has been months or even years since you started your job and you wonder “How often do other developers learn a new technology?” 74% of the developers suggested learning a new technology either every few months or at least once a year.

Later on, you decide it is the time for you to pick a career path and ask “How can i choose?” The data below shows that most developers are either back-end developers or full-stack developers followed by front-end developers. The choice would be interesting, would you rather pick something that is popular (and it is probably popular for a reason) or something rare and become a unique individual. It’s up to you to choose!

Conclusion

At the end of this post, we can say that we:

  • Compiled our expectations for advancements in the software development technologies. We identified which technologies still have people’s attention and which ones we should steer away from.
  • Looked at the importance of education on the developers future and the best timeframe to enter the field. We found that BS and MS degrees in Computer Science, Computer Engineering or Software Engineering are the best options for developers.
  • Finally, we looked at the patterns in developers actions and decision making. This provided beneficial information such as the importance of learning new technology at least once a year, benefit of using Stack Overflow when facing obstacles, in addition to a provide a guide for career selection and advancement.

Resources

--

--