I remember getting a 20% raise in my salary after 3 months of self studying node.js with couple online courses. Self learning is a crucial part of being a software developer.
🤔What skills can optimize your market value as a developer in 2020?
I have curated a list of emerging dev skills based on data insights from StackOverflow developer survey, Indeed and RemoteOk and Linkedin.
1. Amazon Web Services (AWS)
AWS emerged as the most diverse and widely adopted cloud service among many companies. Big, small alike most companies are moving to cloud from on prem. Moreover, many larger organizations are concerned with scaling than ever before. AWS being of the major cloud provider in the space there is a huge demand for developers with AWS skills.
2. React.js
React.js has surpassed all the other modern frontend framework in 2019 and it is growing. Backed by Facebook and trusted by some of the industry giants React is becoming the framework that everyone loves. React has a solid community behind it and has introduced some great features like hooks in 2019 that accelerated its popularity. The demand for good react developers will continue to rise in 2020. If you are already familiar with React it would be a good idea to learn some of the other tools in the ecosystem such as GraphQL, SSR etc.
Want to know what's new with javascript in 2020? Check this post out
New JavaScript features coming in 2020 that will surely rock your world!!
Shadid Haque ・ Dec 18 '19 ・ 4 min read
3. GO
Google’s GO language is gaining popularity. There are tons of remote companies that are actively looking for GO developers in North America and Europe. If you are already proficient with either one of Node.js, Ruby on Rails or PHP (Laravel) you should pickup GO as your second backend language of choice. If you are new to backend development, I would not recommend GO right away. I noticed most of the GO jobs listed are geared towards senior devs so it might not be very practical to learn GO as someone who is just starting out. GO is also very efficient in developing cloud native applications.
4. Redis
If you are thinking of picking up a new database/datastore to learn Redis is the way to go. StackOverflow rates Redis as most loved and rapidly growing technology.
Unlike traditional databases Redis is an in-memory data structure store. Redis is a popular choice among large scale applications and microservices as it can be easily implemented and can be used as a message broker and caching system.
5. Apache Spark
If you are already a full stack developer and looking to wet your feet in the big data field then Apache Spark will be a profitable skill to have. Data gathering and analysis is becoming crucial for many organizations. Thus demands for developers with data skills is also on the rise.
These are my top picks. Would love to hear what you think. Do you agree/disagree? Have I missed something? Let me know in the comment section. Until next time 😀
Top comments (42)
No offense but while there is nothing wrong with learning Go, AWS, ... you forgot the single most important skill to actually boost your salary
==> becoming better at salary negotiation
*Edit: * wow my comment has hit a nerve. As I said I have ideas and a draft post on how to be less naive during the salary negotiation. Connect with me if you are looking for a job currently and want to try those ideas out
dev.to/jmfayard/
As a freelancer my biggest weakness is that!
I have a draft of a post on salary negotiation but I'm procrastinating on it :)
share it :)
I'll wait your post then.
Cool!
That would not be soon though.
I feel in this case that I have to practice the ideas I want to share instead of letting the others do all the hard job :)
This weakness is common in Full time employees as well... like me.. :P
It takes a lot time, courage to be pro in salary / compensation negotiation.
Read this blog
medium.com/@bayareabelletrist/i-in...
Cool list, but including Apache Spark is a bit far fetched IMO ... if your specialty is web dev then I don't really see how it makes sense to spend time on Apache Spark, unless it's for hobby purposes.
Data science is a completely different game from web dev and it's not that trivial to get into it. Employers are not going to pay you a cool salary just because you played a bit with Apache Spark, while you don't know anything about the principles of data science.
People who are able to get good at web dev and at data science are probably an extreme rare species, in virtually all cases you would choose either one or the other to specialze in.
On the other hand, things like Docker and GraphQL would be good to add to this list :-)
Actually that's a good point. I was thinking of adding graphql but then I decided to mention it in the react section. As for big data I totally agree, I was little uncomfortable putting it in there. I feel like having a broad overview of how data science fits in fullstack development is a skill that can go a long way. Then again I'm no expert in data science either. As you said practically one can only be an expert in one of these.
Right!
However I fully agree with the other 4 items: AWS, React, Go and Redis ... all 4 are technologies that are definitely in high demand and can be used on many web dev projects.
React is a no-brainer, AWS (cloud) is definitely mainstream, and Redis is pretty ubiquitous.
Go is a bit of a special one because it goes again the trend of "everything Javascript" but I can definitely see that Go has a lot of momentum on the backend.
I think Apache Spark and other data streaming techs are a huge deal to web dev. At Pluralsight we are using Spark to read from Kafka and transform the data in real-time to show analytics to our customers. My team's stack was React/C#/Postgres. We're now introducing Spark using the Scala API. We're not doing data science or machine learning. We're still a web dev team, but Spark, combined with Kafaka, is so powerful it is helping us to move faster with more agility. I think it absolutely belongs on this kind of a list.
I can see where you're coming from, but in my book this is still "niche" and only relevant for top 5% websites/apps which need that amount of scalability and data processing. I've never had a use case for this sort of tech for the small to medium scale sites/apps that I'm building.
Sure. It may not be in as popular demand as the other techs on the list, but you can definitely increase your salary by learning Apache Spark. From my experience the supply of Spark devs is low so those few who know it have an advantage in the salary negotiation. I just don't want anyone to think "I shouldn't learn Spark because it won't help me increase my marketability." It is not your typical web dev work, as of today, but it could be in the future. :shrug:
Thanks! I'm a self-employed freelance web dev however, so that probably makes my situation slightly different. But maybe it's something that I could utilize in one of my future projects, or add to my resume to attract (more/better) clients.
Then again, there's already a mountain of interesting technologies that I want to look at (at the moment I'm looking at Blockstack and dApps, pretty cool), the problem is there are only 24 hours in a day.
But I'll definitely keep Spark at the back of my mind.
I work in a shop that is heavily php based and we build a lot of reports. Query dB, do some mapping and spew out some bespoke report for different arms of the business. Sometimes the task is so long that we end up writing php logic that becomes difficult and boring to maintain and resource intensive. Apache spark can handle this with a simpler codes. I do hate building complex reports in PHP and the bulk of the task is looping and mapping and reducing.
Well that's interesting, puts a different perspective on things. Apache Spark and Kafka aren't things you hear a lot about and seem to be a bit outside of the mainstream so it's interesting to hear about it.
For a project which I'm currently doing I'll need to implement something like full text search (or at least powerful multidimensional search) but I guess there are other technologies that are more suitable for that than Spark/Kafka.
Yes, I pretty much agree with it. In fact I would replace Spark with Kafka.
I think Spark, for real-time web dev, needs something like Kafka so starting there is a great idea.
Apparently (I know next to nothing about it but I'm reading one of the other posters' comments) Spark and Kafka can be used in tandem and have synergies.
I was thinking a bit, if „new emerging technology“ equals „salary raise“...
Here are a few meta-thoughts and questions apart from specific items of your list:
I'd say only learn something if you can somehow apply the knowledge (right now or in the foreseeable future) ... otherwise I'd call it hobby and not a professional investment.
You can make the code, but can you communicate how it was built and why it's of value to your whole team?
I think 2020 is the year of separating those who only code and those with the ability to collaborate and code outside the dev team.
Yes, hard skills will show your coding prowess but soft skills like being able to coach and mentor juniors, leading a team, etc. will get you even more. :)
I totally agree.
While i agree salary negotiation skills are critical the biggest most embarrassing technical skill i see lacking in modern developers is the tools they use everyday - in particular linux, bash, vim, simple things. If all you know is a an IDE i am unimpressed. Currently i manage multiple teams.
If they manage to solve the problems at hand, why do you care if they are using git from the command-line or from the - honestly much better - interface in the IDE?
Its not about how they use git, the most common deployment platform for the languages you name and the cloud service providers in the suggested list is a linux OS. All of the products I have responsibility for are deployed in Kubernetes using a Docker container built on - you guessed it Linux.
Basically the most common building block across all of the technologies you named is that they run on top of Linux. If you don't understand the underlying platform you are deploying on then when things go wrong and a developer needs to diagnose a problem they will be incapable to do so without that basic knowledge.
It is truly like anything in life, if you don't understand the basics then your higher level skills are crippled which makes you worth less in the marketplace. In any job interview I give I ask about basic commands, if the dev doesn't know them they don't get the job.
If they are not curious about or able to learn those things, I would no thire them either.
On the other hand, truth to be told, nobody can know the basics of everything, there are certainly basic things I don't know myself as for 2020.
It's actually a success of good computer science when most people don't have to understand how things works behind the scenes, it means we manage to invent an abstraction that is not leaky.
See Conceptual compression means beginners don’t need to know SQL — hallelujah!
Love your list except Apache Spark, which; I'd substitute ASP.NET core.
Thanks..and I agree maybe shouldn't have put spark now that I think of it lol. ASP.NET is an emerging beast however. I am currently learning it and I can see some disruptive things coming from Microsoft (blazor, azure .net cloud functions to name a few). Good point, I will probably write another piece about these. But definitely agree having ASP.NET core makes you a very desirable developer in the enterprise world
ASP.NET has been around for about 20 years. ASP.NET Core, its sucessor is currently on release 3.0. It brings ASP.NET to all platforms. It's currently clocking in as the fastest backend on market.
Other than Typescript and Github, ASP.NET Core is MSFT's power player for backend. They've spent huge budgets to get where they are now. I don't see it fading any time soon as the only competitor will be Node based servers. But Node may not yet be fully CPU agnostic like C#. That alone is why ASP.NET Core is a great choice.
The cons are it is not an Isomorphic Javascript solution. This is where Node shines. Some folks are saying node now has ability to use all cores on its single thread design. This will be a game changer.
How about Azure, Angular?
Machine Learning, AI also comes in this list.
You should then make 2 separate lists, one list for web dev technologies and a second list for data science, AI and ML ... the overlap between these two areas (people who can do both) is close to zero.
I appreciate your opinion. But I really don't understand, why people treat Data Science differently...
Nowadays Data Science is everywhere. For example, if someone has an E-commerce site, they can trained a module based on existing data and make some predictions for his business strategy.
Now, Data Science has two parts,
1) Research -- Only for Data Scientist.
2) Coding staff -- web developers can do it easily.
Right, I see your point - if you leave the research (the conceptual "thinking") to a proper data scientist, then writing the code can probably be done by a developer versed in Python or whatever language is required. But in that case I wonder how much real "data science" is needed at all by the dev, it's a matter of coding what the data scientist cooks up.
Your analysis of AWS was really good because I'm in the Bay area and I talked to a recruiter not too long ago and they don't even care if you can code but if you have any WS you just fit into so many places I would see it's better if you can but there's just a lot of support work out there with AWS managing other people's code bases so I'm trying to like really lock that down in the next month to two months