This guide is deprecated. I am no longer maintaining this guide on the FreeCodeCamp forums. I have moved it to GitHub which affords me a more streamlined method of ensuring the content remains up to date and relevant. It also allows me to format the guide more nicely, and will allow users of the guide to see revision history so you can ensure you always have access to the most up to date version and know immediately when any change occurs.
I will no longer be responding to requests on the FreeCodeCamp forum. For questions and comments, the best place to reach me is in @tropicalchancer's cohorts. Other options include opening a ticket on the GitHub repo for the guides, or tweeting me (@P1xt).
The new home for this guide is:
P1xt Guides on GitHub
See Original Post
Note: @kevcomedia has ported the entire list into a Trello board you can clone to keep track of your progress you can find the Trello board here.
Note: Scroll to the bottom and read the "Things to Keep in Mind" section. It contains information about how to approach the list that is just as important as the list itself.
Note: This Guide is heavier on computer science than the other, if you want less of the heavier computer science and more on practical web development you might want to check out Guide: Web Development with Computer Science Foundations - comprehensive path as well and pick the one that most meets your goals.
The only things that you need to know are how to use Git and GitHub. Here are some resources to learn about them:
Note: Just pick one of the courses below to learn the basics. You will learn a lot more once you get started!
There WILL be math. And, it's important. If the thought frightens you, or bores you, or has you thinking "this isn't for me", head to Khan Academy right now, sign up, and start devoting 30 minutes a day. This is an investment that will pay off. I'm not making this up.
The list - work down it in order
Tier 1 - getting started
Tier 2 - develop more expertise
Tier 3 - add more rigor
Tier 4 - polish the rough edges
Bookmarks you should have
surge.sh - deploy your frontend projects here (or use github pages)
Heroku - deploy your fullstack projects here (or hyperdev)
Firebase or mLab - database hosting
GitHub - store your code here
Material Design - lean on this when you need a structure for creating a minimalistic but awesome looking site
Material Palette - for selecting color schemes
Wirify - for quickly turning a web page into a wireframe so you can see the big picture instead of all the graphics
Things to keep in mind
- have git commits every week, most of the days of the week
- try to get in one of @tropicalchancer's cohorts - be active once you're in
For each item you should:
- take notes, on a blog, in markdown, wherever, somewhere - not about what you read, or about what the instructor said - about what you learned
- build something - even if it's just a 20 line function that computes something you find interesting
- if you build something, document it and test it as appropriate
- do the exercises, build the projects - fully, not some scaled down halfassery
For four projects of your choosing
- Seek 1-3 other developers to collaborate on the project
- Coordinate with the team to complete the project
- Build the project out to a full production quality application
- Invite others who are not associated with the team to rigorously test the final product.
- Resolve any legitimate issues found
Once per month - do two or more of the following:
If you need a breather from an item, do one of these, then get back to it
- complete a project from FCC that isn't included in this list
- pick a pet web development project you can code in a week and complete it
- code another android application
- write a guide for the FCC wiki or create a video tutorial and post it to YouTube
- learn golang or rust and complete any of the backend projects from FCC with that language as the backend language
- pick an open source project from Code Triage and contribute to fixing an open issue
- visit the FCC forum and pick a couple of the toughest questions, that people are having trouble getting help with, and help them
- code a flash cards application, for jotting quick notes you can use to quiz yourself later
OpenStax - Open Source textbooks on a variety of University level topics, check here if you want a reference math or physics textbook
04/17/2017 - modified the How to Code: Systematic Program Design links to point to the new version of the course (it was revamped this year)
Note: Don't ask me how long this will take you. I do not know your aptitude, determination, or propensity for flitting off to check Facebook every 5 minutes, nor do I know how much time you have available to devote daily. Begin working through it and gauge for yourself the speed with which you progress. I promise you, if you just start from the top and work your way down, you won't accidentally learn something useless while you figure out your learning pace.
Note: I took some care to ensure that this list contains only resources which are legitimately free. You may need to give Heroku a credit card if you host all your projects there. If you don't want to /can't do that, just deploy locally, deploy to heroku, and then delete the app from heroku once you've moved on to a different project (that won't work for FCC certification because it needs to be accessible to meet the guidelines, but for the purposes of this list, once you're done with a project, I don't see a lot of value in persisting it on the web while you're working on something else --- UNTIL, you need to polish your portfolio for a job application, then you would want to have your best projects running online).
Although I took heavy inspiration from many resources when creating this guide, none of it is a cut and paste path from somewhere else. Often, I substituted courses (especially in the case of Coursera) to ensure that the entire course was available for free and required no purchases of any kind. Where possible, I tried to align projects to reinforce prior learning.