I came across this post today that seems to be making the rounds on the Internet’s great assembly places: Twitter and Hacker News. As someone who graduated from one of the developer bootcamps that the writer talks about, I felt compelled to chime in and offer my two cents. I’m not writing this as an explicit statement in opposition to or in support of bootcamps, but rather hope it will contribute to the necessary and vital discussion about their value to students, companies and society as a whole. And just so there’s no confusion, “Dev Bootcamp” in the title refers to the generic term, not the dev bootcamp actually called Dev Bootcamp (of which I have no specific opinion).
My perspective stems primarily from my time at Flatiron School. I’m convinced that you need to evaluate these programs on a case-by-case basis. Saying that all developer bootcamps are like this or like that is like saying all colleges are alike, and that’s clearly not the case.
Most developer bootcamps that I am aware of are not a scam. As an alumnus of the Flatiron School, I can earnestly say that I would not be where I am today - a professional developer at a storied institution with a great developer culture - without Flatiron. That said, developer bootcamps are not for everyone. They are intellectually challenging, require many hours of work and do not guarantee immediate employment. Anyone doing a developer bootcamp should enroll for the sake of learning the skill set, not to get into the start-up world, not to make a million dollars, not to sound smart and trendy at parties. If you want to do all of those, go into finance for a few years, then jump over to a VC firm (I’m only partially kidding).
Okay, now onto the details.
Are developer bootcamps a scam?
Like colleges, not all developer bootcamps are alike. This is a lightly regulated industry, and my understanding is that few (if any) are currently accredited by an external standards body, and so there is a very real and legitimate concern that some of the bootcamps springing up are less-than-honest about what they offer. Whereas colleges have accreditation bodies to legitimatize the work they are doing (whether that accreditation is meaningful or just a rubber stamp is another debate), programming schools do not, and so the barriers to entry for aspiring dev schools is relatively low.
Do developer bootcamps provide the skills necessary to get a job?
Could I have learned development skills on my own? Probably, but that’s beside the point since people can learn a lot of things on their own if only they have the time. Those who know me know that I’m generally a self-starter, eager to learn and explore. The problem, though, is that those motivations often lead me onto various unfocused, wildly divergent paths such that I can spend time one week really into practicing guitar, then the next week really into learning Photoshop or Illustrator and the week after that reading up on portfolio management. What Flatiron did, and what I imagine other bootcamps do as well for their students, was focus my attention like a laser on learning something well enough so that I could continue learning that skill set for a living. In a sense, it got me over the threshold of a junior developer skill set so that I could be self-sufficient and learn indefinitely into the future now that I have a paycheck that supports my code learning habits. If I hadn’t gone to Flatiron, I could have spent many more hours working on learning code but never quite getting to the level where I would have been employable as a developer.
There is a lot (A LOT) that development bootcamps don’t teach you. Then again, these are the things that nothing - not a 4-year degree, not learning on your own, not pairing with friends - can teach you except for a real-life job as an actual developer. Things like writing Puppet scripts that configure servers in multiple environments, optimizing static asset delivery through a CDN or caching system or learning how to balance a desire to adhere to TDD best practices with the need to simply get a feature semi-working so that another team’s workflow can begin. Flatiron did not teach me these things, but I wouldn’t have learned them regardless without an actual job.
What will I learn at a developer bootcamp?
I believe Ruby’s syntax is intuitively easier to grasp for non-technical people than a language like Objective-C or Java (even as a developer now, I’m still bewildered by the syntax of functional languages like Haskell or Erlang), which makes it a sensible starter language for beginners. The danger in this is becoming too comfortable in the encapsulated little world of Ruby and Rails, despite the fact that most software is not written in Ruby. Case in point: I was listening to an NPR Planet Money podcast the other day that mentioned that the American financial system for transferring money via ACH is still written in COBOL (the podcast is great, by the way, everyone should give it a listen) . COBOL! I wonder how quickly the developer bootcamp “bubble” would deflate if everyone started offering COBOL classes. Realizing that Ruby is just one language in the vast world of software helps provide perspective, but it can also be challenging for new developers comfortable with Ruby syntax to branch out.
What matters most in the face of near-certain change, then, is to be adaptable. For software, this usually means building loosely coupled software components that minimize dependencies and leakage into the global scope, and generally not doing more than what’s required while maximizing space for future changes. For humans, that means being good at learning things. And, ultimately, that’s what these developer bootcamps are for, to produce solid learning fundamentals so that you’re not afraid to continue learning long after the 3-month program is done.
Is attending a developer bootcamp a good idea?
This is impossible to answer with any certainty without knowing a person’s full life circumstances. Can you afford to be without income for the duration of the program plus a few months spent looking for a job? Can you relocate potentially to a new city? Can you get to where you want to be career-wise without going to a dev school? Are you okay spending 60-hour weeks for several months focused on learning a skill set? For me, I believe going to Flatiron was the best choice, for a few reasons.
First, I could afford to live without income for a period of time, mostly because I’m single, my family is healthy, and the biggest recurring expense I have now is a bedroom in the East Village (which, admittedly, isn’t cheap). In developer speak, I had few dependencies that I needed to manage. Second, I had been doing a good deal of Excel work in finance, writing macros, building data models, that sort of thing. I saw a solid Excel skill set as building on the same fundamental problem solving, data structuring and process-oriented skill set that good developers have in spades. Third, Flatiron was in New York, so I didn’t have to relocate, which meant that the rest of my non-work life (i.e., my life) could continue. Finally, Flatiron’s second semester was set to start in early February, which meant I could leave finance on a high note after year-end and jump right into development. I was very fortunate and blessed that the timing worked out well for me, but that’s not always the case. I know of friends that would have loved to have the opportunity to do a developer bootcamp, but they couldn’t for various financial or life reasons.
What I cannot stress enough is that these programs are not for everyone. Not everyone is meant to be a developer, just like not everyone is meant to be a banker, or a painter, or a doctor. Unfortunately, I feel that what makes coding so alluring now is that it seems like a one-way ticket to the glories of the start-up world, where you can add value to society by solving real work problems while also hoping for a solid payday. But that assumption is dangerous. Most developers are not at awesome start-ups with boundless potential. I don’t have actual statistics, but I imagine that the vast majority of developers in New York are working for faceless corporations like banks or advertising agencies and not the hot new start-up. Therefore, the primary motivation of attending a development bootcamp should be to actually learn to code, not as a pathway to start-up heaven.
Its critical to be honest with yourself and think deeply about whether you are interested in these programs for the sake of the skill set or if you really just want to be part of the start-up scene. If its the latter, that’s perfectly fine, but in my opinion there are easier and smarter ways to do the start-up thing without going to a developer bootcamp. A good thought exercise is to imagine that you come out of a bootcamp and you get a job as a developer (hurray!) but at some unsexy company (boo!) like a mid-market regional bank or an information processing firm (not even sure what that is but it doesn’t sound sexy). Would you still be okay with that? Would your love of code and solving problems in and of themselves be sufficient to get you through the day? If so, then coding may be a good path for you since you simply love solving problems, wherever they are and despite the unsexy-ness of those problems. But if not, then your interest in code may stem more from a desire to get into the start-up world than for the inherent problem solving abilities that coding affords. If that’s the case, then maybe product management or business development at a start-up is a more viable option.
If you don’t know if you want to be a developer, then go and find out however you can. Go shadow a developer, or go check out hackathons or meetups and talk with people that build software. Even if you end up not becoming a developer, I imagine that spending the time before you make a decision either way to understand what developers do on a day-to-day basis will be time well spent. For me, I went into a hybrid legal / finance role out of college in large part not just to find out what I wanted to do, but also to discredit possible paths that I was considering (like law school!) yet had no actual understanding of. Discovering with reasonable certainty what you don’t want to do is in some ways just as valuable as discovering what you truly love, assuming, of course, that you learn from your past experiences along the way.
What’s the value in these bootcamp programs?
I told myself that I’d refrain from quoting the post, but here’s one line that I wanted to explicitly refute:
“The bootcamp model gives you an ‘intensive’ course good enough so that you’re able to build a shitty web app, and then they hopefully place you in a job needing a code monkey.”
If this were the case, I would agree that they would be a scam. The point is not to get you a job as a code monkey, since the competitive advantage developers that come out of these programs have is not that they’re code monkeys, but rather that they’re critical problem solvers that happen to have a technical skill set. If I were looking to hire a code monkey, I wouldn’t hire someone out of Flatiron. I imagine that I’d be more likely to go to a large company and find someone who has had more real-world experience as a developer. However, if I’m looking for someone who can diligently thread the needle between developer and product thinker, or someone who can work with the business/product side to refine a feature request before actually prototyping something, then a bootcamp seems like a reasonable recruiting ground.
The goal of these programs (well, of Flatiron, at least. Its a bit disingenuous for me to group all them together) is to build up developers who are problem solvers that are technically inclined, not just technical problem solvers. Sure, this requires programming ability, but it just as much requires soft skills, like empathy for customer problems and a deep desire to understand how people interact with technology products. In fact, I’ve found that in my experience as both a user and builder of large-scale software projects, there is a gap between the people building software and those using it that can be bridged by those with a technical skill set and a user mindset.
As a developer, I’ll often build software as I imagine users will use them, but then when they actually get their hands on the software, they end up using it in ways I had not even contemplated. This isn’t a matter of who’s right or wrong, but that what’s needed is a conversation between both sides so that the actual problem at hand can be addressed. When I worked in finance as my team’s business liaison to the tech team on an enterprise software system, I often saw frustration on both sides that often emerged from a tendency for tech and business to talk past each other. The hope that the people who run Flatiron have for their students is that they can find careers in the chasm between users and builders of software products. For me, Flatiron did a great job in that regard by helping me build the technical skills to actually solve problems.
The desire to be a developer for the rest of your life is not a prerequisite to determining whether it would be a good decision to attend a bootcamp. Personally, I’m not even sure I want to be a developer for the rest of my life. I went into finance thinking I would go to either law school or business school, and I still haven’t entirely ruled out business school (I have ruled out law school). What I do know, though, is that I do want to practice problem solving for the rest of my life, and it just so happens that the best way to solve the problems of this globalized, information-rich world is to have a developer’s skill set. But even if you don’t want to be a developer for life, you should hope to be a developer for a few years after a bootcamp experience in order for the skill set to really sink in. 3 months is not enough to really, truly know a skill like coding, but I believe it is sufficient, if executed properly, to set someone on the path where they can continue to learn code for a living and be a lifelong problem solver.
Okay, I lied. One last quote from the post:
“These bootcamps then train their hopefuls to pass these [technical] tests by drilling them with engineering questions over and over.”
I’m not sure how other programs are structured, but Flatiron definitely did not teach in this way. In fact, it was the opposite. The last week at Flatiron, our instructors gave us the heads up on computer science weed-out questions that we might get in a technical interview (e.g., what are linked lists? compare/contrast a bubble sort versus a merge sort, etc.) as something of an afterthought because they correctly realized that those questions have little to do with actual programming ability, but that in a world of imperfect interview processes, we were likely to get them. Thus, instead of training us to answer those silly technical questions as a way to get the job, Flatiron taught us to know enough to get past those questions so that we can move onto demonstrating our actual programming skills. The instructors didn’t want us to get jobs because we could fake our way past some inane technical questions; in actuality, they wanted us not to be disqualified by those questions so that we could get the job based on actual skill instead.
What should these programs charge?
Sure, I would love it if these programs were free. But I’m also willing to pay for a good education. Talented, honest people eager and able to help train good developers should earn a decent living doing so, since the quality of education I get will likely be better than what I can find online in that its more efficient, more social and generally more enjoyable than learning entirely independently. Whether that break even point is $4,000 or $16,000, or whether the best tuition system for aligning interests is a recruitment fee paid by or a flat fee, is entirely up for debate, but I do think that there is value worth paying for in having a structured program led by talented developer-teachers.
The thing that worries me about these programs is when they try to grow too fast and increase their tuition simply as a way to balance supply and demand. In any economic process, bubbles occur when there is information asymmetry between buyer and seller, and prices spiral upwards as herd behavior leads buyers to perceive value in an asset in excess of its intrinsic worth. I hope the increasing demand for these types of schools instead leads to a refinement of student quality rather than just an increase in price. Meaning that those leading these bootcamps become more critical and aware of what makes a successful developer rather than just seeing dollar signs in each eager-eyed student that shows up at their doorstep.
And as for those marketing pitches that promise an $80K to $90K starting developer job out of the program, they need to stop. Not because they’re not true in that many people do get solid, well-paying jobs out of these programs, but because that’s not the reason people should be attracted to the programs in the first place (Flatiron School does not make such a promise after graduation). Do not go to a developer bootcamp for the promise of riches at the other end. If you want to get rich, there are easier ways to do so than through developer bootcamps. If you’re smart enough to be a developer, you’re probably also smart enough and have enough hustle to get into high finance, where you can make more than you would as a junior developer when bonuses and all that is factored in. But from my experience, being a developer is more rewarding than working in finance, in all the non-monetary facets that are way more important. Facets like job satisfaction, work-life balance and professional culture. Countless studies show that happiness and money lose their correlation after an annual salary of $70,000 - $80,0000, which can buy the basics with some left over for savings in most cities (if it can in NY, then it probably can anywhere). What matters most to happiness after that base salary level is professional fulfillment, and, more importantly, solid relationships and community.
What I fear is that the “start-up cool” factor that seems to float around these bootcamps will lead them to emphasize creative marketing or add “instructors-at-large” to the payroll that give off the air of legitimacy without providing real, underlying value to students. I liken this latter phenomenon (which I sense is starting to happen but I’m not entirely sure) to how top-flight universities might pay a lot of money to snag a well-regarded research professor that, while smart, is not actually a good teacher and doesn’t spend time with students. You shouldn’t have to sell an arm and a leg just to learn how to code, but if you want a guided, structured experience, it makes sense that you would be asked to pay.
At the end of the day, these bootcamps need to be judged individually, and any person interested in attending needs to consider the question in the context of their own personal circumstances. Evaluating the value of developer bootcamps depends mostly on how you take advantage of the opportunity as a student.
…and for the record, I do not besmirch the finance or legal professions. I live with two law students as roommates and have many friends who work in finance. I just think software development is better. :)