The skills list required to be a full stack developer is long and it can be hard to know exactly what skills you need and to what level before you starting looking for a job. The often shared online resource for this kind of thing is roadmap.sh but, while it is extensive, I actually think the amount covered here is too much to be helpful to new developers. So, I have my own list, it’s a bare minimum required skills list and it looks like this:
- A basic understanding of how the internet works and HTTP requests (GET, POST, PUT, PATCH and DELETE) and the basic response codes (200, 404, 500)
- HTML - W3Schools HTML
- CSS - W3Schools CSS
- A CSS frameworks like Tailwind or Bootstrap
- JavaScript - W3Schools JS - yes just one language, it’s the only viable option for frontend so just use it on the backend as well.
- Package manager like npm - @allthecode npm overview
- NodeJS - W3Schools NodeJS and ExpressJS
- React
- React Component library like MaterialUI
- Git version control - W3Schools Git
- Know enough about security to know that you don’t know enough about security (CORS, HTTPS, Content Security Policy) - Web Dev Security Basics
-
A database technology (pick a or b)
- a) MySQL is a great started RDBMS - W3Schools SQL
- b) MongoDB is the primary NoSQL database technology University Mongodb
- How to make a REST API in NodeJS and Express
- Docker and containerization - this is a more advanced topic however having an awareness of Docker and the basics of a Docker file would be a big ✅
- Awareness of testing with Jest for Javascript.
- Understanding of Linux commands and some basic OS principles.
Absolutely required items are in bold.
Being full stack is not about being an expert in all of these, it is about knowing enough to get a system up and running, being able to search for the right things on Google and have a sensible conversation with someone who is an expert in their respective areas. You need to be a good, well rounded developer but you don’t need to be expert in every field!
Want more like this? Sign up to my mailing list at Career Switch To Coding and get a free chapter from my book.
Latest comments (62)
I don't see any mention of accessibility? I'd argue that in this day and age, every developer doing any work on the front end at all absolutely needs to know this:
I think this is something that would be best learned in the first few weeks and months of a job. This list is aimed at new developers and career switchers - accessibility can feel like a very deep area to get into and, while I'm not minimising its importance, it just isn't a required skill to get into development. I would also say that it is probably something that should be handled by a frontend dev really as badly done accessibility is pretty much as bad as no accessibility.
I completely disagree, that mindset is partly why accessibility on the web is such a problem right now. It's viewed as less important and someone elses job.
Accessibility is a fundamental principle of any front end web development (and as such something a full stack developer needs to know). I'd put it above needing to know how to use npm, which is certainly useful, but not essential, and most developers can get by with a copy paste of an npm command without needing to know what the tool is or what it does.
As a discipline, it's something I see too often pushed back as less important at all levels. I've seen managers instruct teams to "leave the accessibility stuff" until last because of tight deadlines. I've seen senior developers push back on it in favour of polishing the CSS because "accessibility is just for a tiny percent of our audience", and I've seen junior developers have little to no knowledge about the subject because it wasn't deemed important enough by seniors.
The industry as a whole pretty much acknowledges at this point that one of the main obstacles to accessibility is education, and particularly education at an early stage of web development. It's not an add-on, it's a fundamental, and developers need a basic foundation in order to continue thinking about it throughout all aspects of their work.
So, I think it absolutely should be part of any full stack developers checklist.
Thanks for this comment, you make fantastic points and I agree with what you are saying overall.
However, this list is specially focussed on the skills needed to get a job as a full stack dev. Rightly or (I think we agree) wrongly employers don’t require accessibility knowledge as required experience to get a job. If they did I would totally put it on here. This list is the bare minimum requirements to get a job as a full stack dev. While I agree that all web devs should have knowledge of how to implement accessibility, employers looking for junior devs just don’t make it a prerequisit, which is a shame.
I've interviewed people for web development positions, and there's always been a portion involving web accessibility for any position that involves front end work.
I think there is a shift (albeit slow) in the industry as businesses recognise the legal, ethical, and financial need to ensure their products or services are accessible. With that shift, more developers will be needing to have knowledge of accessibility to stay current and try and keep ahead of their competition in interviews. That goes for all levels, beginner and senior alike.
Also i think they should know about design patterns. Not all of them but basics of them specially working with nodeJS
What do you guys think about game ,iOS, or Android developers? Is it a good field to get into? And do you have to know any of the languages ( if any) ☝🏼top that was mentioned? I just don’t want to pay for something that might be a waste of time, 🤗😀
This isn't the list you want to follow for game, iOS or Android development. If you want to make an online multiplayer game then some of the backend stuff is relevant, you would want to add in web sockets and a JS game library like PhaserJS
Thanks, just asking, I keep getting a lot of emails from game developers, and was just wondering 😁
That’s great, have a conversation with them and find out what skills you would need - all information like that is useful. Once you know make a post like this one 😀
Will do 🙂
For game developmment I would check on C# and Unity or C++ and unreal engine. Some companies ask for both. Unity is doing very well on mobile game (for exemple, as far as I know it runs Wild Rift, the league of legend mobile game).
This is so surface-level and biased it's almost cringey.
Cool, at least I avoided being full cringey 🤣
It's a checklist, sign-posts for new devs and coders to get an idea of the sorts of things they should be aware of if they want to apply for full stack roles. The whole point is to be surface-level. It's biased because it's my opinion on a topic that there isn't a set of hard and fast rules for.
In reply (in cheerful jest): "This comment is so obvious and needless it's almost moot"
This is a well-structured overview:
github.com/kamranahmedse/developer...
...and this article simply isn't.
Sorry, but dev.to is simply too full of articles like yours that barely have any value. I don't intend to bash you and I appreciate the effort, but the amount of low-quality stuff here is overwhelming.
May be the title needs an edit to reflect the actual content ? i.e. how to become a UI developer ?
It really isn’t a UI developer post. SQL, Mongo, Express don’t feature in a UI devs minimum required skill set. I also haven’t included a CSS pre compiler or Cypress or Enzyme like testing since that would be toward front end work than full stack. This is an entry list of full stack skills
Thanks Simon, for the list.
Hey, is "Web Dev Security Basics" enough to help me deploy a secure banking system, or do I need to equip myself with additional courses from elsewhere?
For banking I would suggest a bit more than "basics"
I would say it's missing knowledge about cloud providers such as AWS or Google Cloud. This is something many employers will let slide though as it is fairly easy to comprehend if you know the basic concepts behind cloud computing.
Agreed, this addition would make it more comprehensive 😀
Thank you for the info. how about using php for backend since i already am learning it myself for backend development?
If you are already learning it that great, the only reason I kept to JS front and backend is that for someone knew they are going to need to learn JS for the frontend so just use it on the backend as well. Eventually every full stack dev will need two languages
Thanks a lot.
I'd highly recommend PostgreSQL over MySQL, for a myriad of reasons, but namely because Oracle owns MySQL (and they historically haven't been the best netizen).
As an alternative to mysql you can still use mariadb ... same engine .... open-sourced (or at least not possessed by Oracle)
I think either is fine for getting started, the point it to learn SQL really 😀
I agree with most of your points but here's my 2 cents
Would also recommend looking into how to use basic cloud services like how to connect to storage like AWS S3, Digital Ocean Spaces etc. No need to be an expert or be certified, but it helps to know of them.
About libraries:
If you're from US, React is more popular.
If you're from EU, Vue is super popular.
These are good additions. I actually almost put Angular as while it's not as popular there is great demand for Angular developers as they harder to find. I went with React from an ease of learning and that many job listings ask for it.
Thank for your relevant list, I have a question as to whether I need to know another language on the backend. Is JS fullstack enough?
JS is enough to work on a full JS stack but ideally you would pick up another language in the first two or three years of your career 😀
As someone who switch careers and became a full stack Java developer I'd like to say that this is the minimum knowledge needed to just barely be teachable. (Either that or I have a really hard job)
This is totally aimed at being the bare essentials to get started, there is much more to learn beyond this but this should be enough to get you started in a junior role 😀
you'll see different things when you go to job postings from here.
I think, full-stack that you have to have more skills to improve yourself. The price paid for a full-stack is also much higher than that of a specialist. It requires a much more skill set to work. like many many many to many many deps :D
I think the danger with current full stack is getting stretched too thin, you still need to support of specialists on big projects 😀