There are many ways you can go about picking up the skills you need to become a developer.
And then there are massive lists of skills - and sometimes lists of resources - you can use to “choose your own adventure” through the learning process.
One of the best such list of skills is Kamran Ahmed’s Developer Roadmap, which he regularly updates.
This is no ordinary list of resources. Kamran has painstakingly mapped out all the skills he feels are essential to breaking into different fields of development.
I’ve written about his roadmap in the past. And to celebrate us all being half way into 2019, I’m going to share his entire roadmap here - all three of them.
That’s right - he has lists of tools and resources that are required for the following paths:
In addition to these paths, Kamran also recommends everyone who wants to work as a developer learn the following skills:
Git is a powerful version control system that as of 2019 is used almost universally. If you don’t know it - yes it’s related to GitHub and GitLab, and you can learn how to use those tools, too.
This could be the terminal on a Mac, a Windows DOS prompt, or Bash/ZSH. Note that regardless of which operating system you use, you should probably learn Linux. Even if you’re not using it for your laptop/desktop environment, you’ll almost certainly use it for servers.
I personally recommend doing this in either JavaScript or Python but if you’re up for a challenge and have lots of time on your hands, doing it in C wouldn’t hurt.
There are a lot of other concepts you can learn. I recommend working through a good entry-level computer science course to get started.
I don’t think beginners need a deep understanding of these, but it wouldn’t hurt.
Design Patterns are basically time-tested ways to implement different types of software systems and coding structures. You can learn these gradually as you progress.
As for the alphabet soup, here’s what these stand for:
Kamran’s first roadmap focuses on front end web development.
Here’s his Front End Roadmap in its entirety:
This is a solid list of fundamental skills.
As a front end developer, you will definitely be working with HTML, CSS, and JavaScript - lots and lots of JavaScript.
The only things I think are unnecessary here:
Kamran’s second roadmap focuses on back end web development. If you combine this with his front end map, you get a pretty good path to becoming a full stack developer.
Here’s his entire Back End Roadmap:
I agree with everything here.
I want to strongly agree with his recommendation that you learn a relational database.
Yes - databases like MongoDB and Neo4j can do a lot for you, and are better suited to certain types of applications than relational databases.
But you should still learn SQL and understand how relational databases work.
I also want to add a note on choosing a language.
Even though there are many languages - and you can do essentially anything with any language - I strongly recommend learning either Node.js (JavaScript) or Python as your first language.
Finally, Kamran covers how to become a DevOps, or Site Reliability Engineer. This involves working with a lot of cloud services and overseeing infrastructure.
Here’s his entire DevOps roadmap:
Linux, Linux, Linux.
Also, I would recommend working as a developer first, then gradually coming to specialize in DevOps.
That’s all. What do you think? Did Kamran leave out any essential skills or technologies? Leave a comment and let’s hash this out.
Also, if you have any resources that have worked really well for you learning these skills, share them below as a comment.
#web-development #devops #javascript #angular #node-js