
Developer Roadmaps - dskrvk
https://roadmap.sh/roadmaps
======
Thorentis
Would love to see a roadmap added for embedded development or system level
programming etc. There is a huge emphasis on "the web" when it comes to
software engineering, that people forget (especially college students figuring
out a career path), that there are many jobs in defence, hardware companies,
etc. that develop software without using any web technologies at all.

~~~
abhishekjha
What exactly qualifies as a web technology? Isn't anything on an IP address a
web technology?

~~~
TorbjornLunde
Web != internet.

HTTP, HTML, CSS, JavaScript, etc are web technologies.

TCP/IP (among other things) are internet technologies.

Web tech builds upon internet tech.

~~~
seangrogg
Semantics, but JavaScript itself is not a "web technology" \- despite being
conceived for the purpose of web scripting the original publication for
version 1 even calls out that the language can be used on a variety of host
environments (not limited to browsers). This can largely be seen in host
environments like Node.js where it acts like any other similar language.

~~~
jolmg
By that logic, CSS is not a web technology because it can also be used in GUI
toolkits like GTK[1]. HTML is used in ePUB files[2], so I guess it's not a web
technology either...

Would protocols that use HTTP for transport like gRPC[3] mean that HTTP is not
a web technology either? I don't know what is a web technology anymore...

[1] [https://developer.gnome.org/gtk3/stable/chap-css-
overview.ht...](https://developer.gnome.org/gtk3/stable/chap-css-
overview.html)

[2] [https://en.wikipedia.org/wiki/EPUB](https://en.wikipedia.org/wiki/EPUB)

[3] [https://en.wikipedia.org/wiki/GRPC](https://en.wikipedia.org/wiki/GRPC)

------
kamranahmed_se
Hey guys, I am the person behind this website. Please know that it is still in
progress. I wanted the initial version out so it is just the "roadmap" images
for now. However, I am working on making these roadmaps more accessible for
the beginners and easier to contribute to. In the list of things planned for
the coming week is the textual version for each with different sections (job-
ready, intermediate, advanced, overall landscape, etc) and each of the steps
are going to be clickable with resources to learn from.

The website and the content is opensource and can be found at
[https://github.com/kamranahmedse/roadmap.sh](https://github.com/kamranahmedse/roadmap.sh).
Please feel free to contribute, drop your feedback, feature requests and
issues there.

~~~
pjmlp
Frontend roadmap completly ignores everything that isn't a Web browser.

So no Qt, wxWidgets, Android, iOS, WPF, Forms, UWP, WinUI, GNOME, KDE, ...

~~~
notthatharda
Except Android/iOS, everything you listed is dead or dying.

No sane person would pick anything but Electron for a desktop app today,
unless you are in a particularly high performance domain
(CAD/Graphics/Video/...)

~~~
AlchemistCamp
> No sane person would pick anything but Electron for a desktop app today,
> unless you are in a particularly high performance domain
> (CAD/Graphics/Video/...)

People who don't hate their users or who don't hate the environment might.

Electron apps use lots of CPU, lots of RAM and lots of energy. I get that
they're easy for web devs to make and I've made them before but I'd fight
tooth and nail against launching one at scale (like Slack did, for example).

~~~
notthatharda
Well, if you make the energy argument, theres a lot more to cut then.

How about high resolution displays? And bit depths? We can perfectly work on a
1024x768x256 colors screen. Imagine how much CPU/GPU cycles that would save.

------
_akei
These lists are so depressing. Is there any other career where people are
expected to know 100 things just to be an employee at the bottom of the food
chain? I won't be surprised if it is harder to be a Full Stack Developer than
to be a CEO of a multi-national corporation. Looks like we are pushing
everything to Developers. Developers of the future are going to need a
fulltime pyschologist to cope with this ever increasing list of skills
required from them.

~~~
mLuby
Doctors, lawyers, and real engineers at least have similar or more broad
domains they must be experts in, _or people die._

CEO is a hard role not because of domain area but because of risk and
uncertainty, both of which tend to be low when you're "at the bottom of the
food chain."

~~~
madiathomas
All doctors, lawyers and real engineers I know only focus on one aspect. They
are specialists. I know lawyers who specialises in rape cases, conveyancing,
ligitation, but I have never met a lwayer who is expected to solve a rape case
today and register a bond tomorrow. Same with doctors. They specialise and
only focus on one domain. I was talking about skills when I included CEO, not
about risk. When there is lots of money involved, almost everyone will accept
to assume that risk and collect rewards.

~~~
realityking
But even a lawyer specialised in criminal law will have gotten a broad
education in contract law, property , civil procedure.

In my engineering school, mechanical engineers were taught the basics of
electrical engineering.

There is a lot of value in gaining a good amount of breadth before
specialising, even if just to ease communication with specialists of adjacent
fields.

~~~
madiathomas
The best people in every field are people who are focused on one aspect and
one aspect only. Linus Torvalds only focus on C programming and kernels. If
you judge him based on these lists, he will be regarded incompetent because he
can't do UI and is proud of it. He doesn't even try to learn the basics about
it because he has his speciality and do it very well.

Lionel Messi doesn't try to be the best header or best defensive midfielder.
He focuses on dribbling and scoring goals.

~~~
realityking
Linus Trovalds didn't just create a kernel but also a version control system
and even a scuba diving planning tool
([https://en.wikipedia.org/wiki/Subsurface_(software)](https://en.wikipedia.org/wiki/Subsurface_\(software\))).

In the latter, he also touched some GTK code:
[https://github.com/torvalds/subsurface-for-
dirk/commit/c0adf...](https://github.com/torvalds/subsurface-for-
dirk/commit/c0adfdc41bc5bea580f85a29dc073678fcb617e8#diff-
dff395e8bda6d155ed50e7984f6527e9)

Trovalds has much more breadth than you give him credit for.

------
thih9
I've looked at the "Backend Developer" guide, I'm surprised that it doesn't
mention git or any other version control tools.

I think it could be a useful addition; nowadays version control is part of
almost all backend projects.

~~~
kamranahmed_se
Thank you for pointing it out. It is still being modified and will hopefully
be fixed this week along with the other changes. It was there in the "common"
section in the repository [https://github.com/kamranahmedse/developer-
roadmap](https://github.com/kamranahmedse/developer-roadmap) but was missed
when moving the roadmap to the website.

~~~
s_gourichon
1\. Yes, git should definitely appear in a common / transverse section. Oh, I
see it now appears.

2\. What do you mean "missed when moving the roadmap to the website"? Don't
you have an automated deployment setup?

3\. I see no code at all in the repository. This looks like free-to-contribute
documentation, not FOSS then. Still, very good thing that you did it.

4\. Also, besides web (that you cover) and embedded (as mentioned in other
comments, and writing device driver can be considered similar), there is still
also desktop applications, signal processing oriented programming (including
electrical, sound, image and similar) and their number-crunching oriented
cousins (machine learning, smart data import with added value, data science
and similar) and security. I personally know startups that do each of these.

------
greggman2
I think I don't understand these. They seem too high level to actually be
useful. There's a old Steve Martin skit from the 70s where he's says he's
going to tell you "How to get a million dollars and never pay taxes...... Step
1: Get a million dollars ...". These roadmaps seem about that level.

Am I missing it? Are these actually useful? For example clicking backend the
first thing is it lists 14 languages (although two of these items are not
languages). How is that useful to someone? Which one should they pick? How
would someone that didn't already know these languages and their strengths and
weaknesses get useful info from that? Sorry I'm not trying to be critical just
wondering how this is helpful.

~~~
swilliamsio
I partially agree. The backend map seems really wishy-washy. The front end map
seems much more useful, just because it's more limited in scope. It would be
better I feel with in depth tutorials for every step, or links to them, with
achievable goals at every step, kind of like a testable curriculum.

~~~
brojonat
It's funny seeing different peoples' takes on this; someone else said the
frontend section was a 'hot mess' but the backend was much more structured and
well done. Guess it's just a testament to how much is out there.

------
biudiepie
Love this idea, hope the maps could be interactive. Attaching related
resources would be great.

~~~
jktj
I second this, related resources for language of choice.

------
kevinyun
Wow, this is nice. Going through the front-end path briefly, I realize I know
most of these things, and it is because of gradual exposure and necessity in a
tool.

I remember as a freshman in college, when I decided to first learn the basics
of web development, I saw an intimidating roadmap like this one (though that
was for full-stack). Back then, I would have never dreamed of making it even a
quarter way through the list.

------
veeralpatel979
Would love to see a roadmap on security engineering!

~~~
sauravs
good point...i will be interested too

------
aaron-santos
Maybe not a developer roadmap per se, but I refer to this data science
roadmap[1] from time to time. It isn't a definitive statement on what makes a
data scientist, but it does help me pick the next concept to learn and make
knowledge gaps more obvious.

[1] - [http://nirvacana.com/thoughts/2013/07/08/becoming-a-data-
sci...](http://nirvacana.com/thoughts/2013/07/08/becoming-a-data-scientist/)

------
rgoulter
These seem to be bags of words, which hardly explain the rationale or context
for any of the items mentioned.

In terms of 'brainstorm of words, some of which may be useful', fine. But I'd
be very surprised if even the average dev had even heard of everything on that
list. The scope includes some ubiquitous things, and some things that are
surely niche.

I'm hoping no beginner gets the impression that they ought to know all of
these things or else they're an imposter.

What's the appeal to these?

~~~
tchaffee
Full stack dev here. Both the frontend and backend lists look reasonable and I
know all the tools and the vast majority of the terms. I do agree with you
that the lists look overwhelming. Some information hiding and ability to
reveal would help.

------
throwaway35784
If they are image maps with links where to learn the leaf nodes this would be
the bees knees.

------
kmfrk
Great concept! Teaching yourself things is always difficult because you only
see things horizontally and don't know how to actually build on what you know,
especially without spending 000s of dollars.

~~~
loco5niner
> 000s of dollars

Wow, that's a lot of dollars

------
avishj
That's a really nice website. I'm a young developer interested in web
developer and it gives me a good roadmap for how I would go along figuring
stuff out till I become a full stack web development. I just hope that the
full stack roadmap comes soon, the front-end and back-end seems really well
planned out.

Another thing that I'll say that would be nice, if there were other roadmaps
for become a mobile app developer like those including OSes like Android, iOS,
Mac OS, etc.

------
Farbklex
Good overview. I also like it as an illustration for beginners to explain,
that "learning to code" is very broad and can be broken down into tiny areas.

When I teach friends how to code, I show them the bigger picture and then
narrow down what I'll actually teach them no manage expectations: Java /
Kotlin basics and some android development. So they now what they get in the
beginning and what else is out there.

------
yuchi
The design of the maps is terrible, the content is gold. Will recommend
internally in my company.

Very nice job.

------
sethammons
I find the back end engineer roadmap lacking a few critical items that seem to
be in the devops section (granted, everyone needs devops chops). Metrics,
monitoring, alerting, and networks (tcp, http, grpc, sockets), and basic
distributed systems.

------
Z3lgius
This is amazing! I always get questions from new developers or students
similar to "I want to do/be X, how do I start?" and now I can point them to
this. Thank you for this.

------
ddorian43
Create a roadmap for low-level/systems developer (ex: create database, search-
engine, storage engine, replication, sharding, low level performance etc)

------
lubonay
Here's an idea to improve this site: make the texts searchable somehow. Ctrl+F
-> "JavaScript" shouldn't yield 0 results.

~~~
dsego
It's a png.

~~~
xboxnolifes
And he's suggesting for it not to be.

------
sandGorgon
this is very cool. how do i add one ? this page is empty
-[https://github.com/kamranahmedse/roadmap.sh/blob/master/cont...](https://github.com/kamranahmedse/roadmap.sh/blob/master/contributing/guide.md)

P.S. are you generating a static site using next.js ?

------
neiman
Wow, may be slightly overwhelming for a newcomer but a great idea
nevertheless!

Which tools they used to make these beautiful infographics?

------
zyl1n
What does yellow color in some boxes mean?

~~~
tudorpavel
It's unfortunate that not every diagram contains the legend from the first
diagram in the GitHub repo [0] which explains yellow as "Personal
recommendation" and orange as "Available Options". I think grey was
"Optional".

[0] [https://github.com/kamranahmedse/developer-
roadmap](https://github.com/kamranahmedse/developer-roadmap)

------
franferri
Brilliant idea

------
pjmlp
The Frontend Developer "roadmap" ignores any kind of native UI development.

It should be renamed to Frontend _Web_ Developer.

~~~
scarface74
When people in the modern era say “front end developer” that basically implies
web.

Most people in common nomenclature don’t call iOS and Android developers
“front end developers”. They are referred to as “mobile developers”.

~~~
pjmlp
Plenty of digital agencies do frontend work across multiple delivery platform
formats

~~~
scarface74
I don’t doubt that. But, if they advertise a need for “front end developers”,
that would strongly imply web developers.

I would definitely be surprised if they advertised a position for a “front end
developer”, I applied and during the interview they asked questions about
Windows Forms development.

~~~
pjmlp
Be prepared to be surprised then.

~~~
scarface74
Trust me, I’ve been on plenty of successful interviews. Not once have they
wanted a “full stack developer” or a front end developer that could do Windows
Forms.

I’m not saying that no one wants desktop developers - they just don’t refer to
them as “front end” developers.

Windows Forms or any windows desktop development was already losing favor when
I was looking for a job in 2008 after being at one company for almost a
decade.

Now in 2019, any developer who cares about his career will run screaming the
other way if a company even mentions that they are doing desktop software
unless they can get a job with Microsoft or Adobe.

~~~
pjmlp
Believe me as well, doing frontend native and Web UIs since mid-90s, including
digital agencies.

Plenty of companies are doing greenfield native UIs, including desktop. Mobile
is desktop as well, just a matter of hardware form factor.

~~~
scarface74
Mobile is “not just like desktop” unless you’re using a cross platform
framework and even then you have different constraints - unreliable network
connections, different screen sizes and interactions, you have to be more
mindful of power and memory usage, dealing with app stores and review
processes, etc.

But its really not hard to look at job boards or where the money is going both
from internal and external investments to see which cart to tie your horse to.
It definitely is not the desktop.

Even Microsoft isn’t really focusing on desktop development and has put .Net
Framework in maintenance mode.

~~~
pjmlp
A tablet with keyboard is a desktop.

A laptop with wireless connectivity is a desktop.

Anything with a pluggable keyboard and screen is a desktop.

Something that many fail to grasp.

~~~
scarface74
What's your point? Just like "front end development" implies "web development"
to most people, "desktop development" implies "development that is not web,
Android, or iOS".

~~~
pjmlp
To people that don't know better.

~~~
scarface74
Are you really saying that there are people posting to HN that don’t know
“desktop applications” don’t include applications running on laptops?

~~~
pjmlp
Indeed.

------
loco5niner
Great content. Lots of typos

