Originally from yourdevcareer.com
Have you seen tech articles that talk about how certain software development fields pay more than others?
Certain fields like machine learning generally pay more than web developers, etc.
Sure.
But then these articles go on to say that if you want to rake in the cash long-term then picking a specialization like machine learning, AI, data science, etc. will pay you much more.
For example, there was this article which re-capped some of these ideas.
![javinpaul](https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F101616%2Fc488dc69-7dca-4855-b291-3711ce5ac7da.gif)
13 Highest Paying Tech and Programming Jobs for Computer Engineers
javinpaul γ» Jul 9 '19
This article wasn't saying that you should become a data scientist, for example, in order to make tons more money. But generally, the same ideas and figures are being thrown around quite a bit on the web.
I disagree with this type of conclusion.
Let's Talk About Real-World Salaries
Gross and Net salary are very different beasts.
Every one of my paycheques leaves me with just about 55-60% of my gross salary. Taxes in Canada are pretty high. And I'm not even in the highest tax brackets either.
I also have to pay into other things like a federal pension program, employment insurance, and other non-negotiable government programs. Even if I never use them. But that's another story.
Let's take some metrics from the article I quoted, which was derived from Stack Overflow's 2017 developer survey and have a look at some more realistic salary calculations.
Real-World Salary Calculations
Machine learning software developers made, on average, $108,000 USD in the United States in 2017.
Web developers made $90,000 USD.
That's a difference of $18,000 USD a year. Sounds great?
Let's take my general deduction percentage, which, on the lower realistic end, is about 40%.
40% of $18,000 is $7,200.
So, my net gain is about $10,800 (assuming I haven't entered into a new tax bracket).
Not sounding as great, eh?
Over a bi-weekly pay period, this is a gain of about $415 per pay. So $830 every month.
That's a good chunk, but not as much as you probably would have estimated up-front.
And depending on where you live, this may not offset the cost of living very much since location also plays a role in salary amount.
P.S. This article is originally from YourDevCareer.com where you can check out more articles and resources to help accelerate your career growth!
More Considerations
Now, let's include the overhead of specializing in machine learning vs. web development.
Web Development
I studied programming as part of a 2-year college program. Many web developers chose to join a fast-track boot-camp, are done within a few months and then end with a legit web developer job. Overall, these programs will cost a few thousand dollars a year.
Some boot-camps will even let you pay "later" by taking a chunk of your future salary once you've landed a developer job.
Machine Learning
What about machine learning?
Well, you need to know linear algebra, applied statistics, tons of mathematical algorithms, deep learning and neural networks, natural language processing, etc.
I once had a job offer to work for a software company that was doing some awesome stuff in the medical field. I declined the offer for "reasons". But I was very impressed with the work they were doing.
I had tons of interest in their core system and had asked lots of questions about it.
They created a natural language processing system that would let medical professionals and organizations feed it with text files containing information about drugs, etc. This system would use machine learning to extract and classify the various drugs and medical information contained in the text, then link them to their individual ingredients, etc. Pretty sophisticated stuff.
Were web developers allowed to touch this system? Nope. Never. Never. Never.
It was built and maintained by a Ph.D. holding scientist.
There's the rub.
Real machine learning systems that are going to be serving fields like medical, financial, etc. need super highly qualified scientists.
In other words, you need to get A LOT of training. Lots...
Is a $10,800 net increase in average annual salary worth years of intense training and potentially tens of thousands of dollars of student debt?
I would agree that some industries aren't as critical as the medical industry. Those companies won't necessarily be looking for developers with as much training. But still, the bare minimum requires some intense mathematical training.
What Does Work Then?
I believe the specific industry or technical specialization itself doesn't matter nearly as much as becoming a recognized expert in your niche.
I've talked about this concept before - finding niches as you progress in your career that will help you stand-out.
Thought Experiment To Drive This Home
Let's play a little thought experiment (hopefully, it goes the way I intendπ).
Imagine you are hiring a web developer for your growing start-up in the manufacturing industry. Your company is introducing a new way for manufacturing plants to manage their machinery in a way that will save them tons of money every year.
You need a backend developer who has experience with distributed systems, among other things.
Your candidates are:
a. 7 years of experience in backend development with about 5 years working in distributed systems professionally for the same company.
b. 4 years experience overall in backend web development while working on a distributed system for the last 2 years. But, has written articles featured in well-known publications which are known to feature industry experts on this topic. Has also spoken on a few podcasts that are known to interview experts in this field. He/she has also written a small book to help introduce developers to distributed systems design.
Who would you pick?
I would pick b.
Why?
Candidate "a" has more experience in terms of their "professional experience". Their professional experience with distributed systems is more than double that of candidate "b".
But. That's it. All of their expertise is isolated to the company(s) they work for.
How can we verify that they actually did a good job? How can we verify that, even though candidate "a" was successful at building distributed systems, it was done in an efficient way, was secure, etc? How do we really know they are learning about any new better ways to be thinking about these systems?
Candidate "b", on the other hand, has placed himself/herself into the hands of the public community. Not only that, they are being featured as somewhat of an expert in the field. Not that they are necessarily super-advanced in their knowledge, but they are standing out.
This person also wrote a book directed to a beginner audience on the topic, and may not have the experience "on paper" that candidate "a" does. But, we can be certain that they have been "tested", as it were, by the community at large.
That being said, the 2 years of experience that this person had might be considered equivalent to more experience overall since they've been involved in the community and putting in some serious effort to master the areas they have written and talked about.
Not all experience is created equal.
Leverage Points
In addition, this candidate has more (what I like to call) leverage points.
Leverage points are these kinds of varied yet relevant achievements, experiences, etc. that you can use to impress, for example, a potential employer.
The more of these you have, overall, the better impression you leave.
For example, candidate "a" mostly has one leverage point: Professional experience building distributed systems in a private company.
Candidate "b", however, has way more:
- Professional experience with distributed systems (about half of the other candidate in years)
- Featured in well-known publication(s) X,Y,Z
- Featured in well-known podcast X which has hosted industry experts like A,B,C
- Written a book on the subject that has received positive reviews by the community
There is a kind of "stack" to these leverage points that help to verify the core skills this person needs to demonstrate.
See, candidate "b" isn't an "expert" in the sense that they have the same number of years of experience as other candidates.
However, they are perceived as an expert because what they do know has been solidified by the community.
We trust that this person is solid and has been vetted socially.
On top of all this, when candidate "b" is in their interviews - most of the interviewers won't even have a working knowledge of distributed systems. But, this candidate will make a serious impression on them by pointing out these leverage points.
Leverage points can be helpful during salary negotiations too π.
P.S. If you are curious about salary negotiation, I would recommend the book "Never Split the Difference: Negotiating As If Your Life Depended On It".
At the end of the day, these leverage points help you create a more robust impression to your potential employers that you are the real deal in your field.
What Are Some Common Leverage Points?
Near the end of this article about career ownership, I listed out a few ways to own your career. This is also a good starting point to think about what leverage points you can gain.
Naming dropping, for example, is a big one. If you can point out that you've been featured by some big well-known publication/brand, it will really impress your audience.
Of course, this isn't the core of your expertise.
This stuff is like icing on the cake to prove that what you already have stated about your skills is true.
It's the difference between being perceived as "good enough" and being perceived as exceptionable. Or, as Seth Godin would put it - remarkable.
In The End
If you focus on putting yourself out into the community and providing real value then you will grow your reputation.
One of the hardest parts of hiring is knowing whether the candidate in question is good at what they do and whether we can trust them.
Naturally, if the public community trusts them - then that's huge evidence that someone hiring can trust them too. Therefore, is also more reason to pay them more since they've proven themselves as being worth investing in.
Keep In Touch
Don't forget to connect with me on:
Navigating Your Software Development Career Newsletter
An e-mail newsletter that will help you level-up in your career as a software developer! Ever wonder:
β What are the general stages of a software developer?
β How do I know which stage I'm at? How do I get to the next stage?
β What is a tech leader and how do I become one?
β Is there someone willing to walk with me and answer my questions?
Sound interesting? Join the community!
Top comments (13)
I particulary liked the last part. I was kind of scared of pushing myself out to the community. I am very much like candidate "b" probably with considerbale less experience. I have only worked 2years Freelance and less than 4 months remote. I couldn't even get an internship in my locality just last month.
But within the first month I started writing my confidence has grown. I feel a part of the community. Taken a lot of feedbacks. Many people followed my tutorial. I have closed 1 amazing offer and have another one in hand. Its an amazing turn around in less than a Month.
Maybe my employer saw my article or not, I have no clue. I was asked about Redux, I said I had no clue because I barely started learning React. I told the interviewer that I knew Hooks and Context instead. He was excited to talk about it. Because I had written an indepth tutorial about it, just days after learning. I had a thorough understanding of what I was talking about . That helped me greatly in sealing the offer
Man - this is awesome π I LOVE to hear stories like this!
You've proved that even putting in the extra time to learn stuff on the side (that's relevant) can really help! I'm really excited for you π
Thanks @james . Reading articles from folks like you who take the time to do it was inspiring to me. I am glad I started and growing little by little.
I have a hard-time believing the average salary for web developers is $90k. I did a quick google and I'm seeing reputable sites reporting the average between $59k and $75k in the US. (links below)
That said I agree with your point, it's good to invest in your career especially since that low barrier of entry to general web development means there are always newcomers coming into the market to compete for those jobs.
Ya, I would agree with you on that. I almost grabbed the stats from 2019 but felt that they seemed to be more realistic/relevant from 2017
Hi.
I took once one job that was offered to many previous candidates. He had rejected it because it was "too complex" for the planed schedule. One of them even wrote a book over the programming language and had many publications, as he did share with me later.
I did knew the basic structure of the language but a lot of components that could be combined, because of my previous experience in other works.
Also I had some previous knowledge over the required problem domain.
In that case "candidate a" was more effective.
Some years later I was hired as "candidate b" for an application with a lot of knowledge over the arquitecture. But most of hard requirements came from the business logic (the problem domain). And the result was not the same.
Don't trust blindly on the publications. At the end you need working code not theory.
At least that your are hiring an architect...
Def. There has to be some investigation into a candidate and the quality of these extra "leverage points" too.
Trying to figure out what candidates are better can be really hard too.
But overall, putting in the extra work will help you excel.
As you said, sometimes the raw domain knowledge and experience is what counts more. I would expect this in more enterprise type positions though.
I didn't start reading that post expecting to have a discussion about what you said, but I actually really enjoyed it.
It is really true that participating into the community is a very proper manner to prove your knowledge.
And much more than that explaining a technical concept (or anything else) is the perfect way to really understand that specific concept.
Indeed as you have to explain it you can't do something implicitly in front of your audience. That's why you really have to deep dive into the core concepts in order to explain them clearly.
And as Einstein said
π€π€ Well said.
Great article! You do an excellent job of explaining why learning in public is such a powerful concept.
Thanks Johan!
Unless I'm missing something there is a calculation error in step 1:
120k - 90k = 30k more
.6 * 30k = 18k take home
Those classes are starting to look a bit better
I still take your point
Ha! That's a typo π I'm gonna fix it π
Should be $108,000... I was messing around with the 2019 stats and then decided to stick with 2017 since I had already done the math. Forgot to revert that one π
Thanks for pointing it out!