The internet is full of free resources for learning how to write code, and all of the technical content covered at a typical code school can be learned independently. So why are so many people opting to pay for content that they can easily find for free?
TechCrunch recently published an article by Stephen Nichols titled “Coding Academies are Nonsense.” While I disagree with the thesis (for obvious reasons), the biggest problem with the article is the assumption that code schools are only about learning to code, which anyone can do through self-study. Coding is only part of being a programmer, and code schools provide a lot more.
In an awesome rebuttal to Nichols' article, Katherine Wu points out that there are a lot of other benefits to be had at bootcamp, such as “social pressure to get yourself to do something you wanted to do already, guidance towards a particular curriculum, and faster learning from having concentrated help.”
A beginner programmer is learning to converse in a foreign language without fully knowing the grammar, while solving logic problems. You will run into a lot of walls early on, and experience many frustrating hours simply trying to articulate the part of the problem you don’t understand. Being surrounded by co-learners ensures that you will not stay stuck for too long – hitting the wall with a team behind you means that someone can give you a boost. Also, having constant access to a teacher who can help you identify the next best thing to learn will make your journey more efficient.
Probably none of the software you find most useful in your day to day life was coded by a single developer. Writing code can be done alone, but creating software that people will use requires teamwork. Stanley Idesis posted a great answer to this question on Quora, pointing out that software is not created in a code vacuum:
As a recruiter looking over your resume, I want to see examples of where you worked in tandem with other developers… to create something together. This shows me that you can function as part of a team.
Most people have a hard time leaping from following a beginner tutorial to building software that people want to use, and getting the courage to contribute to open source is daunting even for more experienced programmers – daunting, but not impossible. Code schools are all about collaboration and co-learning through pair programming, and for many students that lowers the barrier to entry.
After few years of self-study, I had produced two clunky Android apps and a half-dozen blog platforms in different languages from following tutorials. You can learn to code by yourself, but you can’t learn to develop software without a purpose.
Code school curriculum includes projects that are invented by students from conception through deployment. I had a hard time coming up with an interesting project that would break new ground and showcase my new technical skills, but I had an awesome mentors at code school (thanks Chuck!). He encouraged me to write a programming language (Check it out on GitHub – Eh?), which was a scary proposition for a beginner. He gave me the resources and support that I needed to make a start, and my project impressed a few hiring managers.
I do agree with Nichols that “learning to translate intent to a non-human foreign language — coding — is pretty daunting, even with handholding instruction… [but it] is a skill that anyone with intelligence and determination can learn.” If it can be made any easier with a little handholding instruction, I will opt for the help any day.