Stack Overflow Survey — How to be Satisfied in the Field

Hey everyone! Here to talk about that ever relevant StackOverflow survey. Maybe, every Data Scientist has looked at it, but it’s always interesting to want to check back in, and start exploring the information that fellow developers are giving us. One of the questions that I’ve seen explored, in regards to this dataset (see here https://medium.com/@josh_2774/how-do-you-become-a-developer-5ef1c1c68711), is how a person becomes a developer. I started to think of other insights that this dataset could provide. I started from the stance of someone who has already become a developer (I work in web development), and asked myself a question, that I think many other people have asked themselves, “How do I become a happy developer?”. As well as a hypothesis, maybe looking at the happines (‘JobSatisfaction’ in the dataset) over a period of time in the career would shed some light on this question.

The inspiration for this came from the ‘JobSatisfaction’ column, and, after sifting through the columns in the dataset, I decided that these ones may be relevant to my question: ‘Professional’, ‘Country’, ‘FormalEducation’, ‘HomeRemote’, ‘CompanySize’, ‘CompanyType’, ‘YearsProgram’, ‘DeveloperType’, ‘JobSatisfaction’, ‘Salary’. It will be interesting to take a look at the values of their R2 error, once converting these categorical variables to dummy variables. In looking at the data, I noticed many values for the ‘YearsProgram’ column, and I decided to reduce the number of columns here, as well as remove any missing values (The categories are already too broad to impute with something sensible, like the mode).

My first step in analysis was to take a look at the means of the quantitative values in the working set: ‘Salary’ and ‘JobSatisfaction’. It’s probably easy to guess what trend I saw here, but it’s nice to have the numbers support it. As the years increased, so did the values for both ‘Salary’ and ‘JobSatisfaction’. After looking at the quantitative variables, naturally, I began to wonder about the qualitative variables, which were better predictors. Next step was to build a function that calculated the R2 error for a particular categorical variable, and pass the rest of them through. I found that the best predictor of JobSatisfaction, across all age ranges was HomeRemote. Not a huge surprise there, as developers are generally independent workers. There was a lot of interest though, in the 2nd best predictors, which changes after 0–10 years. Secondarily, people under 10 years of programming, the best predictor is the ‘Professional’, and afterwards it is the ‘CompanyType’ category. I made some bar plots here, to see which values of these categorical variables would produce the highest JobSatisfaction.

Wow, I know I went digging for these answers, but sometimes, they can be hard to face. After college, I was all self-taught in terms of web development, and that was certainly when I was the least satisfied with my job. At that time, I was working at CVS, trying to get that big break into development. It’s hard to break into the field, that’s for sure, but it’s the commitment to the time to learn how to code, that prepares anyone for this kind of job. After 10 years, of programming I can understand that, whether or not you consider yourself a professional starts to matter less, you are what you are at that point. And yet, something else becomes more important, the CompanyType.

Continuing with the trend of HomeRemote, the developers who are the most satisfied within the CompanyType category are those working independently. More sepcifically though, these developers are working at startups, and the least satisfied developers are working within state owned companies, or a publicly traded organization. It has become more clear to me that, developers need their space to produce work in a happy way. Now, I know the “happy way” is not necessarily the best way, but it was the intended question to answer. So, how to be happy in development, a few pointers from this dataset:

1. Stick with it!

As you continue to progress this skill, you will simply start to see more money coming in. Yes, money does not equal to happiness, but it is important to see the fruits of your labor. In other words, there is a lot to gain from continuing to work hard, and not worrying too much.

2. Improve your day to day responsibilities.

If you have spent time learning how to program, well, you should be spending time in the office programming. Putting in effort outside of work, and not utilizing it, will cause anyone to be less satisfied in there day to day. This is always relevant to developers, who are constant learners by nature. This may mean having a conversation with your boss, and if that doesn’t go well, having a conversation with a recruiter. Do not compromise the things you spend time teaching yourself.

3. Be realistic about the company you work for.

So you stuck with it, and you’re a bonafide developer. You’re making more money and you’re more satisfied. That’s great, but don’t be complacent. There are many companies that are not structured correctly to manage their developers, so you have to be the change you want to see. Take the leap, and become a part of a startup. You’ll have to push yourself harder, but you’ll find yourself more satisfied than you were at that job where you were merely complacent.

--

--