The Flatiron School

The Flatiron School is a 12 week intensive program designed to turn you into a web developer.

What Makes The Flatiron School Special?

The answer below was originally posted in response to a question on Quora about what distinguishes us from other programs.

Hey, I’m Avi, Dean of the Flatiron School

I haven’t gone through any other programs (though I did create the syllabus for the original GA Intro to Web Development), so I can’t tell you what the differences are between them, but I can try to explain some of the things that we think make us unique. First though, I think it’s important to point out that I think you’re asking the wrong question. If you’re looking for a credential, then brand matters.  But in this world, nobody cares from which of these programs you graduated. All anyone cares about is whether you can do the work. 

We believe that teaching is a craft. Having a practitioner give a one-hour lecture is one thing. But if you want to master a subject, having an incredible teacher is invaluable. The reason kids like math in 7th grade, history in 8th, and bio in 9th, is that great teachers inspire people to connect to topics on higher levels. No matter how much you love a topic, if you don’t have a great teacher, you won’t learn nearly as much. To that end, all of our teachers are employed full time. They do not lead semesters without TA’ing at least one first, and we take 4-6 weeks off between semesters to focus on teacher training and curriculum development. We could be way more profitable if we didn’t do that, but we believe it’s the only way to ensure quality. 

I love teaching. I’ve been doing it full time for years (here are some skillshare reviews). Our syllabus has been developed over years of trial and error. Some other folks like Dave Hoover and Shereef Bishay at Dev Bootcamp and Jeff Casimir at gSchool have the same motivations and I really respect the work they do. Lots of other programs seem to be started by people who can barely code or have never taught. 

Ultimately, whichever program you’re considering, find out who will be teaching you. How long has that person been teaching? What’s his/her philosophy? Do you connect with that person? Sit in on a class. Speak to students who learned with that teacher. Find out what those students are doing today. Find the person with whom you connect the most, who inspires you the most, and choose that teacher.

I can drone on about this but if you want to learn more about my philosophy, I was recently interviewed for a podcast where I get into it in some detail (you can also feel free to reach out and come by the school any time to talk to me/students/alumni.

As far as the program itself goes, here are some things I think make the Flatiron School unique.

1. Logistics - This is the easy stuff. Our program is 12 weeks long, on campus, full time. Before starting the program, students go through about 100 hours of pre-work ( Flatiron School Prework ). Additionally, after the 12 weeks, we work with students one-on-one to help them with job placement. So the 12 weeks are entirely focused on learning but in all we’re working with students for anything from 14-20 weeks. Last semester we ended up with 100% job placement within 5 weeks of graduation.

2. Culture - We currently have a 10% acceptance rate into the program. This allows us to not only have a class that’s incredibly smart and passionate, but also extremely diverse. Our current class is 40% female. Former student backgrounds have ranged from pro-poker players and Major League Baseball ScoutstoWall Street TradersLawyers and even Customer Service reps.  We could probably pack an entire class with bankers, and they’d be great, but this makes for a lot more fun.  (check out our instragram for some more on that).

Also, while there are a lot of great reasons to learn how to code (start a company, execute an idea, get a job, etc…), those are not the reasons people come to the flatiron school. Our students see programming as a lifelong craft that they want to continue to improve, not as a means to an end. They’d rather be developers at boring companies than do anything else at sexy startups.

3. Focus - We Don’t have fancy offices and millions of dollars in venture capital. We’re also not opening locations all around the country or the world and don’t offer tons of classes. This is definitely detrimental if you’re interested in things like UX Design or Marketing while you’re in our program. We also don’t have strong employer networks outside of New York (though our students who looked for development jobs in SF, DC, etc… all got jobs). The advantage to this though, is that we have a maniacal focus on creating the absolute best developers in NYC. No other locations. No pressure from VC’s to scale. Just great people building great things together.

4. Learning Philosophy - All of these programs will teach you how to code (I hope so, at least). We think that’s the bare minimum though - the lowest common denominator. There’s so much more to being a developer than knowing how to define a method. 

First, there’s a rich history and culture to this craft. We spend some time every morning learning about how these technologies were invented and who these great programmers are, so we can connect to the craft in a more meaningful way. 

Second, all of our students maintain active technical blogs (google around - you’ll find a bunch), and present at technical meetups. This helps our students get deeply embedded into the developer community in NY (it works - they’ve won hackathons, volunteered at places like CoderDojo, and one alum is even speaking at GORUCO, the premier Ruby conference in NYC) More importantly though, we believe that the best thing we can teach our students is “how to learn.” As a developer, you’ll spend the rest of your life learning new things, and we want to help you get great at that, whether by forcing you to distill your thoughts by blogging and presenting, or by getting used to being outside your comfort zone by taking dance classes and learning to make balloon animals (yup, we’ve brought in teachers for things like that). Whether you’ve been programming for 12 weeks or 12 years, you won’t know everything. But if you continually push yourself to learn new things, you will master this craft. We want to teach you how to do that.

5. Teaching Philosophy - When I first started teaching I got inspired but his quote by Antoine de Saint-Exuprey (the guy who wrote The Little Prince).

“If you want to build a ship, don’t drum up the men to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.”
The only way to truly connect with a craft is to fall in love with it. That’s how most developers who are self-taught were able to endure endless nights alone, coding in their parents’ basements. They fell in love with it. This is the guiding force behind everything we do, from teaching the history of code, to bringing in guest speakers, to building real-world applications. If we can get you to fall in love with this craft, the way I and the other teachers here have, you’ll never give up. You’ll continue to push the boundaries of your own knowledge and continue to get better. (I know this sounds kinda touchy-feely, but I get that way sometimes- just ask some alumni :)


If you have any questions, feel free to reach out to me any time atavi@flatironschool.com . 

Wherever you end up, enjoy the ride. Your life is about to change in a big way :0

Avi

Dearest Mama,

I must tell you what my opinion of my own mind and powers is exactly—the result of a most accurate study of myself with a view to my future plans during many months. I believe myself to possess a most singular combination of qualities exactly fitted to make me preeminently a discoverer of the hidden realities of nature.

[…]

Firstly: owing to some peculiarity in my nervous system, I have perceptions of some things, which no one else has—or at least very few, if any. This faculty may be designated in me as a singular tact, or some might say an intuitive perception of hidden things—that is of things hidden from eyes, ears, and the ordinary senses…This alone would advantage me little, in the discovery line, but there is, secondly, my immense reasoning faculties. Thirdly: my concentrative faculty, by which I mean the power not only of throwing my whole energy and existence into whatever I choose, but also bringing to bear on any one subject or idea a vast apparatus from all sorts of apparently irrelevant and extraneous sources. I can throw rays from every quarter of the universe into one vast focus.

Now these three powers (I cannot resist the wickedness of calling them my discovering or scientific trinity) are a vast apparatus put into my power by Providence; and it rests with me by a proper course during the next twenty years to make the engine what I please. But haste, or a restless ambition, would quite ruin the whole.

Reconstructionist Ada Lovelace, the world’s first computer programmer, is very, very confident in her intellectual abilities in this 1841 letter to her mother. She was twenty-six at the time. (via explore-blog)

I believe today we would refer to this as “swagger”. 

(via jtotheizzoe)

(Source: , via jtotheizzoe)

.@jongrover is dropping some serious front-end knowledge at @flatironschool this week. <3 Javascript.

.@jongrover is dropping some serious front-end knowledge at @flatironschool this week. <3 Javascript.

Programmer Of The Day: Grace Hopper

Today’s programmer of the day is Grace Hopper, computer scientist and United States Navy officer. She created the first compiler for a programming language, as well as one of the first modern programming languages COBOL. She served in WWII, and even popularized the term “debugging” when her team was removing an actual moth from a computer. Thanks “Amazing Grace!”

http://en.wikipedia.org/wiki/Grace_Hopper

image

Programer of the day: Matz!

Today’s programmer of the day is Yukihiro Matsumoto aka Matz! <3

Matz is the creator and chief designer of the Ruby programming language and it’s reference implementation MRI (Matz Ruby Interpreter).

Matz says he created Ruby to make programmers happy, and designed it to be expressive. He is a famously nice guy, so much so that the Ruby community has adopted the saying MINSWAN, or: Matz Is Nice So We Are Nice.

Here is a great keynote Matz gave in 2008 about Ruby and why he created it. 

http://rubyconf2008.confreaks.com/matzs-keynote.html

Adding Indices in Rails for Efficiency

The following is a guest post by Li Ouyang and originally appeared on her blog. Li is currently a student a The Flatiron School. You can learn more about her here, or follow her on twitter here.

Who doesn’t like to be fast? Especially for associations, adding an index will greatly improve your database queries. Think of your typical join table, ours is called mixtape_songs, which is filled with two foreign keys, joining a many-to-many relationship between a mixtape and a song. Adding an index to one or both of the foreign keys is similar to an index in a recipe book. If you wanted to look up all the chicken recipes, you would flip to the back, and find the pages that pertain to chicken. It would take you forever to start at page 1, searching for chicken recipes. 

To speed things up, create a migration, add an index to your join table.

In your migration file, make sure the line looks like this:

Before the index, this query ran in 2.6ms.

After the added index, it ran in 1.6ms, shaving off more than 1/3 of the run time!

What Is a N + 1 Selects Statement?

The following is a guest post by Li Ouyang and originally appeared on her blog. Li is currently a student a The Flatiron School. You can learn more about her here, or follow her on twitter here.

No one wants their applications getting all chubby and slow. 

From several different people, it’s been made clear to me that how you query your database will greatly affect the speed of your application. A particular problem that I learned about is the n + 1 selects statement. Don’t get confused with Big O notation because it’s entirely different. This is more specific to how SQL queries data.

Specifically in join statements, you may find yourself falling into the trap of writing n + 1 selects statement, when it can simply be just one select statement. In my application, a yoga_class object belongs to a yoga_teacher. In order to try to find yoga classes that are taught by teachers which have a certain attribute, I first did this: 

image

My terminal spit out a long line of select statements, which I’ve omitted most of. It makes the first select statement, which corresponds to our ruby YogaClass.all. Then the long list of other select statements is iterating over all the teachers of the yoga classes. This is our classic n + 1 selects statement. The 1 represents your first query, which returns a subset (in my case the whole table). The n represents a select statement for each row in the subset.

Not very efficent. How do we get around this? ActiveRecord provides finder methods called joins that act like JOIN clauses in SQL.

image

Here we only have one select statement, making everything, cleaner, faster, and easier for our database.