coding bootcamps

Even though my own narrative’s quickly becoming a cliché of the modern economy–from humanities major to coder via bootcamp over the course of a few months–I’m an evangelist of learning to program, and generally, a believer in the viability of the bootcamp education model. I’ve spoken to quite a lot of friends recently who are interested in bootcamps, and wanted to write down some of my experiences.

Here, I’ll first talk a bit about my own process, then talk about whether you should go to a bootcamp, things you should think about when applying, how the bootcamp experience plays out, and the job hunt process. Feel free to get in touch (email below) if you have any more questions! Always happy to help.

##my own process From an undergraduate humanities degree (the most employable of all the majors, English), I started out in October of 2013 with CodeAcademy and Chris Pines’ Learn to Program, clawed through Fullstack Academy’s immersive web development course in Manhattan from January to April 2014, and spent a four-month stint from April to early August working as a teaching fellow at Fullstack while freelancing for Venture for America (building out a mentorship portal.)

Now, I’m a software engineer at DoSomething.org, a not-for-profit for young people and social change. Using digital-first channels (mobile web, mobile games, and apps), we give young people the inspiration and tools to do good, whatever their cause: poverty and homelessness, racism, environmentalism, emotional support for soldiers. This takes the form of campaigns, or research-backed pre-packaged guides to action within that cause space–actions like collecting used cell phones to support domestic violence prevention programs, walking the dogs of seniors during winter to prevent the risk of falls, or parodying the lyrics of a sexist top-40 song.

Our tech team makes up roughly a third of the 50-person staff, and as the most junior engineer, I’m learning an enormous amount from my manager and the rest of the team. And I’m very happy and grateful to be at DoSomething.org, which is literally writing the book on how to create a high-impact work culture of productivity, passion, and fun.(Another way to think about DoSomething: we’re something close to a pure social enterprise: a digital creative agency for social causes. The majority of our operating revenue (83%) comes from corporate sponsorship of our campaigns.

##should you go to a bootcamp? I’ve blogged before a bit about the benefits I’ve received from learning to program. But should you go to a bootcamp to learn to program, specifically? A few things I’ve found:

1. Step one: confirm that you enjoy programming.

Probably the most important step. Do the prepwork for a bootcamp, figure out if you enjoy solving programming problems, and if you enjoy and stomach the (often frustrating) process of patiently figuring out why something isn’t working.

2. An immersive educational experience is the most time-efficient way to learn how to program, but certainly isn’t the cheapest.

Bootcamps, on average, cost about $12.5k for three months of instruction, or $1k a week. Absurdly expensive, but it’s what the market for software engineers is supporting right now. (In the US, bootcamps enter the market at the rate of several a month. The supply of bootcamp-trained junior devs is getting to be pretty high–the price of bootcamp attendance will fall, I’m guessing.)

Many, many people teach themselves with free or cheap resources how to program with the modern web development stack. Others use services which bridge the gap, content- and price-point-wise, between online tutorials and in-person tutorial, like One Month Rails. It’s possible to learn this way, but much more difficult than attending a bootcamp.

3. The initial knowledge barriers to learning to build software are very high. The main value-add of a bootcamp is to provide a huge amount of in-person expertise to get over these initial barriers.

Learning a programming language is a single simple system. Learning to build web apps (here, using software and web apps pretty interchangeably) involves mastering many, many complex systems–databases, an operating system, version control, HTML & CSS, JavaScript, whatever backend framework you’re learning, deployment, testing. When you’re learning these systems at first, you’re going to get stuck a lot, and produce errors which are inexplicable without more experience. This is where having full-time experienced instructors on hand is the most useful. (A friend of mine compared 3-4 years of learning part-time on one’s own to the experience of going through a full-time bootcamp.)

4. Assess your own return on investment

You’re forgoing three months of income, getting into debt, or spending a significant amount of your savings to go to a bootcamp. (On their site, Dev Bootcamp irresponsibly recommends that students consider using credit card debt to pay for its tuition. Bad idea.) Salaries are high, and there’s extreme demand in the developer job market. For a lot of people I know, this tradeoff made a lot of sense for them, and they were able to recoup their debt or forgone income very quickly after their bootcamp. From my experience, all the students who finished my cohort are now employed full-time as engineers.

But with inaccurate, incomplete, or missing salary and hiring statistics from bootcamps across the board, this ROI calculation is definitely one that shouldn’t be made lightly.

##applying 1. Myth: which bootcamp you attended is relevant to employment prospects

Despite what bootcamp marketing managers are posting on Quora, this is mostly untrue.

While I loved Fullstack, and have an great amount of respect for its product, I’m fairly convinced that the educational experiences from bootcamp to bootcamp are largely fungible–even regardless of technology stack (generally, Ruby on Rails vs. Python/Django vs. JavaScript/Node.js). (Disclosure: after graduating from Fullstack Academy, I worked as a teaching fellow there for a few months.) That is, the educational content of App Academy, Flatiron School, Fullstack Academy, General Assembly, and their ilk are largely the same, with student employment outcomes being almost entirely (>90%) dependent on that student’s own background and effort. I’ve talked with instructors and graduates from a lot of bootcamps, and their findings are the same–employers don’t really care about what bootcamp you’ve gone to.

2. What you should look for in a bootcamp

Maybe bootcamps will succeed in the next few years in their quest to make substantive claims of differentiation. But right now, if you’re interested in bootcamps, you really just have three questions:

  1. Is the bootcamp in a job market I want to enter into? (Don’t go to a bootcamp in Portland if you want a job in New York. Be conscious of network effects.)
  2. Does the bootcamp have instructors with more than a few years of engineering experience? (Some bootcamps have staffed instructor positions with graduates. Steer clear.) Did the graduates you talk with find their instructors to be effective and accountable to students?
  3. Do the bootcamp’s staff or graduates have connections to people you want to work for? (Quite a few SF bootcamps, like Hack Reactor and HackBright Academy, have connections to big tech–Facebook, Google. Fullstack’s two co-founders went through Y Combinator together, and have access to its impressive founder network.)

##my own bootcamp experience 1. Going through a bootcamp is intense, but the students who do the prep-work and are willing to put in the time will succeed.

Controlling for previous computer science or engineering experience–the students who were most successful were those who were motivated enough to spend a lot of time (up to 80-100 hours a week) to thoroughly learn the material. Mental toughness, patience, and grit were rewarded.

2. Bootcamps are fascinatingly emotionally tumultuous places. Take care of yourself! You have a classroom of students who have taken out loans or spent a large chunk of their savings (bootcamps, with tuition pegged to that of private universities, are way too expensive, but that’s for another time) to learn an fairly difficult-to-learn set of skills and entirely change their careers. You begin to evaluate yourself entirely in terms of programming ability, you start to rank yourself among your peers, you’re stricken by imposter syndrome. Financial anxiety + career anxiety + generalized uncertainty = long-bubbling state of crisis. I witnessed a lot of crying.

Take care of yourself! Prioritize mental wellness–exercise, eat well, meditate, sleep enough, be vulnerable with people who care about you.

3. After Fullstack, I was well-prepared to be a professional junior developer.

This isn’t to say that I had already mastered all that I would need to know to do my job well, rather the bootcamp experience gave me right mental infrastructure in place to learn the requisite technologies quickly and thoroughly.

However, this feeling is also certainly a function of the systems in place at DoSomething.org: I have a stellar manager committed to mentorship, the engineering team is large and specialized enough to support a junior engineer, I was hired specifically for a junior engineering role (with relevant expectations on both sides about learning and on-boarding.)

##the job hunt 1. The demand-side of the software engineering job market is bananas. Apply everywhere, even to non-junior positions.

(I would link to any number of crapy exhortative Forbes/BusinessInsider listicles on job market demand, but y’all already know.)

Things, however, are still a little tricky for bootcamp grads. Employers (and especially those advertising entry-level positions) are being inundated with resumes from bootcamp grads. Hireability is a function of a lot of factors–how cool, beautiful, and advanced the stuff you’ve built is, what college you went to, your previous employment history, how personable you are. (First few factors get you an interview, last factor gets you hired. For bootcamp grads with only a few months of programming experience, personality trumps actual coding ability, since employers are primarily concerned about how easy you’ll be to work with.

They’re betting (and in some cases, it’s a risky bet), that you’ll be able to learn quickly on the job. Your mission while interviewing is to de-risk this bet. Watching bootcamp grads who’ve graduated from Fullstack, I’ve seen that an Ivy League grad with a background in white-shoe management consulting will find the job market to be a lot easier than, say, a college dropout who’s worked in retail.

I’ve seen bootcamp grads land jobs before graduating, and others who have struggled for 4-5 months before full employment. My advice:

  1. If you’ve graduated with at least one quality full-stack project, don’t distract yourself by working on more projects. Apply to 100-300 jobs, with cover letters, within the first two weeks. Don’t expect a follow-up from a majority of employers.
  2. Practice both technical and behavioral interview questions, know the code you’ve written in your projects, and interview with everyone who’ll give you an interview.
  3. Be nice to everyone–people you get an offer from, those you turn down offers from, companies you don’t want to work for, places you do want to work. The tech world is a tiny place. I once ran into the CEO of a startup I interviewed with at a 90’s karaoke bar in the East Village. The next week, they moved offices to a table next to mine at a coworking space. Everyone knows every else.
  4. Send hand-written thank you notes. (Call the startup’s coworking space; LinkedIn stalk the CEO; hand-deliver a note; find a physical address.) So few people do this these days, and it wows hipchat-chatting, campfire-using, trello-boarding, instagrammed tech managers. ($18 for a hundred thank-you cards, Amazon Prime’d.)

2. A plurality of employers willing to interview you will be early-stage startups. If you’re looking for learning, mentorship, and job satisfaction, avoid accepting an offer from them.

I interviewed at ~40-50 employers in New York, the majority of whom were early-stage startups. They were usually pre-series-A, with a tech team of 3 engineers or less–or even just a CTO. I started noticing a pattern: the startups eager to hire bootcamp grads generally had a functioning product with a backend built by the CTO. Usually, they were looking for a bootcamp grad to do less-mission-critical frontend prettification stuff while they sought investors.

While you’d certainly get an authentic, trial-by-fire startup experience (with a stress-driven rapid learning curve) at an early-stage startup, I persistently got the feeling that concrete mentorship largely wouldn’t exist. Friends at small startups have told me how they’ve forgone testing or code reviews–both necessary for young engineers to learn well–in order to ship product under tough deadlines. They also generally worked around 60-80 hour weeks, and gotten around 0.25% equity. (If you’re weighing offers, the advice I’ve been given is to heavily discount any sort of equity packages from early-stage startups; to disregard them and only consider salary and tangible benefits in your compensation calculus.) On the other hand, friends who’ve worked at larger companies (> 10 engineers) have usually reported institutional commitments to work-life balance and well-defined on-boarding and mentorship structures.

##the bottom line Talk to as many bootcamp instructors and grads as possible, and ask them questions about curriculum and instructional process. Work hard and be kind. Reach out if you’ve got any questions!

Written on January 2, 2015