An Insider's Guide to Coding Bootcamps
Coding Bootcamps, aka, “developer bootcamps”, “programming bootcamps”, “coding schools”, have exploded onto the professional and entrepreneurial scene in the last 3 years. As a student in Dev Bootcamp’s 2nd ever cohort in June of 2012, I hopped on this train as it left the station. With one swipe of my credit card ($12k, yikes!) I joined an at the time unknown community of dreamers who thought they could change the course of education and engineering culture. Lucky for me, expectations, across the board, were absolutely blown out of the water.
After attending Dev Bootcamp, I have been coding professionally since September of 2012. This post reflects my outlook on how to navigate coding bootcamps.
Since my cohort at Dev Bootcamp, I have worked directly for CloudCityDevelopment.com, Threadflip.com, co-built and launched Crowdsound.io, built and launched Rubyonrailstutor.com, co-built and launched CodeUnion.io (with Jesse Farmer, a Dev Bootcamp co-founder), created a 350+ person ruby programming meetup group and helped tons of people along the way. I am friends with people who run Hack Reactor, App Academy, Makers Academy and Dev Bootcamp. I have a huge personal and professional network that orbits bay area startups. At CodeUnion.io, Jesse Farmer and I are recreating the coding bootcamp experience to better serve people attempting to become developers.
If I don’t qualify as an ‘insider’ when it comes to coding bootcamps, then there is no such thing as one.
Questions People Frequently Ask Me.
Will I be able to get hired as an engineer after a coding bootcamp?
This is really a two part question. First: “Is it really possible to do a coding bootcamp and get hired as an engineer?” Second: “Can I do this?”
Without question, there is evidence that people all across America and Europe are participating in coding bootcamps and getting hired as engineers. The demand for software developers has skyrocketed in recent years and as far as I can tell, the imbalance between supply and demand isn’t about to correct itself. I estimate at least a 2-5 year window of continued insane demand for quality engineers. Given that the time horizon for doing a coding bootcamp and getting hired is much shorter than the time it will take to correct the balance between supply and demand, there is no point in worrying about the imbalance.
Go forth and try to get hired as an engineer.
If you are really focused on the nature of understanding supply vs demand for engineers, consider a proxy. I would say a good proxy for indication of demand is technical referral fees or in house organizational commission paid for engineer referrals. If, at some point, the average amount a company is willing to pay a recruiter for a good engineer drops, that is an indication that companies are no longer struggling to hire. That amount is currently in the range of $5-25k. (I don’t have hard data but my exposure to the San Francisco hiring scene indicates that referrals fees are high and growing.)
The most relevant question to getting hired as an engineer after a coding bootcamp is this: can you achieve the same technical capabilities other people have achieved, and is the market still hiring for those skills? As far as I can tell, being a solid programmer isn’t rocket science, assuming you have a consistent learning experience where top-quality instructors help you progress effectively by giving you actionable and relevant feedback on your code and performance. There is no reason an everyday person who is motivated can’t become an engineer. There are, however, some other, more important questions embedded in the process of attending a coding bootcamp. Questions relating to personal learning style, professional outlook, and the job market probably have more influence on a person’s employability than the coding bootcamp itself. I will delve into the nuances of these questions throughout this guide.
What coding bootcamp should I go to?
Consider making this choice less in terms of ‘What is the best coding bootcamp?’ and more in terms of ‘Which coding bootcamp provides the strongest evidence of being able to help me accomplish my goals?’
Please realize that the vast majority of people who ask me about coding bootcamps have a view of their goals that mostly reflects the situation they want to leave – something along the lines of “I’m in finance and I hate it,” or “I got laid off and I need to work,” or “I studied English in college and can’t get a job,” et cetera. Without some indication of where a person wants to go – i.e., a clear goal regarding where they want to go AFTER a coding bootcamp – asking “Which coding bootcamp should I go to?” is akin to being at a Spaceship Dealership and asking “What Spaceship should I buy?” One could imagine the sales person responding something like, “Well, what galaxy to do you want to end up in? How do you want to move through space? What specific criteria does your space suit require? How many people will be flying with you?”
In relation to my own situation before Dev Bootcamp, I wanted to be in a controlling position with regards to being able to build my ideas into products. The first product I made was a public speaking feedback app that has since been relegated to the dust bin of time. After Dev Bootcamp, I did end up making crowdsound.io, and it is better than anything I could have dreamed of being able to make. It’s now being run by a friend of mine.
The point I want to communicate to you is that having a clearly defined forward-looking destination that you really care about makes the process of selecting a coding bootcamp much cleaner. In my case, I wanted to be able to build web apps and I wanted to be able to get paid to build prototypes, two things that Dev Bootcamp clearly had a path for me to do.
After establishing clear goals about the direction you want a coding bootcamp to take you, start thinking about the questions you need to be asking at each and every juncture of the process.
- What is the quality of the instructors?
- How would you measure the quality of the instructors?
- Is quality ‘How many years an instructor has been coding’?
- Is quality ‘How good is the instructor at giving a student clear feedback on code’?
- Is quality ‘How many people who I can talk to say that these instructors had a big impact on their learning’?
- How many people have gone through the coding bootcamp?
- Of those people, how many got what they wanted?
- How many people gained employment?
- What does ‘gain employment’ even mean?
- Paid once for a week to work on a widget?
- Hired for a few months as an apprentice, then let go or then hired full time?
- Hired at a location that is grinding people up and not teaching them?
- Hired at a place that is supporting and nurturing education and professional skills?
- How long on average does it take to find steady work?
- What direct relationships with startups, businesses or consultancies does the coding bootcamp have?
- What city is the coding bootcamp in? The correlation between job placement and geographic location is high (in my rough estimate).
- Are the financial terms of payment equitable for students?
- Do you pay for the coding bootcamp in full up front? What if students aren’t happy with the product? What recourse exists?
- What learning format does the coding bootcamp lean towards? Lecture, independent work, small group work, pair programming, TDD pair programming?
Another point that I really want to be clear about, if you ask a coding bootcamp for employment statistics and they provide you information that represents the entirety of all people who have been through their program, make them back those statement up with paperwork and data. Also, realize that any kind of time series manipulation that favors employment statistics from a period that was particularly favorable must be contrasted with any other time series where the situation was not favorable. If the market changes significantly – if 2 years ago 80% of students were employed and last year 20% of students were employed – an average employment rate of 50% does not give you accurate picture of the current situation. Make sure to get as much clarity around statements of employment and results as is humanly possible. You are probably not going to do multiple coding bootcamps. Make sure to get it right, and make sure to be thorough, exhaustive and detailed in your approach to the decision. You are buying a product. If you see something you don’t like, dig deeper, ask more questions, gather more data. Any coding bootcamp that doesn’t have good data or at least isn’t clear about the kind of data and information they are giving you, well, would you buy any other kind of product from an organization like this?
To close this answer, I don’t have direct exposure to graduates from that many schools and my opinions are not fleshed out with data AND may be subject to bad judgment AND personal bias. That being said, I write this post based on my experiences to date with the sole purpose to inform your decision making process.
Is Dev Bootcamp the best coding bootcamp?
Please read the answer to the “What coding bootcamp should I go to?” again. A coding bootcamp can only be “the best” in relation to the nature of the outcomes you want. That being said, Dev Bootcamp clearly knows what they are doing and how to do it. I would tell people to think about the fact that the Dev Bootcamp that paved the way to the quasi-acceptance of coding bootcamps is not entirely the same Dev Bootcamp that you see today. A lot of the initial leadership has changed, the format of classes has changed, the outcomes of students involved have changed… Notice, change is in the air right? Personally, I would not be asking “Is Dev Bootcamp the best?” I would frame my questions around, “Is [fill-in-the-blank coding bootcamp name] going to get me where I want to go?”
Will I be ready to interview when I finish a coding bootcamp?
My answer to this question should feel slippery, cause ultimately, it depends…
It depends on a lot of things like…
- Were you able to gain proficiency with all the topics of a coding bootcamp?
- Were the topics of the coding bootcamp diverse enough to make you competitive?
- What are the expectations of companies you are interviewing with?
I have heard students say they want to go work at Google, which to me, doesn’t seem to be a good fit for a coding bootcamp graduate. Google likes to hire engineers with very deep, university trained computer science mentalities, that isn’t what coding bootcamps tend to produce. Developer bootcamps produce apprentice to senior-apprentice level people who, under the correct tutelage, make great additions to balanced teams at small- to medium-sized, rapidly growing, stable software companies that have the time and interest to train people internally. Quirky, well funded startups who value tenacious work ethic and creative problem solving are also a good fit but super early stage startups, without a stable product or revenue stream are probably not a good idea either. My point here is that matching the interview process and culture of the target organization is really, really important. Not all companies have moved towards hiring coding bootcamp grads and having reasonable expectations about where you could get hired is critical. For the record, I don’t know of any coding bootcamp grads who have gotten hired in an application development facing role at Google, but if you know them, I’d love to meet them so please introduce me. :)
Some people I’ve had conversations with indicate there is a growing backlash in some areas against coding bootcamps. I had a conversation with a person at a hackathon a few weeks ago (I think at HackBright, Hack for Good) and that person told me that in Seattle, the sentiment is that if you go to a coding bootcamp, companies will not talk to you. I think this situation may be beginning to surface because the quality of graduates from coding bootcamps varies so highly that some companies have been humiliated after hiring grads who were clearly not ready.
I am also generally of the opinion that the market for engineers in 2012, when Dev Bootcamp brought massive attention to this experience, had very interesting, subtle details that people continue to ignore. Consider that before Dev Bootcamp made headlines, many bay area companies were super strapped for engineering talent and were completely comfortable paying $10-20k commissions for good talent. Also consider that the Bay Area is probably home to some of the most professionally, socially and generally experimental people on the planet. Of course when someone said, “Hey, we are going to teach a bunch of regular people to code in 10 weeks and then turn them loose on startups,” there was a line out the door to see how that process would end up. It’s an interesting topic, and if the experiment succeeds, it solves a genuinely expensive problem for companies.
Fast forward to 2014. Developer bootcamps have sprung up across the nation, but not all coding bootcamps produce at a quality level that matters to anyone looking to hire developers. More importantly, there are now hundreds of candidates competing for very scarce apprentice-level roles. Many engineering centric businesses are in a position where they could mostly hire as many qualified engineers as they want, read QUALIFIED! Hiring apprentices or even junior engineers is mostly a luxury and certainly not a show-stopping priority for the leadership of an organization. Consider what members of the organization think about when they need to accomplish their next business or product goals. The discussion very infrequently is like, “Hey, have we hired enough super green, junior engineers to make sure we are ready to roll out product Y to Fortune 500 customer Z?”
I am generally of the opinion that the bar to getting hired at the apprentice level is going to continually rise and that the relatively ‘easy’ (nothing is easy) success that many coding bootcamps enjoyed on the coattails of the coding bootcamps that rallied in 2012/2013 will not persist. In fact, any coding bootcamp that doesn’t teach some of the more advanced topics in computer science like data structures and algorithms will have a generally hard time placing their grads.
Will I really be able to become a developer?
If you put the time in, listen to your leaders and make wise choices about how to spend your scarce resources (time, money, effort and magic), I most certainly think you can become a well paid developer who is capable of both influencing the world to positive ends, having fun and making good money. I highly recommend the path!
How much of a technical floor did you have when you went to Dev Bootcamp?
More important than my technical floor was my motivation, which I would say dwarfs everything else you could consider about my personality. If a honey badger could give someone an award for the best replication of its nature, I would receive that award. If you were to canvass people who know me and ask them how much energy I bring to the table, the answers would fall on a spectrum from “more than I’ve seen in most people” to “that dude has freakish energy levels, and he is 10 years older than me and he works out every day…” The point is that your initial technical floor doesn’t really matter once you have been swimming out in the ocean of coding for a few months. What keeps you going is your focus, hard work and ability to read, adapt to, and solve an ever-changing landscape of problems.
What kind of job could I expect to get after the fact?
If you go into a coding bootcamp expecting a job, you will be sorely disappointed.
Don’t have any expectations of getting anything other than the opportunity to make change in your life through your own actions. Have expectations about how hard you will work, how relentless you will be and what plans you will put in place to go after your goals.
That being said, the range of positions, depending on your nature is vast. I know people from Dev Bootcamp who went immediately to work at places like the Climate Corporation (which is a very deeply technical work environment), HipMunk, Indiegogo. Some people definitely struggle to find work but getting hired as an apprentice or junior engineer at an organization that is both fun, challenging and creative is not unrealistic. In the Bay Area, even apprenticeships pay well. The answer to this question is so variable that I’m not really gonna focus on it but if you want my specific thoughts on a particular company or strategy to get hired, email me at [email protected].
Don’t expect anything, set goals, relentlessly pursue them.
Be Happy and realize you are in the pole position of your life.
Act like you are in the pole position.
Really Important Questions People Rarely Ask Me
How should I evaluate the learning culture of a coding bootcamp?
Many people’s internal model about education looks something like..
- Sit and consume information either through lectures or books.
- Take tests to demonstrate understanding of said content or information.
Let’s be super clear, the above model doesn’t build functional capability
If/When you start interviewing and or building products, your capabilities are the only things that really make a big difference. After spending 5 years on active duty as a U.S. Navy officer, I both learned and taught people how to do all kinds of random, complex and slightly dangerous things, like driving ships, landing helicopters in the dark with night vision goggles on, and fighting nasty fires that result from chemicals or massive amounts of jet-fuel burning. In many of the situations I dealt with as an officer, a lack of capability could and would most certainly lead to a loss of life if something were to be done in an improper manner. For the record, once I left active military service, I then moved to China and taught myself Mandarin. I have a pretty strong personal track record of being able to pretty much learn anything I focus on. (+1 John)
I want you to be thinking about shifting your mental model of learning away from the traditional educational model to more of a ‘how to deliver capability’ mindset. Everyone learns differently, but by nature of attending a coding bootcamp, some standardization of the learning process must happen. You, the user, the customer, need to figure out your own learning style and make sure that the environment and style of a coding bootcamp reflects something that will work for you.
Consider, my perception of my experience at Dev Bootcamp. I remember Dev Bootcamp as a high pressure environment where through some pair programming and some test drive development, I slowly worked through a body of content that taught me how to program. We also did code problems in the browser, the system was called ‘Socrates’. In addition to Socrates, there were infrequent technical lecture style sessions and lots of opportunities to do things in small groups i.e. 2 or 4 person teams where everyone was pair programming.
I generally felt like I responded well to small-group pair programming, and have since become an advocate for pair programming with the goal of solving complex problems, socializing, and teaching. I think that code creativity and product creativity can be hampered by excessive pairing as some people just need time to themselves to find that special vein of energy. Beyond the pair programming, I didn’t really find the technical lectures at Dev Bootcamp particularly valuable and in general, I do not view lectures as favorable teaching tools for beginners. Lectures work great once a person has a mental landscape of an issue and they want some kind of expert discussion on a precise topic. This is not the world beginners live in.
I would generally say that my experience at Dev Bootcamp mostly felt like being surrounded by an awesome crew of people but when it came time to learn new things, either by personal choice or design, my learning tended to happen on my own. In defense of Dev Bootcamp, I’m a seriously autonomous person and I’m sure they would have liked me to be less ‘on my own about my learning’ but I didn’t really know how to do that.
Bottom line: you, as the person who is in the pole position of your life, need to make sure you understand what environments help you learn complex stuff and how to pick an environment that will provide you with what you need.
How should I be calculating the true cost of a coding bootcamp?
Many people don’t think about opportunity cost, and I think that is kind of foolish. There are lots of reasons why the opportunity costs make this process feel kind of insane. The numbers below are rough and could vary a ton depending on your situation. This is just how it looks for me in San Francisco.
- The tuition cost ~ $12,000
- Lost wages, let’s just say $8k * 4 months ~ $32,000
- Living expenses in a major city like SF, NYC, $4k * 4 months ~ $16,000
- Lost sleep, sanity ~ ???
- Lost time with family, friends ~ ???
- Relationships that implode or fizzle out ~ ???
By a very rough estimate, that comes out to $60,000. Wow, really?
Think about your expenses carefully. For the most part, if you don’t immediately get work in the $85,000/yr range, can you really afford this experience? And… the above doesn’t take into account the emotional, physical, and psychological impacts of this process, both on you and your relationships.
- Is attempting to learn something that universities spread over a 4 year period really a good idea?
If I had more time, which I don’t, I could probably present some facts on the efficacy of the American university system. Since more data isn’t super relevant to my point, I will forgo pseudo-statistics. Instead, consider that a large majority of people who work as professional engineers have some educational background in computer science, from a proper university.
Does it make sense to try and cram 4 years of learning into 9 weeks?
Uhhh… not really. Only if you like a really hairy, wild ride and don’t have any alternatives?
Of course, many people make the argument that you don’t need a computer science degree to make software (which is certainly true). I’ve also heard the anecdote that university grads tend to be better versed on data structures and algorithms and that quality coding bootcamp grads tend to be better at understanding tooling, the process of actually making shippable software and frequently have better developed professional/life skills simply cause they have more professional experience. It’s also important to note that for the most part, coding bootcamps are not attempting to replicate the university learning experience (except maybe ‘The CS degree for the 21st century’ people).
My point here is not that coding bootcamps can’t/don’t/won’t compete with universities. My point is that by foregoing a university degree and then entering into direct competition with people who have university degrees, you actually have a lot of ground to make up as a developer especially once problem topics head into deeper waters. After having been interviewed many times (especially in the Bay Area, where I feel there is oftentimes heavy emphasis placed on the pedigree of a person’s educational background), I’ve observed that people who want to get hired need to be able to compete at a level that makes sense in contrast to other engineers who may have had deeper academic experiences.
This may or may not mean that attempting this process over a 9 week span makes sense. It worked for me, but of course, conditions were different back in 2012 and I’m sort of a random character. Doing something just cause I did it is like following me down a one way street, on a bike, going the wrong way, make sure to know what you are doing before you ‘step off the platform’. :)
How can I develop better relationships with professional engineering organizations before I go to a coding bootcamp?
If I could make you, the reader, do one thing (after all the other thinking I’m asking of you… :)), please realize that relationships make all the difference. When you truly need a helping hand, it can be hard to find the right people. Finding a mentor or getting traction with an organization you know and care about, before you start the coding bootcamp process can pay dividends in the long run.
I’m like the honey badger of networking too, find your inner honey badger.
What factors lead to a truly transformational learning experience?
How many times does someone need to help you accomplish a goal that you didn’t believe you were capable of accomplishing before you begin to visualize yourself and your professional capabilities differently?
Dev Bootcamp made headlines because of how big of a return it gave people. Part of that return transformed people’s professional skills. It is a not a trivial process to take a room full of people and send them through the beginning of a process that 9 weeks later allows them to go to work for some of the most interesting and technically complex businesses in existence.
As you consider a prospective coding bootcamp, look around at the teachers and students in the room. What amazing outcomes have been clearly documented? How amazing do the teachers seem? How frequently do you find yourself looking around and being like “Wow, I am really lucky to get to be a part of this?”
The bottom line, putting a group of people in a room with computers in front of a few senior programmers doesn’t make a coding bootcamp. A transformational experience that shatters expectation and provides near implausible outcomes on a consistent basis is the kind of experience you should be looking for. Don’t be shy about finding it.
How to and why should I maintain physical health and mental sanity as I embark on this process?
I am sure there is good research that supports the notion that people who are physically fit generally enjoy greater productivity, quality of work, creativity, etc.
Since I don’t have time, I won’t go deep into research, cause frankly, if you need heavy scientific data to really care about this question, you are probably missing the point anyways.
In the context of my own life, I swim, do yoga, participate in long distance cycling, eat really really healthy food and generally take as good of care of my body as makes sense. Of course, modern life is a balancing act between activities that damage our bodies and activities that restore them. A good coding bootcamp should be a 14 hour/day experience 6 days a week. That is an intense amount of emotional and physical stress on your body. Having a healthy lifestyle that includes daily physical activity and occasional yoga can really help keep the body feeling good. When the body feels good, creativity flows. As much as we are becoming ‘coders’ in this process, at a lower level, many of us for the first time are becoming creative contributors.
Try to carve out time at least 3 times a week and maybe a longer session on a weekend to workout and take care of your body. I even think that taking a full day a week to step away from your computer and do nothing but have fun will make the rest of the days more agreeable.
Should I focus on getting hired into an apprentice program or as a scrappy junior developer?
The technical hurdle to being hired as an apprentice is probably slightly lower than that of junior developer, but there are fewer structured apprentice roles out there. Above all, your goal is to learn as much as possible throughout the duration of a given coding bootcamp and then hit the pavement, so to speak. Find any organization that excites you and will talk to you. My attitude when I left Dev Bootcamp was that I would take a job sweeping the floor as long as it was the floor of a good engineering organization. I wasn’t shy about communicating that either. Bottom line, aim for the stars and be willing to compromise and take whatever you might be offered. Getting hired is way harder than progressing to a good level once you have been hired.
Even a low-paying, short-term assignment is at least a stepping stone to being able to say that you have worked professionally as an engineer. As subsequent professional engagements appear, you can keep escalating things until you’re shocked to find that people naturally view you as a junior engineer. There is a lot of room for smart junior engineers so this is a good thing.
How can I get better insight into what kind of coding I like to do and what kind of engineer I am?
Hackathons, Hackathons, Hackathons.
Before you go to a coding bootcamp, get your developer tools dialed in and go to a bunch of hackathons. Find some teams with caring, smart senior engineers, tell them your life story, make them fall in love with you, ask them to be on their team so you can learn and get some real world experience. Shop around and get a high-level picture of how different tech stacks work. Try making stuff. Do tutorials. Find tools you love and patterns that make sense and seek out other professionals in those same technical spectra.
When I was at Dev Bootcamp, all I wanted to do was figure out how to build what has now become crowdsound.io. I sort of ignored some deeper patterns in programming, i.e. why/how to solve abstract problems in a rigorous fashion. I leaned more towards simple server-side logic with clean front-end UX. Two years later, I actually find myself leaning more towards very light weight scripts that do considerably more complex stuff. I thought I would be primarily a feature engineer and now, I’m really enjoying the very early stage of a software product that is basically made up of a few ruby classes and a little infrastructure to get things to work on the internet.
The bottom line: find a way to get direct, hands-on exposure to as many different types, styles, and forms of programming as you can. Again, hackathons are your friend.
How can I evaluate the relevance of a coding bootcamp’s chosen technical stack (i.e., ruby, javavscript, rails, ember, node, tdd, etc.)?
A couple things to be thinking about with this question…
- What are your long term goals?
If you want to make iOS apps, you should start somewhere where that is an end state. If you want to build Closure stuff, there aren’t many camps fully dedicated to that (if at all, I don’t know, you do the leg work..). But finding some developers at a coding bootcamp who like closure and will help you get into it is a smart move.
- What is necessary to achieve your technical goals?
I generally think that fundamental programming skills, teamwork and professional skills like project/feature management, interpersonal communication and organizational skills are way more important than the particular tech stack of a coding bootcamp. That being said, the tech stack of the coding bootcamp is going to be your first stack and you may find getting hired by companies that use that stack slightly more likely to happen. At Dev Bootcamp, I def had friends who immediately left the world of ruby and went into python or objective-c and in another case, I know someone who started writing a lot of closure.
My life really benefited from my experiences at Dev Bootcamp. Coding has given me a lot of professional options that I never thought of having. Coding helps me create, it helps me do things that help people. However messed up the world might be, I actually possess the skills to live happily and do something productive. I wrote this post based based primarily on my observations and experiences. I don’t belive to have all the answers and everyone has to find a path that makes sense given their position in the world. My new project CodeUnion should knock your socks off.
I hope my words help you think more clearly about coding bootcamps. - John Davison [email protected]