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
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.
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
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.
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.
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.
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.
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.
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.
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!
How about Azure, Angular?
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
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.
I would actually add the challengers to this list: GCP and Vue.js. I believe they will gain more traction this year
Yes to big data!
I I think I have to give it to you Shahid that's an amazing analysis I'm working to get get up to speed and all those areas and my computer just crashed so it must be a good sign.
I would also add Kotlin to this, not just for Android, but for backend development as well.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.