DEV Community

Cover image for Skills required to be a full stack developer: a checklist

Skills required to be a full stack developer: a checklist

Simon Barker on August 16, 2021

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 ...
Collapse
 
mjehanno profile image
mJehanno • Edited

Isn't it a bit JS-centered ? I mean, you can be a fullstack developper using any other language than Javascript in your backend (go, rust, python, C#, java, kotlin, scala ....).

Moreover you don't even need a front-en framework (or it doesn't have to be react).

Appart from that, I think your article cover any subject a fullstack developer need to know. I clearly love the fact that you mentioned security as it's a really important one which is oftenly forgotten :/

Collapse
 
allthecode profile image
Simon Barker

Agreed, the main reason for only saying JS is that it's the only one that runs on the front end so if you are coming to the subject new then stick to JS first and expand later. This is aimed at early devs and career switchers.

Collapse
 
mjehanno profile image
mJehanno • Edited

I can agree with that, JS is a very good choice when you start learning as it runs almost everywhere (mobile, front, back, etc ...) but sometime you don't choose what will be your first language ... and basically I don't think there is ONE language that is best to start with.

For exemple, some says that C/C++ is the best because after that other language will be easy. Js seems a good one as it runs in front or back. Now Golang seems good too as it is easy to learn. The problem here is it depends on the people using it.

I love when things are opinionated. I don't want to have to choose between x-lib or y-lib ... or how do i have to indent my file etc ... so basically ... python, or react are not really for me. I prefer angular which is totally opinionated ! or golang in backend because the compiler is strict. People should choose based on that (In my opinion)

Thread Thread
 
raj_sekhar profile image
Raj Sekhar

I love when things are opinionated. so basically ... python, or react are not really for me

Darn, I have very similar preference, to be opinionated.. and its difficult to find someone who agree to the imp of being opinionated. Too much of flexibility does not suit me either. That's why my full stack course is Angular + .NetCore or Nest

Thread Thread
 
allthecode profile image
Simon Barker

I agree, I prefer Angular over React for that reason as well - again this was a list focussed on employability and bare bones for a new career switcher - they can specialise and develop their preferences over time once they have a handle on things 😀

Collapse
 
vlasterx profile image
Vladimir Jovanović

"Full stack" title has certainly degraded over the years.

Collapse
 
allthecode profile image
Simon Barker

Now I think about it I might say the opposite is true. 10 years ago full stack mainly meant: JS/HTML/CSS, PHP, SQL and Apache. Now it covers DevOps, infrastructure as code, Node, React/Angular/Vue and NoQSL and SQL. The list and requirements on full stack is rapidly approaching "IT Department"

Collapse
 
trunghieu99tt profile image
Trung Hieu Nguyen

:D I don't think so, who defined the definition for "full stack"? At the beginning, I think that title is for people who can handle both backend and front-end stuffs. You can write HTML, CSS, you can do things with database, write API,... Yeah, at that time you can call yourself a full stack developer. All the technique you mentioned above I think it's more relevant to "senior full stack developer" who can cover a lot of things from front-end to back-end, and know a little bit about DevOps
At the end of the day, it's just a title, why people care so much and make a lot of arguments about that?

Thread Thread
 
allthecode profile image
Simon Barker

Meh, I think people learning to code and looking to get their first job care quite a bit about getting a good idea of where the rough demarkations lie to help them on their way. Something we all fall into as experienced devs is forgetting the confusion of what everything was when we started. Back in 2006 when I first started it took me two days to realised that a blog was just a website with some software to manage the content and that was like an epiphany for me at the time.

Collapse
 
allthecode profile image
Simon Barker

In what way?

Collapse
 
vlasterx profile image
Vladimir Jovanović • Edited

In order to be a full stack, you have to cover a lot of ground. As time passes by, sheer amount of topics you need to learn have become mind boggling, not just for the full stack, but for the front end or back end alone. It is so vast that no one with a sane mind has the time to keep up any more - once you think that you have mastered one area, you have fallen behind in all others.

Before, you became full stack when you have mastered your occupation and then decided to horizontally branch out and learn more. For example front-end dev who has decided to learn back-end dynamic language, database and server setup; or back-end who has decided to learn devops, CSS, JS and UI/UX.

Just by looking who calls themselves full stack today and by looking at your list, I can conclude that people learn 5% of what they actually need in order to be called this way. Once "full stack" was a matter of an intellectual prestige, but today every junior who doesn't know fundamentals, but knows to use frameworks and basics can call themselves like that.

So, the title has degraded a lot. Once you needed a knowledge equivalent of an PHD and today you need knowledge on a level of an elementary school.

I have 20 years of experience in the industry and can easily be called full stack, but I know how much I don't know and that I don't deserve to call myself like that. Anyone who claims the opposite still haven't seen how big this ocean is, especially those who rely on frameworks to achieve this title.

Thread Thread
 
toobig4u profile image
ROLAND KIRALY

Nowadays if you know backend, you considered a full-stack. I mean chances are slim anyone knows backend without any knowledge of frontend. You can pretty much fabricate the front app mixing a bunch of premade components and adding a bit of logic and state management.

Thread Thread
 
vlasterx profile image
Vladimir Jovanović

That's what I'm telling you - those are superficial skills, this is why bar has been lowered for this title and why those "full stack" devs are just a shadow of what full stack devs used to be. Those developers have no idea how to properly build front end or even use CSS without frameworks. Centering a div is a science fiction to them ;)

Collapse
 
machr profile image
Mark Powell

I agree with most of your points but here's my 2 cents

React
Could have also put in Angular or Vue in there. React is the most popular but not necessarily the best to find a job.

How to make a REST API in NodeJS and Express
Alternatively, look at GraphQL which is gaining a lot of momentum in many job markets. Same with Serverless for smaller projects that might not need a server running 24/7.

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.

Collapse
 
allthecode profile image
Simon Barker

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.

Collapse
 
toobig4u profile image
ROLAND KIRALY

About libraries:
If you're from US, React is more popular.
If you're from EU, Vue is super popular.

Collapse
 
davidwparker profile image
David Parker

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).

Collapse
 
allthecode profile image
Simon Barker

I think either is fine for getting started, the point it to learn SQL really 😀

Collapse
 
mjehanno profile image
mJehanno

As an alternative to mysql you can still use mariadb ... same engine .... open-sourced (or at least not possessed by Oracle)

Collapse
 
jesusrod profile image
Jesus Rodriguez • Edited

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.

Collapse
 
allthecode profile image
Simon Barker

Agreed, this addition would make it more comprehensive 😀

Collapse
 
ashleyjsheridan profile image
Ashley Sheridan

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:

  • The main types of disabilities: visual, auditory, motor, and cognitive
  • Basic accessibility testing with Firefox built in dev tools (they're far better than Chromes ones, and test for more things)
  • Know how to test with only keyboard
  • And at least one screen reader (NVDA is usually a good start as it's the most popular)
  • They should be familiar with the WCAG 2.1 with at least a passing knowledge of the guidelines
  • Semantic HTML, not just HTML as taught by most courses/guides
  • Be familiar with the basics of ARIA attributes (like aria-label, etc), and should know to only use them as a last resort when semantic markup has failed
Collapse
 
allthecode profile image
Simon Barker

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.

Collapse
 
ashleyjsheridan profile image
Ashley Sheridan

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.

Thread Thread
 
allthecode profile image
Simon Barker

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.

Thread Thread
 
ashleyjsheridan profile image
Ashley Sheridan

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.

Collapse
 
aimeegetz1 profile image
Aimee Getz

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, 🤗😀

Collapse
 
allthecode profile image
Simon Barker

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

Collapse
 
aimeegetz1 profile image
Aimee Getz

Thanks, just asking, I keep getting a lot of emails from game developers, and was just wondering 😁

Thread Thread
 
allthecode profile image
Simon Barker

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 😀

Thread Thread
 
aimeegetz1 profile image
Aimee Getz

Will do 🙂

Thread Thread
 
mjehanno profile image
mJehanno

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).

Collapse
 
ngnam profile image
NamNguyen

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

Collapse
 
allthecode profile image
Simon Barker

I think the danger with current full stack is getting stretched too thin, you still need to support of specialists on big projects 😀

Collapse
 
dni9 profile image
DNI9 • Edited

you'll see different things when you go to job postings from here.

Collapse
 
web2feel profile image
Jinson Abraham

More like a full stack JS developer checklist.

Collapse
 
allthecode profile image
Simon Barker

Yes, it's a starting point to get into full stack dev, only having to learn one language makes that entry quicker for newbie and then they can learn another language in the first couple of years 😀

Collapse
 
anvilicious profile image
Nigel Lowa

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?

Collapse
 
allthecode profile image
Simon Barker

For banking I would suggest a bit more than "basics"

Collapse
 
bencun profile image
bencun

This is so surface-level and biased it's almost cringey.

Collapse
 
allthecode profile image
Simon Barker

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"

Collapse
 
bencun profile image
bencun

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.

Collapse
 
ariajanke profile image
Aria Janke

Thank you for this is an excellent list. What are your thoughts Python backends like Flask, how valuable it is in learning them?

Collapse
 
allthecode profile image
Simon Barker

You're welcome @ariajanke - Python is very valuable as a backend and general purpose language. I've left it off this list simply because as a full stack dev you would need to know Javascript for the browser so you may as well use it for the backend initially until your career develops 😀

Collapse
 
filipslezak profile image
FilipSlezak

Falsk is great for simple, lightweight API's. For something better organized I've would recommend Django

Collapse
 
rjbolaji profile image
rjbolaji

Thank Simon barker, I live this post, gonna work on it

Collapse
 
allthecode profile image
Simon Barker

😀 excellent

Collapse
 
nipunravisara profile image
Nipun Ravisara

Also i think they should know about design patterns. Not all of them but basics of them specially working with nodeJS

Collapse
 
vladi160 profile image
vladi160

Today's full-stack yesterday was called just a front-end, because JS was that. There is no list for it. The rule is - you can do it or you aren't.

Collapse
 
tushar0107 profile image
tushar0107

Hi, I am a learner. I know little HTML CSS and some JS and I also have knowledge about Django. Are these enough to get an internship.

Collapse
 
allthecode profile image
Simon Barker

Possibly, the best way to find out is to speak to someone who makes intern hiring decisions, just phone them up and ask or send them an email and say "I know x,y,z and have made a,b,c. Do you think I am ready for an internship?"

Collapse
 
tushar0107 profile image
tushar0107

Thanks for the suggestion 😊

Collapse
 
djpetifo profile image
Durhode Petifort

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)

Collapse
 
allthecode profile image
Simon Barker

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 😀

Collapse
 
joeyle profile image
Joey Le

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?

Collapse
 
allthecode profile image
Simon Barker

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 😀

Collapse
 
deba profile image
Debasish

May be the title needs an edit to reflect the actual content ? i.e. how to become a UI developer ?

Collapse
 
allthecode profile image
Simon Barker

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

Collapse
 
codeprasapro profile image
Prasanna Silva

Thank you for the info. how about using php for backend since i already am learning it myself for backend development?

Collapse
 
allthecode profile image
Simon Barker

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

Collapse
 
codeprasapro profile image
Prasanna Silva

Thanks a lot.

Collapse
 
oyommy profile image
Victor Adedokun

Thanks Simon, for the list.