Your Full Stack Roadmap

Hello world!

You want to learn how to program. Hopefully you want to learn to build web applications. Or you're already a developer and want to keep working on your skills. Awesome!

This site is an aggregation of resources from around the web to help you in your quest. Browse it, then come back when you're ready to jump into one of the topics more deeply.

Learning to code can be really hard.

It's not just you who might feel that way. Don't give up.

Your first 100 hours will probably be to be especially difficult: first you'll be on Codecademy or somewhere similar, getting the hang of variables and puts statements, and suddenly you'll find yourself trying to solve some sort of simple algorithm like finding the nth Fibonacci number and everything will break and you'll get frustrated, cry, and believe you're not cut out for this.

Don't let this deter you. Keep at it and it will continue to make more and more sense. Organize yourself and your projects, stay on top of where you are in your plan, reach out to others for help, direction, support, and community, and don't lose heart.

Trust that you really are cut out for this. People from all walks of life are cut out for this, and your background means nothing. (Me? I achieved 2 degrees in English literature and worked in HR/Compliance before deciding to pursue web development, and I couldn't be happier with my decision.)

Your essential competencies: and your full-stack roadmap!

Stack For Yourself's Curriculum

Set up your development environment.

You need a foundational grasp of Computer Science concepts in order to think your way around code. You don't necessarily need this in order to build with code... but you do need it in order to understand what you're building and debugging.

Learn a back-end language that plays nice with the web, like Ruby, Python, Go, C#, JavaScript via Node.js, PHP, or Java. Don't let yourself get lost in the crazy comparison-mongering crowds that tell you that Ruby is dying or Java is too hard. Every single one of these languages has an excellent history, great community of contributors and users, and makes buckets of cash for the companies that use them. Every one of these are great for web development for their own reasons.

Learn the language you've chosen by solving small problems, called algorithms. Then graduate to more challenging algorithims, learn and use data structures, and understand essential concepts like Object Oriented Programming. Everything you'll learn will only improve your grasp of the back-end language you've chosen.

Learn the heck out of git.

Learn how to setup and use databases with your projects. Get really comfortable with SQL syntax.

Learn how the web works, how requests are made, where code lives, how servers listen for and respond to queries.

Learn to create simple pages with HTML and CSS.

Learn JavaScript. Be able to write vanilla JavaScript both in the sense of objects and in the sense of DOM manipulations.

Finally, showcase your work live, and build, build, build.

Other roadmaps!

Learning with some help

I really like the idea of mastery learning, which is when you learn or are taught a concept until you master it, before moving on to the next one. Ideally, you do it with the help of a mentor or community. Here's some places to do that:

In general, if you choose to go to a bootcamp, get the most out of it.

If you ever need help...