I went to Dev Bootcamp in 2014, but when I signed up to drop $12,000 to “learn to code”, I already knew how to code. I had taught myself Python and written Django apps, taught myself Ruby and was writing Rails apps, and I had churned through a good chunk of MIT’s open courseware for their CS program. So, why on Earth would someone who already knew how to code go to a (rather expensive) bootcamp?
Before I answer that, let’s take a step back for a second. I feel like it’s important to give my whole history with computers and programming, both as backstory for this post and also so I don’t have to give the whole spiel the next time someone asks me “how long have you been programming?”.
In 1996, when I was 10, I built my first computer from scratch. At this point my father had already started what was to become a rather successful internet company, and since he taught himself everything he knew, he felt I should do the same. He had already taught me a lot about how computers generally work (I was comfortable with DOS by the time I was 7 or so), so when I wanted a computer, he took me to the wholesaler for parts in Darien, CT and we bought a case, CPU (I think it was a Pentium Pro - top of the line!), memory, motherboard, hard drive, floppy drive, 56k modem, video card, CD drive, power supply and a whole rats nest of cables. Over the next couple of nights I tinkered and explored how things fit together, what does what, and with a great deal of help I eventually got the thing working.
So, naturally the next step in my eventual move into the computer world was to learn to program, which started when I was 12 or 13 with BASIC. My father was teaching me algorithmic thinking - I remember being in awe at the concept that anything can be accomplished with three little words (if, then & else) - and I was learning how to program my TI-83 to store notes without the teachers being able to find them so I could cheat on tests in school.
Then, things with my father soured. We never had a great relationship, but it went downhill pretty quick as I entered high school. He was convinced that I was just going to take over his company and that I was wasting my time with the sports and music that I loved. So, I did what any teenager would do, and I rebelled. I stopped learning and playing with something that I loved because I wanted to piss off my father. In retrospect, it was a terrible decision, but it seemed like the best possible idea at the time.
Of course I didn’t stop using computers all together - that would be just about impossible in the early 2000s - but I stopped learning how to make things with computers and I started focusing on how to use computers to do other things. For example, I ran a Hotline server from my bedroom for 3 years in high school, which paid for my cable modem (which was really expensive in 1999, like $350/month or something like that). And there was still a lot of using technology to do stuff that I probably shouldn’t have been doing (let’s just say I really got inspired by Hackers when I finally saw it).
So I went on to study opera in college and grad school, and while I was always someone who was kind of “good at computers”, I was still avoiding programming. I would gladly pop open the case of my PC to install a larger hard drive, or to upgrade some hardware, but my immature rejection of pursuing something I liked just because I felt like I was being pushed into it remained until 2009 when I had given up opera as a career ambition and entered the professional world.
Lo and behold, there are many things that people with desk jobs do all the time that can be automated, so I started digging into programming little scripts and apps that would make my life easier, and with this, the fire was rekindled. This time it was my choice to learn to program, so I dove in head first. From about 2010 to 2014 I learned a lot on my own, aided by the the proliferation of MOOCs and a whole lot of help from meetups, and started freelancing as a little side job. I have to say, learning in the age of a mature internet was a hell of a lot easier than it was in 1999, and getting freelance work wasn’t all that hard, either. During those years I also took a brief run at creating my own startup, but the idea turned out to be a dud, and (more importantly) I learned that being an entrepreneur really just isn’t for me.
And then, my wife and I decided that we wanted to start trying to have our first child. This turned out to be a great forcing function for me, since I knew that once he was born, taking the risk of changing career paths would be really hard to justify. I had the proverbial “ticking clock” going, so I thought about how I wanted to make the move. When we found out my wife was pregnant, I knew I needed to do something quick, so I looked into bootcamps. It seemed like a reasonable investment, and so I went ahead and did it!
Now, that we have the backstory out of the way, we can get back to our original question - why would someone who already knows how to code go to bootcamp? Well, the first answer is that there are a lot of people out there who are pretty good programmers but who think they don’t know anything. I definitely had a serious case of imposter syndrome going into my bootcamp experience, and I know that it’s something that I (and most programmers) fight frequently. In hindsight, I probably would have been better off in some sort of internship or apprenticeship program like the one run by thoughtbot, apprentice.io, but I didn’t know that at the time.
After being out of bootcamp for a while, I’ve been able to look back at it and see the other things that I gained from it, though. One really unique thing that I was able to learn was how to be a really good mentor and teacher. Since most of the stuff that we were learning was new to the rest of my cohort and not new to me, I was frequently in a postion of teaching things to my peers. I’m really happy I had this experience since I do a lot of this in my daily work now, and I don’t think I’d be nearly as good of a mentor if I didn’t have that practice.
One other reason that I’m really happy that I went to bootcamp, and something I knew I wanted to get out of it going in to the experience, was great experience in coding as part of a team. As a freelancer I really only worked on my own, and there were so many best practices that I didn’t follow which are entirely necessary when you’re part of a team. I didn’t use any VCS software, I never wrote tests, and I didn’t have any clue what ‘agile’ meant in the context of a development team. Because I wasn’t so focused on learning all the coding stuff, I could really focus on these parts of the experience and get a lot of it that way.
Lastly, the goal for most bootcamps is to give their students a passing familiarity with most concepts. The grads can make stuff work, but they don’t usually know why it works. For me, though, I already knew how to make stuff work, so I could focus on the next level of learning, which is a deeper understanding of why things work they way they do. This can even be hard to dig into when you’re at work because you have the conflict of needing to get things done vs. needing time to explore and learn.
So, given how happy I am now, I can’t say going was a mistake. In fact, there are some really important things I learned at DBC. If I knew what I know now I probably wouldn’t have gone and instead pursued some sort of apprenticeship or internship, but I can seee a clear benefit for those who already know what they’re doing in gonig to a bootcamp.