Since publishing this post in October, 2014 I’ve taught or guest lectured at several of Chicago’s developer training programs including Dev Bootcamp, General Assembly, Fullstack Academy, and (now defunct) Startup Institute. While each of these programs is different, this advice generally still applies to anyone interested in joining one of them as a student.
As with any educational investment, do your homework first. Talk to grads, teachers, and employers before you make the plunge.
You’ve probably noticed the rise in short-term developer training programs often called “bootcamps.” Dev Bootcamp, General Assembly, Mobile Makers, and Fullstack Academy are just a few of the programs currently operating in Chicago with the goal of training the next generation of entry level software engineers and developers.
If you have a more traditional computer science background you may be skeptical, but these programs aren’t trying to teach all of computer science in a few weeks. Their training programs are more analogous to trade schools, and often they take applicants from non-traditional backgrounds who are looking to make a career transition. The goal of each program varies, but generally they are trying to teach students enough applied knowledge to build a website or mobile app in 6 to 12 weeks.
Why have these programs taken off lately?
The quick pitch for most dev bootcamps is that there are tons of jobs for web developers out there, and in just a few weeks this program will help you learn the ropes to get hired as a Junior Developer. In addition, there are a few other reasons people get hooked:
1. Software startups are “sexy”
The stories of Facebook and Twitter’s rocketship style success aren’t going away anytime soon, and they continue to inspire naive youngsters to chase the dream of founding or joining the next massively successful startup. Having been in a couple of failed startups already, I can tell you that it’s rarely this sexy, but the perception that they are keeps bringing in gobs of new interest.
2. There is a serious lack of technical talent
The truth is that there is not a lack of talent when it comes to entry level developers, but the need for experienced software engineers is fueling a flood of interest in the profession. It doesn’t hurt that software engineers are often cited in jobs charts (like this one) that show them making six-figure incomes, although it should be noted that most early-stage startups aren’t a good choice if salary is your deciding metric.
3. Millennials without useful degrees or experience are desperate
Ah, my generation is growing up, but they’re still looking for get-successful-quick schemes.
I can’t tell you how many times a friend of mine who studied English or Anthropology or Philosophy in undergrad has told me how jealous they are of my engineering degree and my job which although technical still gives me great freedom to flex my creative muscles. I’m not going to say that all of them didn’t work hard in college, but many of the ones who are still living at home chose their majors based on the amount of work they wouldn’t have to do in class. When an offer for a successful career in software development in just 8 weeks comes across their path, you can see why they might be tempted.
4. Frameworks offer deceptively “easy” solutions
Finally, I have to put some of the blame on the pitch for frameworks like Ruby on Rails. I’m all for using frameworks to help get a project kicked off quickly, but without a base level of knowledge in the language or any idea what object oriented programming means, people hacking on Rails are just dangerous.
There’s a false security in setting up your first Rails app that makes you feel like you know a lot more than you really do. No matter why they’ve gotten popular, these “bootcamp” programs seem to be here to stay. I don’t think they’re all bad, and I do think they’re actually a more practical solution than trying to go back to college for many people. But, some of them have been misadvertised. Whether you’re thinking about joining one of these bootcamps or thinking about hiring someone who’s recently graduated from one, you should keep your expectations in line with reality.
So what are short term developer training programs good for?
1. Introducing students to the web development industry
For students with a prior career in corporate America, getting exposed to the goods and bads of working as a software developer is a very good thing. The media does its part to glorify venture-funded software startups way too much, so actually meeting people who work for them, hearing from developers, and learning more about the industry as a whole will hopefully show them a bit of the less glamorous side before they commit full-steam.
2. Networking with employers and professional contacts
The startup community in most cities in America is pretty close-knit, so once you get in it’s not hard to network your way around it. Getting your foot in the door in the first place may be a bit tougher, so networking with people should really be the focus of these programs. The amount you can learn about software development in 8 weeks is pretty small, but the number of new people you can meet is significant.
3. A very minimal introduction to applied web application development
A few of the students I’ve seen coming out of these bootcamp programs are ready to take on roles as junior-level developers, but usually they had some experience with programming or engineering before the class began. Most are ready for apprenticeship programs where they’ll actually get to work with a mentor and slowly work their way into a full-time gig, and some are not much better off than people who hacked their way through Codecademy. Either way, no sane person should think that in 3 to 6 months anyone could train a proficient software developer.
What are these programs not doing?
While networking opportunities, and a base level of competency can certainly be established in a few weeks, there are serious limitations to these short term training programs. Here’s what I have not seen all of these programs doing:
1. Teaching students computer science
When you’re trying to churn out students who can launch a working Rails app in just a few weeks, it’s impossible to take the time to teach them much of the theory or architecture required to be a high quality software engineer. While you can certainly argue that not every code monkey needs to know how a microprocessor works, there’s a middle-ground somewhere that every software engineer should know.
2. Being completely transparent with how long it takes to actually become a good web developer
I asked one of the students in one of these fast track development programs what he hoped to do after the program. “Well, I want to spend a few months mastering web development and then join a startup as a CTO or something,” he told me quickly. I laughed.
While some of the students I’ve met realize that “mastering” software is a life-long process, the students who are drawn to these bootcamp methods of learning are inherently more likely to be under the impression that in a few weeks they will actually know something significant. This assumption needs to be pruned early.
I think some of these programs do a good job keeping their students’ expectations in check and offering them a quality curriculum along with opportunities to network and meet mentors, but I want to be clear in stating that each of these bootcamp-type programs will be different. You should do your research before investing a lot of money in one. If you have your own thoughts, feel free to leave them for me on Twitter.
Photo by Cristiano Betta on flickr.com