You’re asking the wrong question.
The right question to be asking is “what’s the best program for me?”
We believe that all of education should be ROI-based. To us, that means that students should go in knowing the exact cost (financial commitment, time commitment, opportunity cost), and outcome (knowledge, skill, employment, etc…).
So how do you evaluate a programming school? Well, there are two primary things worth considering-
1. Where is the best place for you to learn?
2. What is your goal? LEARNING TO CODE
Some schools have rigid in-person curricula. Some are online. Some are completely self-driven. What’s best for you?
There’s absolutely no objectively right answer to this questions. Think about getting in shape. Some people just need a pair of sneakers and can run outside and do pushups. Some people like to take classes or play team sports. Others prefer personal trainers. Each has its pros and cons, but at the end of the day, success is largely dependent on your own motivation. Figure out which environment brings out the best in you.
How should you evaluate the different immersive, in-person programs? Study
has shown that one of the most important determinants of learning outcomes is the quality of the teacher
. This should be obvious. If you took four years of high school math, you had four math teachers that (hopefully) knew the material. That did not make them great teachers though. Great teachers have the ability to inspire students to connect to a topic. Just because someone knows how to DO something does not mean the person knows how to TEACH that same thing. What does this mean? Evaluate teachers, not brands.
You shouldn’t be asking about the best “bootcamps.” You should be asking about the best teachers. The programming bootcamp industry is, for lack of a better word, bullshit. None of these schools exited two years ago and if there weren’t such a massive skill gap, none of them would exist today. If you were choosing between MIT, NYU and Georgia Tech, you might want to take into account the name on your diploma. In any one of those schools you’d be taking lots of classes, from lots of teachers, but what you’re signing up for here is really one single, intensive experience. In this industry, nobody cares whether you went to one school over the other. All that matters is whether you can do the work. And the best way to learn that is to have a GREAT teacher.
We’re pretty maniacal about teacher-quality at Flatiron School. We’d never have someone lead a course without TA’ing first and most of our instructors actually have backgrounds in teaching AND programming.Avi Flombaum
was teaching for years and had hundreds of students before founding the Flatiron School (google him :) . Ashley Williams, one of our Ruby instructors, was a NYC Teaching Fellow and organizer of the NYC Code for America Brigade. Jonathan Grover
, our front-end TA, had the most popular front-end Skillshare class with 3,000+ students and 100% positive reviews
. Joe Burgess
helped create the iOS class at Carnegie Mellon before launching our iOS course.
We definitely don’t know every teacher out there (though we’ve met our fair share), but there are some great ones.Jeff Casimir
, who founded gSchool (& Hungry Academy within Living Social, the first program focused on training developers that I know of) cares deeply about his students. He's passionate about education and is one of the most engaging speakers we've come across. I met Dave Hoover
of Dev Bootcamp Chicago when he was at Starter League. His passion for education is infectious.
Aaron Hillegass of Big Nerd Ranch has fantastic reputation. I haven’t met him, but we use his books and spoke to many people who’ve taken his course. They didn’t just learn a skill- they came away inspired. Steven Nunez
is also great. He was a former student of Avi’s and has been working as a developer at Cyrus Innovation. He teaches night classes at GA and we’ve had several of his happy alumni enroll in the full-time course at Flatiron.
When you’re evaluating a program, it’s probably a good idea to ask some tough questions-
ACHIEVING YOUR GOALS
- Who will be in charge of my learning? What is his/her teaching experience? Are the instructors on the site actually going to be teaching me? This is especially important for schools with multiple locations. Your high school/college probably had some great teachers and some awful ones. If you’re going all-in somewhere, make sure you’re getting the best resources.
- Whom has that person taught before? Can I speak with some of his/her alumni? Do your research. Sure, alumni referrals are great. Find alumni on your own and reach out.
- How much attention will I get? What’s the student:teacher ratio? Will I be getting personal attention from the instructor or will I be mostly on my own?
You may want to get a job as a developer. Or start a company. Or get involved in the startup world. Or gain a new skill for your own personal development. Or something else completely. The best you can do is understand your own goals and evaluate which program will do the best job of getting you achieve them.
On average, The Flatiron School
has below 8% acceptance rate. With that sample size in mind, here’s what we see as some of the most common goals people have when applying. Become a Developer-
This is not the same thing as learning how to code. Some of the softer things we think about include-
Get a Job
- Learning How to Learn- Part of being a developer means being exceptional at learning new things. We spend a lot of time at Flatiron School “learning how to learn.” This manifests itself in soft skills (lock picking, yoga, knot tying, improv, etc…) as well as hard skills (students are required to learn new technologies well enough to teach them to other people).
- Joining the Community- The developer community is incredible, and a huge reason why this is such a great field. Meeting the people that are pushing the limits of technology, and helping contribute to that, is a huge part of being a developer. It’s why every Flatiron student maintains an active technical blog and presents at a technical Meetup, and why we have such a huge focus on contributing to open-source projects.
- In the same way that learning to play guitar does not mean you can play in a band, learning to code in and of itself does not mean you can be a productive member of an engineering team. Code is a team sport. It requires empathy, communication skills, collaboration, etc… If you want a job, those skills should be prerequisites for any program to which you’re applying. Other than that, ask tough questions.
Start a Company/Get Involved in Startups-
- Dig deep on job placement. Lots of programs advertise really high job placement statistics. Are those recent? How did the last class do? Does that include people who dropped out or were kicked out? Are they counting people who accepted non-developer jobs? What about people with short freelance contracts? Or internships? Or people who couldn’t get jobs and decide to start companies?
- Some schools claim to have “Apprentice” programs. Even online ones. What does that really mean?
- Websites for these programs tend to be heavy on employer logos (especially online ones). Are those companies who’ve actually hired from the school or just ones that have shown up to a jobfair at some point? What was attendance like at the last job fair?
Startups are awesome if you know what you’re getting yourself into. And learning how to code in order to get a job at a startup or start your own is not completely unreasonable. But if you’re learning how to code in order to start or join a startup, The Flatiron School is probably not for you
. NYC has Startup Institute
and General Assembly
. Boston has Intelligent.ly
. Those places are specifically designed to immerse people in the startup world. At Flatiron School, about 40% of our grads work at startups. But that’s not why they came here. People attend The Flatiron School because their goal, first and foremost, is to be a great developer. If the next step on that journey happens to be at a startup, that’s great. Become part of a community -
Every environment has its own culture. Go visit. We host meetups more than once a week (for Ruby
) and typically have students presenting. Other places do an “open house.” Meet current students. Speak with faculty. Reach out to alumni. Visiting is the best way to get a real sense of what people are learning, and what the culture is like. Also if the school is doing things right, the alumni community can be a valuable asset in joining a program. If you’re looking to be part of a multi-city network, join a program that has multiple locations. If you’re more interested in having a very tight local community, look for a program that focuses on that.
There are lots of other reasons to learn, but those are the main ones we come across. Also, this post is turning into a novel. The bottom line is, if you have a great teacher, and make sure the program is suited to help you reach your goals, you can’t go wrong.
Enjoy the journey :)