Your Full Stack Roadmap
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 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.
Finally, showcase your work live, and build, build, build.
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:
- Odin Project: completely free, Ruby-based full-stack development program, with an amazing online community.
- FreeCodeCamp: superb, completely free program, teaching from the front-end backwards, with an excellent and huge community which in many cities has local presence. Actively maintained and being expanded to include new courses such as one teaching D3.js.
- Bloc.io: a paid bootcamp whose model is to connect you with a developer who acts as a mentor.
- Thinkful: similarly to Bloc.io, a paid bootcamp program connecting you to a mentor.
In general, if you choose to go to a bootcamp, get the most out of it.