Flatiron School Prework

Master Programming Fundamentals on Learn

What is "Prework"?

Before enrolling in one of Flatiron School's immersive programs, all students are required to complete up to 150 hours of prework to ensure that students enter the class with a baseline foundation in a range of technologies.

The materials covered in the prework have two primary goals. The first is to ensure all students have a fluency in a basic set of skills that will not be covered in class. For example, our Web Development Fundamentals track covers enough HTML and CSS that, while students will use these during the course of the semester, we will not explicitly review those topics again on campus. The second is to give students a solid foundation in a breadth of introductory topics that we will cover again at class though at a more rapid pace and increased depth. This includes topics like Swift and Objective-C in iOS and Ruby in Web Development.

The prework Fundamentals tracks are designed to be consumed linearly, and provide anyone with a strong foundation that can be built upon with further learning in any context.

Learn Dashboard

Learn Helps You
Learn, Together.

Learn, Flatiron School's online learning platform, is the primary tool by which students consume content on campus. It was built to address the fundamental shortcomings that exist in online platforms today, and is what allows us to close the gap between "learning to code" and actually becoming a developer. There are three pillars to Learn: Community, Real Tools, and Open Curriculum.


Learning is not about consuming content. It's about connecting with people through content. Using Learn, students can ask each other questions, collaborate on projects, share screens, and ultimately build relationships.

Real Tools

You can't learn real skills with fake tools. While browser-based learning environments and online learning environments are great for getting started, in order to make the leap from learner to professional students need to use the same tools and workflows that developers use to build software in the real world. This is how students consume content using Learn.

Open Curriculum

No one provider can own all the best content. Students should have access to the best, and most up-to-date content in real time. Much like Wikipedia, content on Learn is Open Source and continually improved by students, instructors, and the community at large.

What You Need
to Use Learn

A Mac Computer

Students enrolled in a Flatiron School can borrow a mac from campus.

Chrome Web Browser

Chrome is highly recommended for the best Learn experience.

Github Account

Go create an account now if you don't have one already.

The Learn OSX App

You'll be prompted to download this when you sign in.

A Fully-Set-Up Development Environment

This takes time — Learn can help you get set up but if you don't have one set up yet, budget up to 45 minutes.

What do You
Want to Learn?

There are a lot of opinions out there regarding the best language to learn first. At Flatiron School, our primary goal is to teach you how to think like a programmer. Whether you learn to think that way through the lens of web or mobile doesn't really matter. Changing the way you think is hard and requires commitment. So start with whatever excites you most. Ask yourself what you'd like to build right now. It's like choosing between learning guitar vs bass; once you learn one, learning the other becomes exponentially easier, so start with the one you're most likely to stick with.

Choose a Fundamentals Track

Web Development Fundamentals

Your Environment

Sublime Text Editor

Command Line and Git Basics

Manipulating Data Types

Learn how to do basic math.

Perform common string operations.

Control Flow

Enumerators and the each statement

Make decisions with if and switch/case


Encapsulate logic with methods

Work with existing Ruby methods


Understand the value of testing code

Read rspec tests

Data Structures

Work with arrays and hashes

Nested data structures

Debugging with Pry

Use Pry REPL to debug code

Final Project

Build a Jukebox Command Line App

iOS Development Fundamentals

Your Environment


Command Line and Git Basics

Basic Data Types

Understand the type system in Objective-C

Manipulate Strings and Numbers

Control Flow

Make decisions with if statements



Increase code readability and reuse by encapsulating logic

Use the built in methods provided by Apple


Work with NSArray and NSDictionary

Extract and manipulate nested data structures


Understand the value of testing

Read Specta Tests through XCode

Debugging with XCode

Debug with breakpoints

Search inline documentation

Final Project

Build a simple app to list interesting locations nearby