The Flatiron School

How to Be a Great Developer: Get Really Good at Solving Problems and Learning New Things

There’s a misconception that the whole job of software developers is to write code for a living. It’s why they get confused for “coders”—but being a developer isn’t just about generating line after line of code. It’s about seeing that complex processes really boil down to logic puzzles. Then it’s about finding a solution to those puzzles. Basically, it’s about being really, really good at solving problems.

As a school that teaches people how to be developers, we can’t just teach our students code and call it a day. That would be really easy. It’s much harder to introduce them to a whole new way of thinking. We’re always looking for new ways to show them that programming is more than just “coding”—and to help them become really great problem solvers.

Here’s are a couple things we’ve learned so far about teaching folks a new paradigm for approaching problems.

Figure out how things work before using them

Knowing how to use something is not the same as knowing how it works. There are a lot of patterns in programming. When you start learning, you can either just ignore designs patterns or try to implement them without necessarily knowing how they work or why they exist. But actually understanding the problem is more important than the code you use to solve it.

When you’re learning, spend time figuring out how and why things are built as opposed to just using them. As part of our curriculum we have assignments specifically designed to make students do things they haven’t learned yet. To close out some of the labs we assign, they have to come to a solution on their own (we’ll tell them a simpler one exists the next day :). It’s also why we teach Ruby before we even touch Rails. If students know Ruby, they can build Rails apps. And because they can build Rails apps, students know how they works and can fix them when they breaks.

Learn new stuff, not just code

Teaching programming as an end-to-end process is really misguided. Developers constantly have to learn new stuff—and there isn’t usually someone around to teach them (other than books, and of course the internet). We always tell students to learn new technologies that weren’t necessarily covered in class because it’s something they’re going to have to do anyway (for now, there’s almost certainly someone on staff who can help out). But beyond just saying, “go learn Angular,” we try to mix things up and ask students to do all kinds of new things.

All students have to keep a technical blog (Amber’s, for example) and learn how to express technical concepts in words (and sometimes GIFS). Last week, they learned improv and dance. This week they’ll learn how to pick locks. In the past, we’ve made students try DJ’ing and knot-tying like sailors who only have very short pieces of rope. Constantly trying new things is the best way to feel OK with being a beginner (read: being very bad at things).

In practice, these activities can be anything that forces you to think in systems and patterns, like designing a board game, playing the piano, quilting, or making very detailed cat statuettes out of papier-mâché. And it’s as valuable as it is fun.

Ultimately, for adults who are just sitting down at the command line, learning to program means re-learning how to learn. Even the most experienced programmers don’t know everything. There’s always something new to wrap your head around—whether it’s an update or a new technology. It’s about feeling just fine out of your comfort zone, understanding the fundamental concepts it takes to learn a new programming topic, and approaching every new situation (whether it’s learning Swift of developing a Ruby extension in C) as a problem to be solved.

Peers Make Great Teachers: Alumni Tutoring and Mentorship at The Flatiron School

Learning to program doesn’t happen all at once. It’s a process full of happy highs and stubborn lows that takes a lot of trying and failing. You can struggle with something for days when suddenly it just clicks.

We think we’re pretty resourceful when it comes to helping students understand the stuff they’re learning. Instructors will assign more labs or hold 1:1 tutoring sessions—but sometimes getting the material is just a matter of hearing someone else’s perspective on it.

To make sure students in our Web and iOS course get as many of these perspectives we can give them, our alums volunteer to share theirs. Every Sunday, alumni hang out for a few hours (or more!) to hold office hours, help students out with labs, and go over any questions that pop up.

If alums have a new way of explaining a topic that really makes it stick, great! Students get a valuable perspective from their peers. And for those doing the teaching, they’re crystallizing their knowledge while learning how to teach—a skill they’ll be able use over and over again.

Read More

Code History Lesson: Alan Turing

The quote above is from Alan Turing’s essay, "Computing Machinery and Intelligence" (the one where he introduces the Turing Test). It might seem like an overarching statement about technology, but it’s actually about building a theoretical basis for artificial intelligence back when AI was just fantasy.

As the “father” of theoretical computer science, Olympic-quality long-distance runner, extraordinary genius, and tragic hero, Turing (1912-1954) packed a lot into his 42 years. Because so much of we do wouldn’t have been possible without him, he makes a regular appearance in programming lectures at Flatiron School. Here are three things you should know:

1. He helped make computer science a thing

He formalized concepts we use every day like, “algorithm” and “computation” with the Turing machine—a beautifully simple, totally hypothetical device that explores the possibilities of computation.

The Turing machine, or “universal computing machine,” held its program on an infinite piece of tape and was capable of solving any algorithm. This set the groundwork for him (and others) to make the conceptual leap from impossible tape to using the computer’s own memory to hold the program.

Read More

How to Get Into Flatiron School: 6 Ways to Make Your Flatiron School Application Stand Out

Monday, we kicked off our newest web and iOS classes. The first week is always an exciting one—not just because we’ve got a ton planned or because students ship code on the first day. It’s also because we love finally meeting them in real life (or seeing them again, if they’ve stopped by campus already).

To get here, they had to go through our admissions process with around 900 other applicants and totally stand out among some super qualified, smart people. If you’re looking to apply to Flatiron School, here are 6 ways to make our shortlist:

1. Build Something

Show us you’re going to love programming. You don’t have to be an expert, but it really helps to have gone through free online courses like Codeacademy, or our Pre-work, a curated resource list for beginners. Even better, build something simple in Ruby like a Tic Tac Toe game and show it to us.

Programming for 60+ hours a week for three months is a big commitment. So a lot of our application decisions really come down to whether or not we think applicants are going to love the stuff they learn. It’s totally cool if you aren’t an expert yet, but actually taking initiative, learning on your own a bit, and making something is the best way to show us you know what you’re getting into. Plus, if you hate it, it’s sure going to save you a lot of time.

Read More

Next Week: Android for Developers Workshop

Next week, swing by Flatiron School to learn Android fundamentals in one of two three-hour workshops designed for developers.

To kick off Android for Developers—our newest part-time course, we’re hosting two workshops on Android fundamentals.

Both workshops will cover the basics of Java and the Android SDK using Android Studio. Participants will get exposure to Android’s Model-View-Controller design pattern and the Java language through lecture and demonstration. Before time’s up, they’ll use the IDE to construct an API-backed Mad Libs generator app.

Participants are expected to be proficient in an object-oriented programming language (such as Ruby, Python, or Objective-C) and will need to complete a 10-minute environment configuration prior to attendance. They’ll also need to bring their own laptops, preferably Macs.

Session 1: September 30, 6:30-9:30 PM
Session 2: Sunday, October 5, 10:30-1:30 PM

The Flatiron School
11 Broadway, Suite 260 
New York, NY 10004 

Register on our Eventbrite page before spots fill up!

Read More

Heat Seek NYC Wins At NYC Big Apps

Watching Heat Seek NYC go from Flatiron School project to awesome side project to NYC Big Apps winner has been really exciting from where we’re sitting.

Here’s their deal: New York City law says apartment temperatures must be kept at or above a certain level between October and May. Unfortunately, this law is really difficult to enforce. Tenants’ handwritten temperature logs are the only evidence that there was ever a violation, but they don’t exactly hold up in court.

To provide people with a better alternative, Heat Seek NYC takes temperature readings every hour and records them online. Tenants, advocates, and lawyers can log in to check the temperature at any time, set alerts for when it gets below the legal minimum, and easily generate temperature logs based on real data.

Read More

How to Hack a Development Environment and Teach High Schoolers to Code on a $200 Chromebook

This post was written by Tristan Siegel, a Ruby Instructor at Flatiron School. In just a few weeks, he developed a way to turn $200 Chromebooks into ready-to-code programming machines. Read Tristan’s original blog post on the experience right here.

We designed Flatiron After School to teach high schoolers the same skills professional developers use every day. A big part of this is getting our students really comfortable navigating a real programming environment—using software that any developer would use. But how can we make sure all of our students have access to the same technology when some of them don’t have access to or just can’t afford a laptop?

Any student in our course who needs one can use an Acer C720 series Chromebook for free throughout the semester. We’ve hacked them into ready-to-code programming machines with an Ubuntu install script based on an awesome one developed by Codestarter.

Our script automatically installs everything students need to start learning to program, including Linux, Ruby, Git, Sublime, Postgres, and decked out Bashrc for the command line—absolutely no kids stuff. Best of all, it turns a $200 Chromebook into just as good a way for beginners to learn to code as a $1,300 MacBook.

The script is Open Source. We know from seeing so many people learn that, with a good teacher and a lot of determination, anyone can be a programmer. Hopefully, this software will help people learn how to code, even if they don’t know where to start or can’t afford an expensive laptop. To give it a spin, fork our Repo!

We hope our custom Chromebooks will help high schoolers understand what becomes possible when they learn to code—that a computer isn’t just a way to consume media. It’s a tool to help them express their own passions and creativity. Know a high schooler who’d love to code with us? Learn more or enroll now at

Teaching High Schoolers Code At Flatiron After School: A Q&A With Program Director Lyel Resner

Lyel Resner is a native New Yorker and the Director of K12 Education at Flatiron School. Lyel and a team of amazing teachers will be leading Flatiron After School—our brand new coding program for high school students. To kick off what is sure to be an exciting journey, he’s answered a few questions on what the program is all about.

What is Flatiron After School?

Flatiron After School is a 12-week long coding program for high school students. They’ll learn the fundamentals of web development the same way adults in our immersive programs do, regardless of how much code they know coming in. Our curriculum and differentiated teaching methods are designed to support, engage, and challenge students at all levels of experience.

Classes are held every week for a total of four hours, either after school or on the weekends. By the end of the program, students will be able to build dynamic web applications using Ruby, Sinatra, HTML, CSS and even some JavaScript. These final projects can reflect what students are actually interested in building—maybe an app that texts them the weather and outfit recommendations or one that helps them figure out what movie to watch.

Read More

Learn How to Build Android Apps: Announcing Android for Developers

We’re so excited to announce the launch of Android for Developers—a 10 week course designed to teach developers how to program for Android.

About Android for Developers

The course is built from market demand and based on Google’s set of requirements for Android design and application. In 10 weeks, developers with at least one year of object-oriented programming experience will learn the design patterns, frameworks, and environments necessary to be proficient Android developers—and have something to show for it. Students will also build and deploy at least one app to the Google Play Store.

Read More

Flatiron School At New York Tech Meetup

Last night’s New York Tech Meetup was a really great time. Not only did we get to see awesome demos from Makr and Bubble, we totally got to see Mayor de Blasio introduce New York City’s first ever CTO Minerva Tantoco. Crazy, right? Here are some highlights:

1. Flatiron Co-founder Avi explained why we’ve started teaching high schoolers to code.

In a nutshell, coding is a skill that can transcend all sorts of boundaries and empower high schoolers with new ways to engage with the things they love. Avi also shared this video and announced Flatiron After School, our new coding program for high schoolers.

Interested in enrolling? Learn more or post why you love programming on Twitter, Facebook, or Instagram with #WhyICode for a chance to win two free spots! More contest info right here.

2. The amazing Julia Taitz, a senior in high school and Flatiron grad, talked about why she learned to code and demoed her app.

Julia demoed the app her project team built while they were students at Flatiron School. Modern Mind is a collaborative drawing app based on the game Exquisite Corpse that lets users make art together. She also took this selfie, and made everyone smile.

Read More