At Flatiron School we focus on teaching the things that are difficult for people to learn on their own. If you're just getting started though, there's a wealth of resources scattered around the web to help you out. We've tried to cherry-pick the best of those resources and organize them into distinct learning paths that will help you get started on achieving your goals.

Each resource has an estimated amount of time it should take you if you have zero prior knowledge on the topic. We make suggestions of how much time to spend on each section. Try and achieve the learning objectives in the suggested time frame, then move on. You can always come back and watch the section again.

Some of the resources have quizes/badges attached. If you'r already familiar with a topic, feel free to pass the quiz and move-on. That being said, even we find ourselves learning new things from the material.

These paths are designed around breadth over depth. We feel it's important to get a solid foundation in the broad set of fundamentals within each path before diving deeper into a specific area. Try to read and watch as much as possible.


These Paths are designed to be self-sufficient. Regardless of your experience level, what Path you choose DOES NOT MATTER. Your goal should be to learn to think like a programmer, not learn a specific language. Choose one you're passionate about as the lens through which you will learn, and everything else will fall into place. We promise.

Web Development

Web Developers create interactive web-based applications. This includes everything but the absolute most simple websites. If your goal is to build awesome things on the web, start here.

iOS Development

iOS is the operating system for iPhones and iPads. Learn how to program the tiny computer in your pocket by launching a simple to-do list app, and adding features as you learn.



This prework is set up as a jekyll site on github. Feel free to send Pull Requests or raise issues on the repository.

Fork me on GitHub