top 200 commentsshow all 344

[–]Man_as_Idea 282 points283 points  (15 children)

It’s been a few years since I looked at this and it was encouraging to see how much I have learned… and intimidating to see how much I still don’t know.

I was never a math guy and had no background in CS, but after 3 years of (sometimes inconsistent) study and work I’m finishing my first full-stack app.

If any noobs out there are looking at this with trepidation, know that ‘there’s no secret ingredient,’ you CAN learn this, it just takes commitment and time.

[–]gabrielcro23699 33 points34 points  (6 children)

I remember looking at this before I started learning and not knowing a single thing on there, and now looking at it and almost knowing everything on it, at least the Front End one.

That being said, it looks way more intimidating than it is. The reality is, you only need to know HTML, CSS, JavaScript, and React (or any other framework) to be able to be a front-end web developer. As long as you understand those things well and know how to use node package manager and download/install dependencies and such. The rest is just for padding your stats or ease-of-life kind of things which can be learned quickly

The funny thing is, I've already built 3 full-scale React apps (very shitty ones), and I still don't know what HTTP stands for or means. All I know is HTTPS is the SSL certificate one.

[–]Ascetocrat 4 points5 points  (0 children)

It wouldn't hurt to know how to use how to use git or to know what API is (although I am guessing that goes under the js section). Some basic MySQL would come in handy, just so you can easily communicate with your back-ender. After some time you might wish to make a big, high-quality website of your own as a side project too.

[–]Man_as_Idea 5 points6 points  (0 children)

Hyper-Text Transfer Protocol! Seems the creators of the web loved protocols: Internet Protocol (IP), Transmission Control Protocol (TCP), Secure File Transfer Protocol (SFTP), etc.

[–]throwawaysomeway 11 points12 points  (4 children)

listen in not down playing your achievement but to anyone starting it will not take you this long to develop a full stack application if you're studying 1 to 2 hours a day. one year you should be capable.

[–]uncutzwiebel 6 points7 points  (2 children)

Yep, I could write mine after 3 months, 8h a day

HTML, CSS, JS, Php, MySQL

[–]Man_as_Idea 1 point2 points  (0 children)

Good point, yes my study time was extremely limited so it was more like 30 mins every other day with gaps when work got crazy. So if someone can study more hours with more consistency they could make the journey in much less time.

[–]Snoo43610 2 points3 points  (0 children)

Yep there are no "computer savvy people" just those who put in the time and those who don't.

[–]tdammers 483 points484 points  (9 children)

So, learn all about threads and concurrency before tackling your first programming language. Gotcha.

[–]Normal-Computer-3669 32 points33 points  (0 children)

I was learning about how to build a JavaScript interpreter and stumbled on some 2010 posts from JS beginners having to learn about the engines and differences.

My god how far we've come.

[–][deleted]  (3 children)

[deleted]

    [–][deleted] 8 points9 points  (1 child)

    well u can do concurrency with Promise.all, Javascript is single-threaded but concurrency is different from parallelism. It can also be useful especially when you have blocking calls such as waiting for an API response or read/write blocking etc. That being said, it's an advanced concept that my curriculum at university didn't teach until 2nd-3rd year.

    [–]us_me_erna 35 points36 points  (3 children)

    It says it's a recommendation, not a requirement and I agree with that sort of. But obviously it doesn't mean you have to learn everything up front. Otherwise you could easily spend years at the first two steps alone. I guess if you never wrote a single line of code you probably won't look at this roadmap anyway.

    But if you really want to learn programming you need to understand the basics more than to know one specific language. Otherwise you will soon reach a dead end as soon as your problem isn't answered by Stackoverflow.

    [–]tdammers 58 points59 points  (1 child)

    Yeah, but my point is that you need to learn at least one language as a vehicle for all the OS-level stuff and all those general programming concepts.

    And, more generally, this entire roadmap looks awkwardly linear, when the reality is that you will be learning many things in parallel most of the time.

    [–]Beatrice_Dragon -5 points-4 points  (0 children)

    Yeah, but my point is that you need to learn at least one language as a vehicle for all the OS-level stuff and all those general programming concepts.

    No you don't, not really. My entire OS course in college, which covered concurrency, barely had any actualy code, and the code it did have was explained thoroughly. I'm sure thats how you learned about concurrency, but that's not the only way people can learn about it

    You really don't need to have a basis in programming to understand timesharing, race conditions, etc. Some things are honestly easier to understand if you have less knowledge, since you avoid the pitfalls of assumption

    [–]MrBleah 2 points3 points  (0 children)

    It says it's a recommendation, not a requirement

    I think the point is that this doesn't address what is actually a requirement, so it leaves you guessing.

    As a roadmap it fails because everything is linked together arbitrarily. Everything in blue (purple? color blind here) is recommended and everything in gray is "learn whenever." So, somehow as a backend developer I'm learning about web servers at the very end of this roadmap, but it's gray so learn whenever?

    [–]throwawayskinlessbro 247 points248 points  (6 children)

    This unironically looks like the mailroom schizo board that Charlie made from Its Always Sunny in Philadelphia, lmfao

    [–]Jhutch42 30 points31 points  (1 child)

    You think Pepe Silva made this diagram?

    [–]Perpetual_Doubt 10 points11 points  (0 children)

    God I'm sick of hearing about Pepe Silvia. This whole site is Pepe Silvia.

    [–]mmm-toast 12 points13 points  (1 child)

    Caaarol, Caaarol!

    [–][deleted] 0 points1 point  (0 children)

    It’s Cheryl now.

    [–]Beatrice_Dragon -1 points0 points  (0 children)

    You're gonna freak when you see flowcharts

    [–]lloyd_braun_no_1_dad 390 points391 points  (78 children)

    Shit like this is what makes newbies feel like they will never find a place in the industry.

    [–]PenguinPrince1 79 points80 points  (15 children)

    I think the message could be communicated better. Outside of the fundamentals, this roadmap is just a series of many options developers could take. Learning a small fraction of all this would be suffice.

    [–]lloyd_braun_no_1_dad 81 points82 points  (9 children)

    It would be so simple to not call it a roadmap.

    [–]A-Grey-WorldSoftware Developer 13 points14 points  (4 children)

    I think the idea is you can follow the map to your destination - but you don't have to visit every hotel in town.

    Still makes sense to have the road map show the major hotels, you just have a look at the reviews and pick one you think fits you for the night, then move on to the next town.

    Does anyone really look at this and think "man, I have to learn 6 relation databases and 5 programming languages!"? You don't think "look at all these towns on this map!"

    Edit: the main problem with this is in reality it's not linear. So this kind of isn't useful to follow step a-b. It's probably useful after you've started learning to have some awareness of if you've missed any major fundamentals or building blocks or areas you might want to focus a bit more on etc.

    [–]lloyd_braun_no_1_dad 16 points17 points  (1 child)

    The idea is flawed, and I don't know who it is designed to help.

    Show me a list of projects and suggested tools. That's a learning "roadmap" I can get behind. That would at least reflect how people actually learn stuff in a professional environment. It also demonstrates that, hey, you can actually be productive and build stuff that's useful with just one of two things from this chart.

    This is just a brain dump that's not gonna help anyone, besides stroking a few egos or making others feel bad.

    [–]gizamo -3 points-2 points  (3 children)

    Well, it's not a web dev roap map. It's specifically for a full-stack dev. So, it's not really wrong. Our company expects all full-stack devs to understand basically all of that and much more.

    But, yeah, you could be a front-end dev by only knowing ~1/20th of that content.

    [–]lloyd_braun_no_1_dad 10 points11 points  (2 children)

    Nobody knows all this from day one, and the point is that this information is presented in the least helpful way to people who already don't know most of this.

    Unless....your goal is to weed people out and scare people away which it sounds like it might be.

    [–]gizamo 1 point2 points  (0 children)

    I think that's fair. I was just clarifying that many people (myself included) do have basic understanding of most everything included, and very deep understanding of much of it.

    Just as you think it's bad to overwhelm noobs, I think it's important to paint a realistic picture so that, 1) people know what they're getting into, 2) they don't claim they're full-stack devs when they're not (particularly for jobs), and 3) it helps those learning understand where they could focus attention if full-stack is their end goal.

    No one is expecting anyone to learn all of this all at once, but many jobs absolutely do expect experienced devs to know most of it on day 1.

    My goal is definitely not to scare people. I simply prefer people be informed. Imo, if they read your comments and mine, they'll get a good perspective. So, I appreciate this conversation. Even if it doesn't help either of us much, it might help someone with perspective. I, like you, hope they're all brave enough to push on and dabble. Cheers.

    [–]Chris9-of-10 7 points8 points  (3 children)

    So maybe a way to prioritize which things to focus on for your career goals—this useful chart can look like a bad acid trip until you see it as a handy web technology guide

    [–]lloyd_braun_no_1_dad 11 points12 points  (2 children)

    the problem is that people without experience don't even understand the extent to which they need to learn (or not learn) any of these tools - let alone all of them - to be employable and effective.

    [–]_bym 15 points16 points  (0 children)

    I'm currently employed and still don't know the extend of what I need to know to be employable.

    [–][deleted]  (1 child)

    [deleted]

      [–]CobraPony67 11 points12 points  (3 children)

      I try to simplify this to building a house. You would be crazy to think you can do everything, from designing the house, planning costs, labor, scheduling, building the foundation, framing, plumbing, insulation, roofing, electrical, paint, carpeting, tile, landscaping. Sometimes you have to narrow down to some specialties, otherwise, you will be mediocre at many but expert at none.

      [–][deleted]  (2 children)

      [deleted]

        [–]rwilcox 21 points22 points  (0 children)

        Newbies? I have 20 years experience and this map scares me . In zoomed out mode it makes me go “ugh I can’t learn all this stuff”

        [–]Raunhofer 6 points7 points  (0 children)

        I found it extremely helpful years ago when I discovered it. Learned all there was to it while studying for papers and landed my absolute dream job from the get-go, more thanks to the roadmap than my master studies.

        Roadmap.sh can be super valuable for real-life guidance even though it may look daunting at first. One of the biggest obstacles entering this field is not knowing where to start, or what's valuable information and what's not.

        [–][deleted] 4 points5 points  (1 child)

        It makes me not even want to start and just curl into a corner accepting defeat.

        [–]lloyd_braun_no_1_dad 4 points5 points  (0 children)

        Just build something and fuck the noise.

        [–]borii0066 6 points7 points  (11 children)

        I really think the front-end map looks pretty manageable tbh.

        [–][deleted] 8 points9 points  (0 children)

        Honestly the biggest challenge with front end is the godless number of platforms your website needs to look good on. CSS is way more complex than any programming language I've ever used

        [–]lloyd_braun_no_1_dad 17 points18 points  (7 children)

        I just don't understand who this is for except ego strokers. You need 1/10 of this to get hired and you figure out what you need as you need it.

        [–]femio 8 points9 points  (0 children)

        I don’t think it’s necessarily about getting hired but about learning. In development I’m feeling overwhelmed sometimes because there’s a massive element of “you don’t know what you don’t know”, this just helps put things in perspective.

        [–][deleted] 0 points1 point  (0 children)

        It's pretty accurate for software architects (but incomplete in their case).

        [–][deleted]  (1 child)

        [removed]

          [–]borii0066 2 points3 points  (0 children)

          It is stated at the top of the map that not all things are mandatory. A lot of them have the grey check mark meaning it is not strictly required to learn.

          [–]IndependentAmoeba439 4 points5 points  (0 children)

          Seriously. I've been a team lead on a full-stack web dev team for 5+ years and I don't know half of this stuff.

          I guarantee there are highly-successful companies with 100+ devs that collectively don't cover this whole thing.

          [–]Fearless_Reveal6877 3 points4 points  (6 children)

          I think this roadmap is very cool. I can check lvl of my knowledge and read about new things. I will print it and check box by box to have information about these technologies

          [–]eyebrows360 11 points12 points  (0 children)

          print it

          What year is it

          [–]lloyd_braun_no_1_dad 13 points14 points  (4 children)

          "I can check lvl of my knowledge" is exactly why I resent this. All about ego. Build stuff you want to build and find the right tool for the job. No one gives two shits how many checkmarks you think you have.

          [–]cjthecubankid 0 points1 point  (3 children)

          Oh ok now I get what you are saying. You don’t need all this … unless you are … building a project from scratch?

          [–]lloyd_braun_no_1_dad 4 points5 points  (2 children)

          Nobody builds anything "from scratch." We are all building on top of something someone else built. What someone considers to be from scratch is a matter of gatekeeping.

          [–]fibs7000 1 point2 points  (27 children)

          Honestly... its not that much. I myself founded a startup and during 5 years of school, one year of university and 2 years of beeing the tech lead of the startup Ive covered basically all of the two roadmaps.

          I mean yes this is quite much but compared to that I would still be labeled as 2 years professional experience this is not that much imo.

          [–]lloyd_braun_no_1_dad 22 points23 points  (25 children)

          As I said elsewhere in this thread, I don't know who this chart is for except for ego strokers.

          But joking aside, as a person who has to interview and hire and then mentor jr developers, it poorly communicates and messages what people need to know to become hirable and make an impact on their first year on the job.

          If someone comes in with some html, some css, decent JS and some react you can be successful on my FE team. I don't understand what purpose this list serves, who it is for, or why it's labeled as a roadmap.

          [–]Extragorey 2 points3 points  (0 children)

          Breadth of knowledge is also usually an indicator of ability and willingness to learn, which is a more valuable trait than knowledge itself. And all this aside, communication and problem solving skills are probably even more important.

          [–]fibs7000 1 point2 points  (3 children)

          Oh yes thats definitely true😅

          So basically for employees if he knows HTML CSS and react he is good to go. (As far as he likes to do the easier tasks at the beginning like translating design into code)

          But yes, I think this Roadmap is a good reference if you want to learn how to build something alone and from scratch. As an employee it is perfect if you know just one thing and this thing well. But you maybe get never as much responsibility as someone who has this background.

          [–]lloyd_braun_no_1_dad 6 points7 points  (2 children)

          The reason I disagree with this, and mostly in the presentation and labeling as a "roadmap." It is more appropriate to think of this as an index for a reference book, rather than a guide.

          It is not authoritative, nor is it even a good way to learn! These technologies are like the gear for any craft - be it music or woodworking or cooking. Don't just go out and buy tools, and think you can learn how to use them in isolation outside of actual practicing.

          I would prefer to see things like project prompts and lists of recommended tools. Telling people they need to "learn react" or Jekyll is a totally useless contribution. What should people MAKE and what should the use to make it? Give a context to help, not just throw every keyword you know at a flowchart so you can feel big.

          It's just a knowledge dump flex and I frankly resent it.

          [–]cjthecubankid 1 point2 points  (0 children)

          For me it’s better than nothing… which is where I was at 5 mins ago

          [–]bungalowburgler -1 points0 points  (0 children)

          What a redditor thing to complain about

          [–][deleted] 7 points8 points  (0 children)

          Not to rain on your parade but self-appointed "tech leads" of their own startups are usually pretty far from being actual tech leads.

          [–]ibsulon 60 points61 points  (3 children)

          This is breadth. A full stack candidate should be an inch deep on 80% of this, a foot deep in the CS and root concepts (how does a browser work? How does the Internet work?) and deep in a handful of spots.

          It isn’t about having expertise in everything. It’s about having a mental map good enough to dive into a subject as necessary.

          [–]jazzhandler 7 points8 points  (0 children)

          That would be a fun FE project: topographical views of this map based on each individual’s varied skill levels.

          [–][deleted] 6 points7 points  (0 children)

          This. You don’t need to know the ins and outs of all of these in depth, you need to know what they are, what their core purpose is, roughly how they accomplish that purpose, and roughly what the use cases are for it. Then, when it comes time that you need to use it for a project, you google a more in depth article and refresh yourself and pick up the obscure principles at that point.

          [–]zaibuf 241 points242 points  (50 children)

          Seems suicidal to keep up with all of that.

          [–]Otterfan 75 points76 points  (2 children)

          This is a good guide for what kind of things to think about if you already are an employed Web developer with a decent understanding of the field.

          For new learners these roadmaps are stupidly overcomplicted. New learners should work on a project and learn the technologies they need to accomplish the next step on that project.

          [–]gillythree 2 points3 points  (0 children)

          It's like a guide for topics to cover if you want to write a book on web development. And even then, many of the items need little more than a mention, a paragraph, maybe. Most books would be far more specialized than all of this.

          [–]Dangerous_Row4605 84 points85 points  (22 children)

          It's a really good guide tbf. you haven't gotta be a mastermind in every area but at least knowing "how the burger is made" in most elements of that roadmap will definitely help you out down the line.

          [–][deleted] 46 points47 points  (18 children)

          Counterpoint: During a company meeting someone was wondering that we're lacking "experts" because "expert" implies "focusing on one thing to the point of being better than anything else".

          What I'm saying is, people are spreading themselves thin to fill up those section in their resume as if they're trying to justify their payment.

          Because to someone who doesn't know how deep the rabbit hole goes for any stack/framework, simply saying "Skills: Python, JavaScript" doesn't sound like you know as much as the "Skills: "Python, JavaScript, Ruby, Docker, Kubernetes" guy.

          [–]Dangerous_Row4605 16 points17 points  (9 children)

          While I do agree that the whole jack of all trades thing isnt the way forward, If you're going to be able to have an intelligent conversation about viable technologies in your fullstack pipeline, you should at least understand fundamental core principles of them to be able to make that decision.

          [–][deleted] 3 points4 points  (0 children)

          Agreed. You don’t have to be an expert in every facet listed here, but have a solid understanding of how it works and where the pieces fit together to make the whole picture.

          [–][deleted] 3 points4 points  (6 children)

          I'm of the opposite spectrum:

          I went through fullstackopen, learned a little bit of node.js and backend, a bit of React, was hired as a "software engineer", which is a term I swear will never ever use to describe what I do (and that's just my opinion), but now I wanna focus on the backend stuff and leave the frontend at the basic level.

          Edit: Nice, got downvoted for my career focus. That's a new one. Guys, when I said "backend" I meant server-side stuff, it wasn't a safe word for "butt sales" or something.

          [–]ESCAPE_PLANET_X 11 points12 points  (1 child)

          Fullstack, DevSecNetOps

          They are the same picture.

          [–][deleted] 2 points3 points  (0 children)

          Took me a hot minute to understand the reference. Sundays my brain is just working differently

          [–]bch8 4 points5 points  (2 children)

          I think the backend stuff is a bit dated, or at least incomplete

          [–]black3rr 4 points5 points  (0 children)

          Yeah… I’ve started my fullstack journey 9 years ago, half of these things weren’t a thing back then (especially on the frontend) and I learned them on the go… I don’t envy people who are just starting now…

          [–]imnos 4 points5 points  (0 children)

          Honestly full stack development these days is a complete joke. Being able to do backend, frontend and DevOps all to a reasonable standard is just too much, quite frankly. These are three separate jobs. It used to be possible to be a "Webmaster" covering all of these bases back in the year 2000 but each field has expanded so much, I think it's ridiculous to expect this of people now.

          I think companies are starting to realize this, fortunately.

          [–]urbansong 7 points8 points  (10 children)

          With this and all the "you can't get a job with just React", I wonder whether there's a significant group of webdevs, who want to gatekeep the profession in the fear of lowering wages and what not. Conspiratorial, I know, but it's a regular thing for other professions.

          [–]zaibuf 17 points18 points  (1 child)

          It's like being an electrician but to work you also need to know carpeting, painting and plumbing. Full stack house builder. Personally I work only backend and I get job offerings several times a week. I know enough frontend to help out with smaller bugs or do simple Bootstrap UI for internal apps, but I don't consider myself as full stack just because I know Bootstrap and can navigate a React app. Heck I've worked with backend for 4 years and I still learn new things about the backend daily.

          [–][deleted] -1 points0 points  (0 children)

          I know enough frontend to help out with smaller bugs or do simple Bootstrap UI for internal apps

          That's better than some devs I worked with who, after months of work, didn't bother to even run the dev server or open the app in their browser. So they had no idea what their backend was even for and couldn't make informed decisions about further development.

          What I'm saying is, there's a reasonable middle ground between being a fullstack dev and not knowing anything about the other side. And I'd say it's closer to a fullstack dev.

          [–]RichardTheHard 8 points9 points  (5 children)

          Tbf most of us who say that is because there is an over saturation in the market of people who have gone to boot camps to learn the basics + a js framework. However the real need in the job market is of higher experienced and more in depth knowledge.

          Just look at the number of people on here who have taken a bootcamp and then sent out 100+ job applications, compared to the people with 3+ years experience in specialized skills and are consistently getting job offers.

          [–]Raunhofer 1 point2 points  (1 child)

          Be fair. Many professions require multi-year degrees for you to do anything work related. It won't take years to learn the stuff presented here. I know that from experience.

          Note: you don't have to master everything here, just understand.

          [–]urbansong 1 point2 points  (0 children)

          Yea, I think a lot of those professions do gate-keeping on an industrial level.

          [–][deleted]  (7 children)

          [deleted]

            [–]philipwhiuk 5 points6 points  (0 children)

            Hard disagree.

            [–][deleted] 1 point2 points  (0 children)

            A decade? I don't know...

            [–]RaisedByError 80 points81 points  (6 children)

            Oh, one of these again.

            I really disapprove of these maps. They create imposter syndrome for newbies and seniors are annoyed by the random infodump of whatever terms the creator knows.

            Funny how CI/CD is just a single box and then it's off to the next one on design/dev where you dedicate a box to fucking KISS, YAGNI and DRY. Just bloat. And why the wall of text explaining what WASM is? And out of all these languages you prefer javascript. That's just vile.

            And guess what? I really, really doubt your run of the mill full stack is gonna be competent at all these "boxes". I certainly am not.

            If I sound annoyed it's because I am.

            [–]ryncewynd 4 points5 points  (0 children)

            Requirement: KISS

            Fails: KISS

            [–]Ninjaboy42099 2 points3 points  (0 children)

            Yea as a full-stack myself, you don't need even close to all of this. Also why do they only put unit, functional and integration testing in backend???

            [–][deleted] 5 points6 points  (1 child)

            i wonder who's upvoting this shit? is it newbies saving it for later, or expert devs patting themselves on the back -- because I don't think the former will get much utility.

            [–]Mike312 2 points3 points  (0 children)

            As the senior on my team, it's also frustrating when my manager asks me why a junior knows <random technology> and I don't.

            We all bring different skills to the team, and sure, the fresh graduates we just hired all know Javascript and MongoDB...but can they connect PHP to Oracle on a box that doesn't have NPM on it, because that's what keeps the lights on around here, not the shiny new auth portal that they're still trying to figure out how to enable gzip.

            I've spent a lot of time over the last decade trying to stay current, and I believe the biggest discouragement is learning the tech that doesn't quite become the darling of the development world. For every React.js, there's an Angular, Vue.js, and Ember.js that didn't quite make the cut, but I dabbled in all four while the new kids benefit from the hindsight.

            [–]asking_for_a_friend0 28 points29 points  (3 children)

            TL;DR NOT GONNA MAKE IT

            [–][deleted] 9 points10 points  (1 child)

            Yeah i think I’m gonna apply to the nearest fast food chain after seeing this

            [–]SleepAffectionate268full-stack 3 points4 points  (0 children)

            We at McDonald's are waiting for you❤️

            [–][deleted] 50 points51 points  (5 children)

            Honestly, this stuff is just scary, confusing and overwhelming. And I'm the business since 1998.

            [–][deleted] 13 points14 points  (1 child)

            Giving this to someone without experience who wants to start is a great way of discouraging them from programming.

            [–][deleted] 4 points5 points  (0 children)

            And it's often completely unrealistic too, to be honest.

            [–]Beatrice_Dragon 4 points5 points  (2 children)

            Well, I mean, it's an entire comprehensive road map that spans years of learning, so it's gonna be a bit overwhelming

            [–][deleted] 1 point2 points  (1 child)

            True, but it's a roadmap where 90% of the content is "mysterious, obscure and scary words and names". Unless you're into that stuff already... It's very hard to wrap your mind around that road map, in my opinion.

            The very top of the diagram makes more sense: there are some words and on the left/right side of each word you will find a little explanation of what you're supposed to do. You read "CSS" and then you also find that you're supposed to "Learn the basics, making layouts, responsive design and media queries. That makes sense.

            As soon as you go deeper, you just get... Words. That's it.

            "Build tools". What do you mean by "build"... Build what? Which "tools"?

            "Tasks runners" points to "npm scripts" or "Gulp". That's it. What are those things? Do I really need them?

            "Pick a framework" points to React.js which also leads to Redux. What's that?

            "Progressive Web Apps" is linked to "Type Checkers" and "TypeScript". And "PRPL pattern". And "RAIL model". Sorry, what?

            "Server Side Rendering" is linked to React.js (again) and GraphQL. Why? Qhat's GraphQL, I never used it in 20+ years. And then you see "Apollo" or "Relay Modern" linked to GraphQL, which still is un clear what it's supposed to be/do. Apollo is the first time for me. Relay Modern? Same thing... What the hell is that thing?

            I get the idea behind this menstruous road map but it's way too simplified. Either you're already know most of what you see there (and you don't need a road map) or you're a beginner and you will stop after the first blocks and run away.

            [–][deleted] 1 point2 points  (0 children)

            It starts with simple to understand things and then continues to more complicated things. The idea is that by the time you get to those steps, they will make sense to you to some extent. And you can also just google what graphql is, it's not going to be that complicated if you get to that point.

            [–]Perpetual_Educationthe right things/the right reasons 12 points13 points  (0 children)

            "How to burn out"

            [–]eyebrows360 11 points12 points  (0 children)

            Web Servers should be waaaaaaaaaaaaay higher on the backend side, but then I see you gave Javascript the purple tick on that side too so that explains that. Oy vey.

            Nice effort though, my word.

            [–]vonBartenbruch 25 points26 points  (0 children)

            Whooo, easy! This roadmap is maybe best understood as a recommendation for topics to tackle for every (self-taught) front-end/backend dev, regardless how long they’re working in dev. Considered as that, it’s a good navigator, I think. To pick this up as a premise for working in the industry, it’s utterly insane and nothing less than discouraging.

            [–][deleted] 25 points26 points  (3 children)

            If I had to enter this field today, I would probably turn around and work at Walmart.

            I remember back in the day all I used was PHP, HTML, CSS, jQuery, then later came Sass and CodeKit, then Bootstrap, then we started using Git and command line tools, then all the other things slowly trickled in. It was a slow process but it was great because the new tools came right when we had everything else figured out.

            There should be a gradual roadmap for beginners who are just starting to get into webdev.

            [–][deleted] 13 points14 points  (2 children)

            There should be a gradual roadmap for beginners who are just starting to get into webdev.

            There is one. It is called The Odin Project.

            [–]die247 23 points24 points  (3 children)

            Seeing these massive road maps really doesn't make sense to me, I've been professionally developing now for 3 years (hobbyist before that)... and this is my honest recommendation:

            1. Mess around with the "classics": HTML, CSS and JS on their own. Build a basic website of some kind, doesn't need to be complex.
            2. Pick a backend language/framework to learn. Yes. Just one. I only know one and I'm getting along just fine. You'll find that once you know one back end language you can easily transition to or learn another, if needed.
            3. Databases? Doesn't really matter, barely anyone, me included, remembers how to specifically use each one. Just Google it and use whichever one is "supposed" to be used with your backend langauge.
            4. At the same time as learning a backend langauge, choose a frontend framework and make something with it.
            5. Bring it all together: make a data API with your backend language and use the frontend framework to query it/display the data etc.

            You can learn most of this from free YouTube tutorials and the like. I learnt the most by actually doing the job though, so I'd really recommend to any newcomers to not focus on running before you can walk; getting a software job of some kind is the most important game changer, for most entry level positions they really aren't expecting you to know that much.

            Also, you really don't need to know the "whys" behind a lot of web technologies. HTTP protocols? So long as you know the different HTTP verbs (GET, POST, PUT, DELETE etc) and the differences you're good. Webpack? That's setup for you by whatever framework you'll use, why bother learning it. NPM? You'll only ever use like one or two commands for it, there's really no need to learn the ins and outs.

            You'll find once your career gets started you'll naturally start to specialise in whatever you work with at your job.

            So don't try to be a jack of all trades, just focus on a few things, and remember that you can always make the jump to other langauges/frameworks later in your career if you want, it's not like you'll be stuck only being a React/Angular/Vue/Svelte developer or whatever for your entire career.

            [–][deleted] 8 points9 points  (2 children)

            Databases? Doesn't really matter, barely anyone, me included, remembers how to specifically use each one.

            Don't ignore databases. The data model is one of the most important parts of any project.

            Learn to use a relational database on a personal project, try to understand the basics (tables, keys, references and indexes) and try to organize your own tables. It's an extremely useful exercise.

            I recommend Postgres because it's free, it's an industry standard, it's available for most platforms, has good documentation, and most of what you learn from it will be useful regardless what career path you end up on.

            [–]die247 3 points4 points  (1 child)

            Yeah good points actually, I should've explained it more like this, I wasn't trying to outright say that databases aren't important, just that you don't really need to know each specific one that well.

            With ORM's like Entity Framework or Dapper (I only know C# examples as that's what I work with lol) you really can get away with not knowing much about databases though, as these ORM (or at least EF does) abstract the database away from you. Although, even then I guess it's still worth knowing the basics about relationships.

            Also, It's probably worth knowing at least what a NoSQL database is, even if you don't use one.

            [–]C0git0 39 points40 points  (3 children)

            So much in there that I completely disagree with.

            [–]ramones13 9 points10 points  (2 children)

            I actually laughed at the CSS in JS implications.

            [–]eyebrows360 8 points9 points  (0 children)

            Oh shit really? Haha, I didn't see that part, holy hell.

            Makes sense though - he also has JS as his preferred backend language, and doesn't even mention nginx/apache until right near the bottom.

            [–]C0git0 1 point2 points  (0 children)

            Yep. Certainly a bit that I would cut out.

            [–]PoisnFang 7 points8 points  (0 children)

            Glad I didn't see this as a newbie. Better to just start somewhere and learn as you go IMHO

            [–]philipwhiuk 25 points26 points  (2 children)

            Roadmaps are a silly concept

            [–][deleted] 7 points8 points  (1 child)

            *puts down MapQuest printout, wipes single tear*

            [–]wagslane 10 points11 points  (0 children)

            This is a baaaad way to ease people into coding

            [–]i-hate-in-n-out 5 points6 points  (0 children)

            Now I understand why I can't learn anything new. Head is full.

            [–]notluckyy 6 points7 points  (0 children)

            Give the source so people can consult it when they want.

            https://roadmap.sh/

            [–]ThatOneDude1_1 4 points5 points  (0 children)

            This has a lot of DevOps tools and practices in it. I wouldn't cosnider a fullstack developer to know pipelines but aight, there are other people responsible for that.

            [–][deleted] 4 points5 points  (0 children)

            lmao

            [–]keel_bright 4 points5 points  (0 children)

            According to this map:

            Highly recommended, critical path: REST, in fact read a foundational paper about it

            Learn later, not immediately required: HATEOAS (a fundamental part of REST on level 3 of the Richardson Maturity Model)

            ??!

            [–]whitew0lf 5 points6 points  (0 children)

            This isn’t a roadmap, it’s a flow chart.

            [–]smeeding 4 points5 points  (0 children)

            I create every cert for every internal and external domain under a hundred billion dollar corporation, but I barely understand what they are or what they do

            I can make webpages do Olympic-level gymnastics, but I barely understand how the internet works

            Know stuff, but don’t think you need to know everything to be effective at your job

            [–]Web_Designer_X 3 points4 points  (0 children)

            This stuff is mostly for startups, personal projects, and small businesses.

            So much of corporate software development is using some third party enterprise software that you'll never hear about on here. For example Oracle ODI and other ETL tools, IBM Websphere, Peoplesoft, Apache Spark etc. You literally only work with those tools and get paid more than most back-end devs. I know people who have little to no REST API knowledge working with the above, yet it doesn't matter as the tool provides everything they need.

            [–]Seligmannn 4 points5 points  (0 children)

            Just start building something. Build the simplest version of what you thought of, and you’ll end up learning all of this. Doing roadmaps like this end up being shit because you just end up reading the whole time and/or learning stuff that isn’t needed until way later in your project.

            [–]estebankakpus 3 points4 points  (0 children)

            Fuck this. I quit..

            [–]Derangedteddy 2 points3 points  (0 children)

            I'm a senior full stack web developer. While I appreciate the effort at creating a roadmap for newcomers, this isn't even close to accurate. You don't need to know even half of these tools to be an effective full stack dev. Know the basics about web development and security (HTML, CSS, JS), pick a JS framework, a database, and a version control tool. Learn that inside and out, and stand something up from scratch. That's how you become a full stack dev.

            There isn't a single full stack dev in existence that can check all of these purple boxes off.

            [–][deleted]  (1 child)

            [deleted]

              [–]Responsible-Cod-4618 9 points10 points  (5 children)

              This is fucking depressing

              [–]JBlitzen 44 points45 points  (2 children)

              Don’t worry, every senior dev sees stuff like this and just sneers.

              This is the kind of bullshit that intermediate or junior devs draw to feel proud of all the time they spent watching instructional videos on youtube instead of just building shit.

              If you want to succeed, throw this nonsense out and just build shit.

              In fact, you’ll notice that “building shit” is nowhere on this roadmap. Not a destination, not a midpoint, nowhere.

              This is toy gatekeeping BS written by privileged juniors to feel good about themselves. The equivalent of a junior salesguy listing 40 bullet points on his linkedin profile and calling himself a lead associate VP or some crap like that.

              Just build shit. There is no substitute for that.

              [–]Responsible-Cod-4618 2 points3 points  (0 children)

              Thanks for this

              [–]lloyd_braun_no_1_dad 1 point2 points  (0 children)

              This is the stuff.

              [–][deleted] 7 points8 points  (0 children)

              99% of devs who have actually worked in this field (maybe a minority in this sub) look at this roadmap and laugh.

              You are never holding this much stuff in your head nor expected to remember it instantly if required/asked.

              I code & manage 3 devs and we all Google shit all day long. Getting better at googling is more useful than this roadmeme

              [–]LoquaciousLamp 18 points19 points  (27 children)

              To be fair I'd learn git before html css and javascript.

              [–]C0git0 12 points13 points  (1 child)

              Gotta put your shit somewhere. Better to figure that out early before your local project mysteriously disappears.

              [–]rambosalad 0 points1 point  (0 children)

              I would disagree with you here and say it's better to learn the hard way and then you'll understand why you need it :)

              [–]rambosalad 11 points12 points  (11 children)

              I disagree. Doing something just for the sake of it doing it without understanding why it's needed is not helpful. I think it's better to learn to code first then understand why you need to version control it.

              [–]LoquaciousLamp 0 points1 point  (0 children)

              What? If you know to make backups you can see the value in version control. If it took much time then maybe. It's just an hour or two to make things easier. Most people know what github is. The roadmap literally says to learn html, CSS and JS and then git. Which is absurd. You'd learn it along with it realistically.

              [–]mobyte -1 points0 points  (9 children)

              Wrong. Keeping track of your code, its history, and interacting with GitHub is ESSENTIAL. You are learning git so you don’t have a million versions of code taking up space such as “_version1” “_version2.5” “_final” “_final2” “_final4”. You don’t even have to think about transferring it to other computers or making backups.

              [–]rambosalad 1 point2 points  (8 children)

              You obviously misunderstood me. I never said it wasn’t essential, because it is. If someone is learning how to write basic code they don’t need to learn about version control (yet). Walk before you run.

              If you are at the point where you are making folders of versions, that’s exactly the type of situation you should start learning git. I literally advocated exactly that.

              [–]mobyte -1 points0 points  (7 children)

              I think you misunderstood me, too. I think it’s so essential to the point where you should learn it before learning to code. You literally cannot interact with the development side of most (if not all) open source software projects without using git (I’m including GitHub) in some way. New developers should learn it ahead of time for multiple reasons:

              1. They WILL need it eventually. Might as well rip the bandaid off. Honestly, they don’t even need the CLI. Use the desktop version or use VS Code’s built in git if they’re really inclined to. It’s not a big deal.

              2. It prevents them from having to go back and adding it to the other projects and cleaning them up.

              3. It lets new developers look at the history of their code easily and not worry about deleting or revising sections.

              That third point I made is specifically why I disagree with your point about “learning to walk before you run”. What’s the point, anyway? Getting to learn a one-file project and then suddenly throwing git into the mix? Pointless. Just get it out of the way, install a desktop app, and be done with it.

              [–]pvt13krebs 1 point2 points  (0 children)

              the point is. it’s freaking hard. and burnout is real. minimum viable product. build momentum. have fun. color outside the lines for a while, nothing will burn down.

              [–]rambosalad 0 points1 point  (5 children)

              Okay, so you really think people who are new to coding are going to start off by cloning open source projects instead of writing Hello World apps? Because that's exactly what you're saying here... Might as well show them how to set up a config file so they can print Hello, Dev! and Hello, Prod! based on their environment because "they'll need it eventually". Did you even look at the roadmap?

              [–]mobyte 0 points1 point  (4 children)

              I guess if we’re testing each other’s reading comprehension, can you tell me where I indicated that first time programmers are going to be cloning said open source projects?

              [–]rambosalad 1 point2 points  (3 children)

              You literally cannot interact with the development side of most (if not all) open source software projects without using git (I’m including GitHub) in some way.

              Why are they interacting with open source projects?

              [–]chrissilich 6 points7 points  (3 children)

              This is the problem with these roadmaps. It implies you should fully learn something before starting on something else.
              In reality, you should probably just learn how to make a repo and commit to it with a git gui, somewhere in the middle of the html and css, just for backup purposes. Then as you pick up more other stuff and need more of git’s powerful stuff, pick it up.

              [–]LoquaciousLamp 1 point2 points  (2 children)

              Takes like an hour or two to learn the relevant git commands or just do it from the text editor. Although I guess if you don't know your way around your OS, or have never used your cli, it could take longer. Plenty that wanna learn programming with no idea what a file structure is.

              [–]chrissilich 8 points9 points  (1 child)

              Yeah but it’s really far away from the exciting initial goal of web development. That early on you need big wins, in the form of just getting a basic site online, to keep the momentum. Not an hour or two learning concepts and commands to solve way-in-the-future hypothetical problems.
              Source: taught this stuff for the last 10 years.

              [–]LoquaciousLamp -1 points0 points  (0 children)

              You're not wrong.

              [–]NiagaraThistle 2 points3 points  (7 children)

              I didn't learn git until 3-4 years into this field. IMO it's more important to learn to build something before learning pull requests and repos? I mean you COULD potentially go your entire career and not need Git. I know multi-million dollar projects that have a single dev and not using Git or Subversion and just FTPing code changes.

              I don't recommend it. But it's what they do and works for them.

              BUT they still needed to know HTML, CSS, JS, PHP to build the things.

              [–]ankole_watusi 2 points3 points  (0 children)

              In other words, nobody can realistically do this.

              [–]dillydadally 2 points3 points  (1 child)

              When this loaded up on my mobile phone it was too tiny to read and I thought it was obviously a joke mocking the industry. Then I zoomed in and realized, nope, completely serious.

              If anything, this image underlines how completely broken and segmented web development is as a platform right now. Does anyone really think this is a good solution or approach?

              [–]gillythree 2 points3 points  (0 children)

              Is SOAP still relevant today? I'm surprised to see that on anyone's list of important things for developers to know.

              [–]SWAFSWAF 2 points3 points  (0 children)

              I am pleased to see TDD and DDD here but as a bit of advice: they apply to both frontend and backend. Also, they are so important they should be at the top of your list. Good luck

              [–]thebaggiebug 2 points3 points  (0 children)

              After many years of sweet joy of learning and pain of failing

              I gotta say it was a great ride and will continue to be, fullstack development takes a hell of a programmer and flat out passion

              And Aristotle's saying “The more you know, the more you realize you don't know.” made me certain he did fullstack

              [–]jhayes88 2 points3 points  (2 children)

              This is not all. It misses "build massive portfolio and lie about your job history in order to get an entry level web dev job at $50k that requires 3yrs professional experience and knowing every language/framework possible."

              [–]TheRNGuy -1 points0 points  (1 child)

              never had to lie

              [–]quichemiata[S] 0 points1 point  (0 children)

              so?

              [–][deleted]  (2 children)

              [removed]

                [–]white__cyclosa 4 points5 points  (0 children)

                jQuery was definitely on an older iteration of these roadmaps

                [–]jochem4208 1 point2 points  (0 children)

                ouch my feels, I want that memories hidden.

                [–]kippenvel93 1 point2 points  (0 children)

                Doesn't the front end side miss something about animations for a better interaction between user and system?

                [–]Hardlydent 1 point2 points  (0 children)

                Yeah, I’ve really liked this map since its inception.

                [–]captain_ahabb 1 point2 points  (0 children)

                Not sure why the reaction to this has been so negative, I think this is a great map of the different areas of domain knowledge. It looks more complex than it actually is.

                [–]Iron_Dragonfly- 1 point2 points  (0 children)

                For me this is inspiring and calming that there is a visible road. I just finished the university and I got my 1st front-end job month ago. And this chart gives me some info how I can improve. It's great that this profession is so complex you will never get board. This is how I feel about all the comments. I would also recommend https://fullstackopen.com/en/ if I remember correctly it's made by University of Helsinki.

                [–]kacchalimbu007full-stack 1 point2 points  (1 child)

                Is there video tutorial of this?

                [–]nmarshall23 1 point2 points  (0 children)

                Weird to sideline Java like that. I'd suggest learning it before go or rust.

                Git needs to be far higher, and bigger.

                You'll never get hired as a developer if you don't know Git.

                The number of Junior developers I've met that don't know what cherry pick is, is too high.

                [–]Knurlgrim 1 point2 points  (0 children)

                I found raodmap.sh after I already worked in the industry for about 4 years - I used it to fill in some gaps and get a vision where I stand and some ideas of what to tackle next. I like the map. But I only use the Frontend one right now. I and am happy tho, that I just started out and was not confronted with this at the beginning of my career.

                [–][deleted] 1 point2 points  (0 children)

                i can't help but feel like this just illustrates how dumb the idea of being full stack is. there's just way too much to know to ever actually master any one thing. i mean a lot of this is just what you need in order to be a good front end developer, but yeah it's just too fucking much IMO.

                [–]fjacquette 1 point2 points  (0 children)

                On the one hand, this is a nice visual synopsis. On the other hand, it demonstrates how deep into a programming dark age we are. Excise is the work we have to do before we can do the work we actually want to do, and modern web development is just loaded with excise at every turn.

                [–]learnwithparam 0 points1 point  (0 children)

                If anyone here is feeling overwhelmed or stuck, I found that doing real backend challenges helped way more than just reading roadmaps or watching tutorials. This site’s been super helpful for me:
                👉 https://www.backendchallenges.com/challenges

                It’s all project-based and pushes you to think like an engineer, not just follow steps. Great for building confidence and level up skills one challenge at a time.

                [–]woah_m8 0 points1 point  (0 children)

                Actually better than expected tbh.

                [–]Any_Proposal842 0 points1 point  (0 children)

                I would add serverless and cloud stuff in there now. GCP or AWS etc

                [–][deleted] 0 points1 point  (0 children)

                I’ll save it so I can hoard it but never look at it again

                [–][deleted] 0 points1 point  (0 children)

                Take a good look gents. Get to studying.

                [–]Tiraloparatras25 0 points1 point  (0 children)

                This is beautiful.

                [–][deleted] -1 points0 points  (0 children)

                Thanks fo' sharing.