My last article, From Frontend to Fullstack, got quite an attention, so I think I hit a nerve here. So I got the feeling I should dig more in-depth here, but in what direction?
One comment raised an interesting point.
I'm going FullStack... but still sudying. At the moment I can't see why I should learn serverless first, because of job's market. SQL is still a must to use, with a framework like Laravel.
In future, serverless will be a super fun stuff to learn. Not only it's fast, but the AWS and Google UI to their servers, are super cool and easy to understand.
Nice article.
I found this interesting. Is he right? Is the job market just searching for old tech?
The Job Market
I'm a freelancer, I write articles, teach people, and generally only do greenfield projects, haha. So my focus is on the tech that generates value with as least effort as possible.
The problem is, most companies don't have that luxury. They have code-bases that use some technology, and they have to maintain it. For various reasons, they can't simply move from one tech to another, just because it would save them significant money in the long run.
Companies, like people, can be tight on money or lack the skills needed to stay competitive.
Then some people want a well-paid job. They don't care if they have to write Java or Rust, they don't care about Kubernetes or Nginx; they heard software engineering is well-paid, so they go all in and try to score a cushy office job that comes with good pay.
Doing Job Research
I wanted to check this out. Does the job market just include things like SQL and Laravel?
Since I focus on frontend and fullstack here, I went through the most prominent job websites an searched for "fullstack" jobs. The results looked something like this:
- Angellist 2997
- LinkUp 2458
- CareerBuilder 2078
- Linkedin 1853
- Indeed 1023
So Angel List would give us the most significant number of "fullstack" job results. Since I don't have all the time in the world, I choose to focus on the most prominent site AngelList.
I went through 100 jobs I found for "fullstack" for you, and I extracted all tech required to get these jobs. The jobs were from all over the world.
The Top 30 of Fullstack Tech
This is the tech I found on 100 fullstack job offers.
- React 50%
- Node.js 40%
- JavaScript 33%
- REST 26%
- Amazon Web Services 21%
- TypeScript 21%
- Java 21%
- PostgreSQL 20%
- Docker 19%
- MongoDB 18%
- Python 17%
- Kubernetes 17%
- Angular 16%
- GraphQL 16%
- Git 14%
- MySQL 14%
- HTML/CSS 14%
- Redux 12%
- Go 11%
- Spring 11%
- React-Native 10%
- Express.js 9%
- Vue.js 8%
- Google Cloud Platform 8%
- Blockchain 8%
- Ruby on Rails 8%
- Hibernate 7%
- jQuery 7%
- Bootstrap 7%
- SQL 7%
Interpretation
So what does this list tell us? Most importantly, the top 5 are interesting: React, Node.js, JavaScript, REST, and AWS.
These technologies alone are enough to go full stack.
Sure, the AWS part is a bit cheating here because AWS is a moloch of services, and anything that you need to create web services is found on AWS.
On the other hand, this is also what I'm already preaching here for months.
As a frontend dev, you already know JavaScript. If you get on an expert level just in that one language and learn about some essential AWS services, you're good to go to build almost everything.
And now we even know it gives you a good chance of employment.
What's also interesting. Most offers there list multiple competing technologies as a requirement. They often say you should know one of the big frontend libraries: "React, Angular, or Vue." React isn't just running circles around the other frameworks; it's often accepted as a substitute skill for an Angular/Vue job.
Disclaimer
I used the top 30 and not the top 10 because the results would exclude exciting alternatives to the mainstream tech.
These were just 100 jobs, and about 10 of them didn't list any technology at all.
Some technology seems to be so obvious, the offers didn't even mention it, OR the tech was implicitly included in other technology. I didn't give these extra "implicit" points.
JSON and XML were not mentioned explicitly, but it was apparent that the companies wanted an API that used one of these languages. Probably 5% mentioned one of them; the rest omitted them. HTML/CSS is an implicit requirement for web apps, but only 14% said so. The same goes for tools like Git or services like GitHub.
What to Make of it?
If you happen to be a frontend developer, you already know JavaScript/TypeScript, Node.js, HTML/CSS and Angular, React, or Vue. I think with that, most of the top 10 are already done.
So what is left?
REST, AWS, Java, PostgreSQL, Docker, and MongoDB.
Getting proficient in REST API development is a good start, and learning either MongoDB or PostgreSQL is a good idea.
The AWS ecosystem is quite large and covers everything from file-storage to game development, so it would be crazy to learn all of it.
My take on AWS? Most of these companies probably aren't anywhere near cloud-native systems, so the AWS core services are enough. Get one of the associate certs, and you're good to go. You learn stuff about AWS when doing them, AND you have something to put into your application later.
I'd say Java isn't mandatory here, because most jobs only require JS/TS skills, but it can certainly give you an edge.
Learning Resources
Let's look at the available learning resources for the top 10.
React
I created a short course and wrote a book about learning React called React from Zero. I tried to explain the component tree and how everything fits to "vanilla JavaScript."
The React Website has a list with many free and paid React courses, so if you want to freshen up, go there!
Node.js
There are useful guides on the Node.js website to get an overview.
FreeCodeCamp has a vast text-based course on JavaScript in general, but they also touch Node.js in the later chapters.
Online Course Tutorials has a compilation of good paid and free Node.js courses.
JavaScript
The best resource here is FreeCodeCamp hands down. You can code away for weeks, don't pay a cent, and learn about JavaScript, frontend, and backend.
Hackr.io also has a compilation of the ten most beloved JS courses out there, if you prefer something more video-y.
REST
Moesif, the API analytics company I work with, has many free resources for REST API creation. They also talk about other API types.
Also, Digitaldefynd talked about the four best REST API courses of 2020.
Amazon Web Services
A Cloud Guru has many resources for AWS. They get you ready for the certificates but also go into details about specific things like machine learning or serverless. I'd say they're the best resource when learning about AWS.
TypeScript
Javin Paul found you the top 10 free typescript courses in 2020.
Java
And again, the Java guru Javin Paul also gathered the top 5 Java couses for you. Very prolific educator this Javin!
PostgreSQL
The PostgreSQL website lists a bunch of courses that could be interesting.
Coursesity also did the work and looked for the nine best courses to get up to speed with PostgreSQL.
Docker
Online Course Tutorials is at it again with the ten best online courses for Docker!
MongoDB
MongoDB has its own offical courses with certification and everything.
Digitaldefyned also list 6 courses for learning MongoDB in 2020.
Getting a Fullstack Job
Keep in mind that getting a job isn't all about technology, and I just went through 100 jobs here.
But if you want to get a fullstack job, you have to start somewhere and in times of Corona and isolation, leveling up your tech skills is probably the most straight forward approach to better chances in the job market.
What do you think? Let me know in the comments!
Top comments (4)
I'm always like the facepalm meme when seeing those articles.
"Is the job market just searching for old tech?"
Well, if there are companies asking for PHP 5.6 I could understand the statement but there are tones of fullstack jobs out there with the stack being PHP 7.x, MySQL/MariaDB, html, css, sass/scss, js + some js framework.
There are many others that are the same but changing PHP for Java, python, ruby and so, and/or changing the DB to PostgreSQL, Mongo or SQL Server for example.
If you see a job offer that asks for react, vue, angular, preact... this is not a full stack position usually, it's a full front-end one unless you see something like Node.js and/or graphQL where it's more probably to be a full stack.
Important Note that many job offers are made by HHRR department or external companies and they just don't give a fuck about what each tech is, so tones of times you'll see job offers asking for that all at the same time:
Html, css, sass, scss, js, jquery, bootstrap, angular, vue, react, php, mysql, mariadb, java...
Then you apply, the company contact you and you must ask "but.. you use all that on the same project? It sounds crazy and a hole where no one wants to be" then they usually say you the projects they have, the tech used on each and what they are really asking for (which is annoying and sometimes a lose of time).
Also docker is not a must (I mean, unless you apply to a job position where they ask for something to generate docker containers from a non-dockerized app, you'll simply run docker-compose up command and that's all, docker exec as much), same for kubernetes where it's a sysadmin the one who usually takes care about this so there are not prior tools to learn, you must focus into other points first.
Of course REST is a must for all of us, doesn't matter if back, front or full stack.
Also remember that any senior developer is indeed a full stack developer but there's some point on your career where you need to specialize more into either back or front (or database architect, or analyst, or sysadmin or...) so there are front-end devs who knows and are able to perform back-end analysis and build back-end architectures, and the same over database, being a help on the team even having a back-end sub-team and a DBA. Also making 90% front end job while on back end and running database queries when needed (I just described my profile) and there are people that does the same in reverse (back end devs who are few percent into front end jobs).
Thank you for this thorough comment.
Interesting perspective!
Thanks for linking to so many awesome resources! ❤️
You're welcome!
I hope they help :D