loading...
Cover image for Full Stack Developer's Roadmap πŸ—Ί

Full Stack Developer's Roadmap πŸ—Ί

ender_minyard profile image ender minyard Updated on ・5 min read

It's easy to focus on the front end of web development, but what about the back end? Learning about the back end improves your front end skills.

Here are some resources for full stack development that you can save for later.

Table Of Contents

πŸ’» How The Internet Works
πŸ”š Advanced Front End
πŸ–₯ Operating Systems
πŸ“• Languages
πŸ–² Version Control
πŸ““ Database Concepts
πŸ“” Relational Databases
πŸ“— NoSQL Databases
πŸ“¨ APIs
♻️ Caching
πŸ”’ Security
πŸ§ͺ CI/CD
πŸ“™ Development Concepts
🏯 Software Architecture
🧊 Containers
πŸ“¬ Servers
βš–οΈ Scalablity

How The Internet Works πŸ’»

✨ What happens when you go to google.com?
πŸŽ‰ Introduction to Networks
πŸ’« Browser Networking
🎊 IP Addressing
⭐️ HTTP/2

Advanced Front End πŸ”š

✨ HTML & CSS
πŸ’« JavaScript

Operating Systems πŸ–₯

✨ Using the command line
πŸŽ‰ What is an operating system?
πŸ’« Memory
🎊 Unix Programming
⭐️ Bash-Scripting Guide

Languages πŸ“•

✨ Know PHP
πŸŽ‰ Learn Ruby
πŸ’« Learn Rust
🎊 Learn Go
⭐️ Know Server-Side JavaScript

Version Control πŸ–²

✨ A Visual Git Reference
πŸŽ‰ Visualizing Git Concepts with D3
πŸ’« Github Cheat Sheet
🎊 SVN

Database Concepts πŸ““

🌟 Object-Relational Mapping
πŸŽ‰ ACID
πŸ’« N+1 Problem
β˜„οΈ Sharding
✨ CAP Theorem
πŸ’₯ Normalization
🌟 Indexes

Relational Databases πŸ“”

✨ Theory of Relational Databases
πŸŽ‰ Learn MySQL
πŸ’« Learn PostgreSQL
🎊 Learn MariaDB
🌟 Learn MS SQL

NoSQL Databases πŸ“—

✨ Learning MongoDB
πŸŽ‰ Learn CouchDB
πŸ’« NoSQL Databases
🎊 Graph Databases

APIs πŸ“¨

⭐️ Working with APIs
πŸ’₯ REST
πŸ’‘ GraphQL
β˜„οΈ JSON-RPC
πŸŽ‰ HATEOAS

Caching ♻️

✨ HTTP caching
β˜„οΈ Redis
⭐️ Memcached
πŸš€ Service workers

Security πŸ”’

✨ HTTPS + TLS
πŸŽ‰ CORS
πŸ’« MD5
🎊 SHA-2
πŸ’‘ SCrypt
πŸ’₯ BCrypt
β˜„οΈ OWASP

CI/CD πŸ§ͺ

✨ Testing your code
πŸŽ‰ Jenkins
πŸ’« TravisCI

Development Concepts πŸ“™

β˜„οΈ SOLID
⭐️ KISS
πŸ’₯ YAGNI
✨ DRY
πŸŽ‰ Domain-Driven Design
🌟 Test Driven Development

Software Architecture 🏯

πŸ’« Microservices and Service Oriented Architecture
🎊 CQRS
⭐️ Serverless

Containers 🧊

✨ Docker Fundamentals
πŸŽ‰ Docker Cookbook
πŸ’« Kubernetes Cookbook

Servers πŸ“¬

β˜„οΈ Nginx Handbook
πŸ’‘ Apache
πŸ’₯ Caddy

Scalability βš–οΈ

πŸ’« Distributed Systems
β˜„οΈ System Design Primer
✨ Real-World Maintainable Software
πŸŽ‰ The 12 Factor App
🌟 Architecting Frontend Projects To Scale


This was inspired by a different post. In the other post, I wanted the author to provide resources for the topics they mentioned, so I made my own post. ✨

If you think I missed any resources in this post, comment them below!

Posted on by:

ender_minyard profile

ender minyard

@ender_minyard

Web performance, web workers, and multi page applications.

Discussion

pic
Editor guide
 

If you are new, and you are coming in here to see this.

I hope this isn't overwhelming to you.

Don't be discourage.

A Full-Stack Developer is more of a very long journey rather than this experience listed out here.

 

I can't say I'm newbie. I have fundamental knowledge of programming. When I saw above list I came to know I know very less. Till I complete this list, complete framework will change then in what way should I be full stack developer?

 

I think it's more about learning the fundamentals of each phase. I think that's what you have also done when started programming. Learning basic fundamentals in any language and applying it in other languages.

That's right. Frameworks will come and go. but the concept stays the same. If the core concept and fundamentals are learnt well then no language or no framework will be hard to understand.

 

But not the core na

 

Agreed plus β€œfull stack” is a fancy way of companies getting someone to do two jobs for the price of one. It takes years to get good at front end or backend, let alone both

 

Agreed!! That's why the roadmap requires achieving a long journey. I guess the author tries to convey!!

 

Totally agree. The additional point that I would add is that this list appears as separate concepts, but if you're building a production-ready application, you'll learn 80% of this list within the scope of a single project. I don't think they are meant to be learned in isolation (although sometimes this is necessary).

 

just following these things and "diving deep" into this topics will complete that long journey

 
 

the web fundamentally is a distributed hypermedia application

 

oh you mention docker; use lazydocker. also: percol, ranger, ack, ... all available through homebrew. pryjs is helpful too

 

this is so good

 

Suggestion to use microservices is not very good one. This is an expensive step and in most cases organizations are not prepared for them.

 

i didn't suggest to use microservices. i saw that someone else mentioned it, and i supplied links to tools and ideas that makes microservices easier to achieve. i listed tools relevant to microservices; i did not suggest that one choose microservices over some other SOA or style irrespective to their problem or economic situation

if anything, a more intuitive reading of my post would be: "IF you use microservices, use scale cube and microservice design canvas", not "HEY USE MICROSERVICE NOW"

notice, all I did was mention the word "microservice" and two things. just because someone puts it on the road map doesn't mean it's a suggested path, but that it is a suggestion of an opportunity to take a path.

this discussion is about what we can learn as developers in order to be competitive and knowledgeable given the problem set, regardless of the budget to achieve it. we're not here to figure out one organization's problem as individual developers. microservices is one of many things we're expected to understand and learn. we're not asking "what is the road map if you have budget X for organization Y", we're just asking what the road map is. you're bringing it a lot of other background or contextual information to a discussion that doesn't depend on it

 

Python 3 would be a fundamental language to learn before even JS, Rust, and Go.

 

Before JavaScript? Not if one plans on touching the web at all. Go and Rust are up-and-coming but not big yet.

 

The article is about fullstack roadmap. A person new to programming would only get tripped up with JS's quirks, if they truly want to learn JS and not a framework or library. Python will be better to learn OO, and with that foundation someone can tackle the idiosyncrasies (prototypal inheritance) of JS. I would never wish for my enemy to come into programming with JS as their first language. Better to get an early win with Python or even Java. It's not a race.

No JS = no full stack job. You’re gonna use Python for front end? Don’t think so. JS is required like it or not. You can’t have a roadmap of skills that leaves out the only native language to the front end. No front end frameworks and no big backend languages like Java and C#.
To each their own. But if you have all the skills listed you’ll never get a full stack job without JavaScript + react and C# / Java.

You seem to be looking for an argument. I never said don't learn JS. It's the order of learning I'm talking about. JS first, in my opinion, will lead people new to programming down a whole lot of hurt. I think you should re-read what I said without your bias. JS is fantastic and crucial, in time, for a new programmer.

Nope, no argument here. Just options. Thanks for the clarification. It’s a great roadmap

JS first, in my opinion, will lead people new to programming down a whole lot of hurt.

On the other hand, people who start with JavaScript won't try to write JavaScript as if it were another programming language and get frustrated because it doesn't work like their favourite language does. Neither will they learn only one programming paradigm like OOP because it's the only one their language supports and then try to impose it to every other language they learn.

Also, JavaScript is a very nice language to start with because you can very quickly see fancy things happening (like a webpage reacting to user clicks and all that), as opposed to just printing stuff on the console.

I agree. In some ways it’s a good first language: no install needed, visual feedback, tons of resources etc. but in others it isn’t: dynamically typed, quirks, prototypal, weird type system etc.

One definitely needs statically typed OOP languages like C# or Java to get the fundamentals down. Too many wannabes hate on statically typed languages because they’re β€œhard”.

Either way, if one’s gonna be a full stack Dev then they have to learn JS, or you’re by definition not full-stack which is my argument on the whole roadmap.

 

I've only just started learning python for the purposes of backend skills in the near future, glad to see this comment here! πŸ˜‹

 

Excellent list. For the benefit of other folks who may be working in a company that uses different technologies for different groups, I recommend adding some information about Subversion (SVN) under Version Control. I was so used to git, but hadn't ever used SVN and it took some time to get out of the Git mindset.

There are two posts on DEV that may be of use :


 
 

Nice article, thanks :) ... but there is nothing about Frameworks. They are very important. Full-Stack Dev should know Spring Boot (JAVA) and Symfony (PHP) for creating REST APIs and Angular or React for Front End development. There is many topics covered which are less important than frameworks, that needed in work ;-).

 

I totally get your point, PaweΕ‚. From the Employability Aspect, it makes a lot of sense to focus on the latest frameworks and libraries. However - as a learning roadmap - the goal of this article may be to focus on teaching you the underlying concepts and principles modern web apps rely on. I think if you got this essential knowledge and understand what goes on "under the hood", it'll be easy for you to pick up new languages & frameworks.

 

Not only Symfony but Slim is also great for creating simple API, as it names suggests, Slim is lightweight.
Design patterns such as MVC or ADR which the creator of Slim embraces ( I personally don't like it tho ) could be a plus.

 

I've got the java developer roadmap
Core java(basic concepts, oops, collection framework, stream api)->advance java (servlets,JSP,JDBC)->build tool(maven/gradle)->framework (Spring/hibernate/play/grails etc)

 

Thank you for sharing. I think it would be a good idea to add owasp.org/www-project-top-ten/ to the security section.

 
 

I didn't see much on a major corporate tech stack: Microsoft-backed .NET frameworks, SQL Server, and their server architecture (IIS).

There's also not much on what I consider the nexus point, common ground, equalizer, or uniter of the front and backend dev: the IDE. And to tie it back to MS, IMO, they provide the 2 best IDEs in the business: Visual Studio and VS Code. The IDE is where I spend 80 percent of my time as a full stack developer, along with browsers (using dev tools for troubleshooting and researching the internet--I consider the browser as part of the Integrated Development Environment, at least in practice).

It's not to be an exhaustive list of specifics, I know, but here's my comments on specific categories I saw missing the Microsoft platforms I'm used to learning about/using as a full stack dev, FWIW. (I also live in an Apache /Angular / PHP / MySQL world, and saw more about those stacks on the list, which is fair).

Good list of concepts and technologies to be aware of in some degree as a FSD.

 

This this this! I've seen so many "full stack roadmaps" that did exactly what the other roadmap you referenced did, and left me wanting more specifics. What newcomers will benefit most from is hearing from experienced coders which specific resources are most valuable, and how those fit into the bigger pitcture, which this does. Thanks!

 

Hi, I'm a newbie I have learned

{
  "web-development":{
    "front-end":["html","css","js(amature)"],
    "back-end":{
      "language":"php",
      "database":"mysql"
    }
  },
  "additional":["git","markdown"]
  }
Enter fullscreen mode Exit fullscreen mode

I have made some small projects in past
What should I learn next

 

Cool list missing the frameworks though like React, Angular and Vue. Also there are much more languages than that some readers might think that you have to learn all of them. When in reality you can specialise with certain technical stacks like React/Node, React/Flask etc... Also you did not mention Python as a language which has more popularity than PHP and Ruby. Choice is good better to cover them all.

 

You need to now what's availble, but focus on Front-end or Backend. Unless you use JavaScript, of course. In this case you can be more or less proficient in the client and server tech.

The best is to learn concepts and patterns. The rest are tools that come and go. If you know a programming language, you will figure our any framework or lib written with it. If you know what databases are, what are the core principles, how they work and what they are for (SQL, NoSQL, Graph), you will figure out MySQL, PostgresQL, Mongo, etc.

With this knowledge you will be always uptodate.

 
 

Nice , πŸ˜„, Add Java and C# in languages , it is used by big companies and enterprise. Also add Design Patterns in Development Concepts.

 

I've written a Python Backend Developer Roadmap from Zero to Mastery, it can be a good fit in your list.
dev.to/mmoallemi99/how-to-get-a-jo...

Cheers!

 

Just How long it will take to complete this journey? I'm in third (pre-final year) of my engineering and I'm about to start my journey in development. I still couldn't decide whether to opt for android development or web development.

 

I have 8 years industry experience and I haven’t finished this list. One just has to be capable of learning to survive in the field.

 

This is awesome, I love this kind of resource posts but yes don't get overwhelm with the information provided here. You can learn at your speed. And, if you love roadmaps

here are some more
Frontend Developer RoadMap
Reactjs Developer RoadMap
Frontend Developer RoadMap
Java Developer RoadMap

 

Good collection. Adding to my reading list. But I wont categorize this as Full Stack dev guide. In fact every topic itself is so big that you could find a full time job for each one of them. At once it felt like I am checking out the syllabus for a 3 year course.

 

Nice road map! Senior-ish web developer here looking to go full stack. Curious, why do you have Rust and Go? Do I really need to learn both?

 

Nope. Pick C# or Java. That’s what companies use. Ignore Go and Rust; no jobs for them. Spring Boot for Java or .NET core MVC and you’re set.

 

Actually when I worked for nationwide, alot of teams were using go for a Middleware between front end and back end/apps. Wendy's also (unless they changed it in the last 3 years) uses go for their pos system

Cool! I’d love to do Go professionally.

Yeah it seems to be kicking off! Find a use for it where you are and make a case for it!

 

Awesome list! And so realize today it's way harder to become a fullstack developer it used to be.... You might want to consider some platforms helping you down that road, just like ScaleDynamics

It turns a simple JS modules into a hosted back end and a client wrapper). Work smarter, not harder ;)

 

Wow! This is incredible! I think this is the kinda stuff that makes self-learning easier. It's like a curriculum. Thank you so much for this resource, I am sure you helped a lot of developers.

 

Thank you for this post. I'm new here and now i know that there's a lot more to learn.

 

Welcome! Thanks for bringing the positivity

 
 

Thanks a ton! This has got to be one of the best web dev source compilations!

 

Brilliant thanks for this! 😊

 

Thanks you.. successful for u.. GBU

 

really good roadmap. Followers of this roadmap keep this in your mind: this is an adventure not a race or mission that needs to be completed

 

Great article!

 

@ahmed12960
See this bro
This will be very much handy for us

nd specially thnx to the author
much love❀️❀️

 
 

I have a good feeling that this article will change my life!

 

Prototyping skill is also important. Need help? Try my AdobeXd from scratch series: dev.to/tomasroj/prototyping-in-the...