Where is the best place for you to get the skills you need to get a high-tech job, to advance your career, or to just satisfy your desire to improve?

You’re not going to find a specific answer in this episode to the question of what’s best for you.

The reason is that we’re all different and have different needs, desires, and starting points. We also learn differently. There is no single best place for everybody to get coding skills. What I’ll explain in this episode is how I think about this topic and hopefully give you some things to think about as you make your own decisions.

I recently read an article about Dev BootCamp announcing that they will be accepting their last cohort and closing business at the end of this year. The term cohort is a common way to describe a group of students that all start an intensive training program at the same time. The news about Dev BootCamp shutting down got me to thinking about this industry and seemed like a good topic this week.

There’s several variations of bootcamps teaching slightly different technologies but from what I’ve seen, they all have the following four things in common:

  1. Bootcamps usually focus on web technologies and call this full-stack development. What this means is that students learn about everything needed to build an interactive website. There’s HTML and CSS for displaying and formatting the web pages. There’s JavaScript to add actions and behavior to the web pages. There’s languages like Ruby or PHP that run on the servers and that prepare the web pages to be sent to the website visitors. And there’s databases to store information on the server. All of these technologies build on one another and the idea is that by learning all of them, you can become a full-stack developer.
  2. Bootcamps usually enroll several students as a group for an intense, multi-week program. The days are long and leave no time for anything else. You need to be committed because students are expected to keep up with the fast pace. The programs will mix lectures with hands-on work.
  3. Bootcamps usually have students work on projects that can be demonstrated at the end to show everything that was learned.
  4. Bootcamps usually charge about a thousand dollars per week. Some want this money paid in advance and charge even more if you need to split it into multiple payments. Some offer financial aid. Some offer partial refunds if you can’t find a job. And some don’t charge anything until you get a job.

Personally, I’m not a big fan of bootcamps for most situations. I think the structure makes it hard for students to afford them. You would have to leave your current job for 2 months or more. For most people, this means quitting their current job. And at the same time, either pay or commit to paying anywhere from 8 to 16 thousand dollars. This is, however, a lot less than you might pay for a Bachelor’s degree. So it seems like a good deal. I mean, you’d probably have to quit your job in order to attend college full time too. And the option to skip college, pay a fraction of the cost, and finish in a couple months instead of a few years, is very compelling.

The reason I’m not a big fan is because of that time. It takes time to learn something well. Our brains need time to grow into our skills. Without that time, most people will quickly forget everything they learned. It would be different if bootcamp students were already programmers familiar with some of the technology and just wanted an intensive program to learn a few pieces and how to apply this new skills in the larger web development picture. But to take a person who knows nothing about programming and expect them to learn an entire stack of technologies in such a short amount of time is where I think bootcamps are going wrong.

When I went to college, I studied electrical engineering and thought that I was already on a fast track because my college finished in 3 years instead of 4. And on top of that, I’d been learning everything I could about electronics for many years before even starting college.

If you try to take shortcuts on the time needed to learn something, it’s like cramming for an exam. You might do well enough to get a good grade on a test the next day but what grade would you get on that same test if you took it again in 6 months? Or even just 2 weeks later?

Alright, that’s enough talking bad about bootcamps. They’re not all bad and sometimes might actually make sense for you. Let me try to explain when I think they can be a good choice.

The best scenario I can think of for a bootcamp is when you already have a job or some kind of sponsor who’s willing to invest in your future and help you put what you learned in the bootcamp into use right away. Companies do this all the time by spending thousands of dollars to train employees. Why not spend that money on bootcamps? Some companies put new engineers through 3 to 6 month intensive training programs. I’m sure this is similar to a bootcamp. And it works because the engineers flow straight from the training into their regular job that continues to use the same technologies that they just learned. But another reason it works is because the companies hire people who already know how to program. The amount of new and unfamiliar concepts is reduced because the newly hired engineers are really only learning things that are specific to the company. And maybe one or two other skills that they may be lacking. They’re not trying to learn everything. And they’re immediately placed into an environment where they’re accepted and allowed to continue learning. I’ve only ever heard of one company that would hire people unfamiliar with programming and they still looked for people who showed skills in logical thinking and put them through a full 6 months of training.

Another scenario I think works well is intensive workshops. But these are not really bootcamps because they tend to be very focused on a smaller set of skills. They’re also shorter at about a week so they can be taken with just a week off of work. You don’t need to quit your job to attend a seminar for a few days no matter how intense it is.

I started Take Up Code a few years ago with a different manner of teaching. And I’ve tried a few different formats over the years to see what worked. My goal was to fix some of the problems with bootcamps. Mainly the upfront cost and the time. But I also wanted to get away from just web development and offer something that would allow you to learn all the same technical skills that you’ll find in a traditional computer science curriculum.

My first attempt was not called Take Up Code. I was conducting a two hour live class every other week that I recorded and then made the video screen cast available for later viewing. I had about six students during this time and they learned a lot and were asking very good questions. The cost was $40 per month. But I found that I was spending too much time editing the videos and not enough time preparing new content. I started to get behind after about nine months and had to stop and come up with a different solution.

That’s when I started Take Up Code with live weekend classes that lasted for six hours on Saturdays and four hours on Sundays. The cost was $80 for the entire weekend. This wasn’t so bad actually and I had several students who learned how to program during these weekends. Ten hours of training was enough to complete simple games in a single weekend so the students got to learn how to start from scratch and end up with a working game in just a weekend. These were text-based games so there was nothing flashy or exciting about them when compared to a modern blockbuster game. But for the students who had never programmed anything before, they were amazing.

There were several problems with this approach. The biggest was accommodating students of different skill levels. I felt like an old-time school teacher with all the grades from 1st through 12th in a single room schoolhouse. I tried to manage it but I’m sure that some students were bored while others were lost.

So I started dividing the classes into beginner, intermediate, and advanced with the beginner classes costing $20. This worked well and the number of students started to increase but not enough to support opening a full time physical office space. I remember one student who attended regularly. He started with no knowledge of computers at all. He knew how to turn on his laptop and browse web sites. He told me that he was flipping through a C++ book one day at a book store and thinking, “Okay, I know that, that chapter is review, that chapter is also review,” when he stopped and realized how much he had actually learned. So much that he could flip through a book and already know and understand the contents.

I had fewer advanced students in this model and it wasn’t going to work if all I could find were beginning students. Thinking about it, I started to realize that the advanced classes were too vague. It wasn’t clear what somebody would learn even though I had a lot to offer.

It was sometime during this when I started podcasting and at first used the podcast as a way to promote the live classes. It worked and I did get students attending the live classes. But I noticed that the podcast episodes were getting many thousands of listens. I try to keep each podcast episode focused on a specific topic so you can choose what to listen to.

With the move to New York, that’s when I decided to stop the beginner, intermediate, and advanced live classes and rethink the method again. And I’ve been creating a series of specialized classes that are more topic oriented just like the podcast. The number of classes will grow over time. The idea is that you should be able to choose just the live classes that you want to learn more about and you’ll know what to expect. Even the beginner classes will be structured like this. You can browse available classes and register for them by visiting takeupcode.com and clicking on the Classes menu at the top of the page. I’ll be adding more classes periodically. Please contact me through the website if you’d like to request a specific class.

I could instead take the path that bootcamps follow by admitting students in batches or cohorts. That would allow everybody to advance from a beginner level to advanced all at the same time. But the reason I resist this approach comes back to how each student is different. When I was learning about electronics in high school, my class was self paced. The instructor set a minimum rate of progress but let anybody proceed as fast as they wanted. I like that. But what I offer with the live Take Up Code classes is not a certificate or degree or anything like that. Just the skills. So even a minimum rate won’t work. Ideally, you should be able to scan through the list of available classes, pick the ones you want to attend, and pay a reasonable amount for just those classes with no strings attached. Hopefully you’ll come back for more. But maybe that’s all you really need or want. When I walk into a shop to buy a pizza, I really just want that one pizza. I don’t want a contract or a commitment to buy more pizzas. And I definitely don’t want to have to pay for a hundred pizzas all at once upfront.

So while I think there’s a place for development bootcamps, I’m not a big fan of them and want to offer you a different option. One where you can learn at your own pace from your own starting point. One where you don’t need financial aid or consumer protection laws. If you don’t like a class, then let the know and I’ll refund your fee and make it right. And an option where you can learn from anywhere instead of having to travel to a large city. You just need an internet connection for your computer to join. Some workshops might require travel but those should not be the normal case. And one final option is to grow with you. Sure, you can learn web development, but you should be able to learn more than this over a longer period of time so that you can really absorb the material.