Three month (coding) bootcamps are not enough

Three month coding bootcamps just aren’t enough to learn just frontend, nevermind the whole web stack

DISCLAIMER: I have never been through a code school – I graduated from a 4 year university, had amazing professors, did terrible in some classes while learning a lot (and well in some classes while learning very little). I got an internship early on and got used to writing code for enterprise pretty early, and it eased my transition into the workforce immensely. How am then am I qualified to discuss coding bootcamps? I’m not, this piece is entirely opinion, built from what I’ve witnessed second hand.

tldr; 3 month coding bootcamps aren’t scams, but they’re super hard to get right, and probably not a great idea if you are starting with near-zero knowledge. Maybe look into classes at your local community/state college, which go at a more reasonable pace (and are often cheaper, though less flexible, or try options like learner’s guild which seem to have the right incentives (I’m not paid by learner’s guild, this isn’t an ad, I just know someone that was in it at one point and it seems to be working well and the incentives are in the right place).

Not everyone is fortunate eneough to take the path I have taken, and code schools are trying to level that playing field. I personally believe that it would just be better if full-fledged universities could step into that role, but so many things are just not tuned (and maybe will never be) with the plight of the person already working a 9-5 (or close to it) exhausting job (or currently unemployed), that it just doesn’t seem possible. Of course, there are arguments to be had over why universities cost as much as they do in the first place, why they’re so inflexible, etc, but that’s too long a disucssion to have here.

Issues I’ve observed (second hand)

Ignoring the rich history of the web by jumping in at the wrong place

There is an insane amount of history that makes up why the web is the way it is. Just about every tag in HTML, every function/methodology in JS (and the myriad of libraries and frameworks that are built weekly), has a unique history that often makes understanding the bigger picture easier. I think it’s important to know WHY someone might go from jQuery to something like knockout or why and how the standard of JS is evolving (ES6/ES2015, TC39, etc).

Any kind of proper overview is multiple hours of reading/lecturing, which should be spread over a large timeframe, say like 1 week, for there to even be a chance of absorbption. This does not bode well for a 3 month program.

Learning tools that you should work up to

Generally, people don’t start learning anything with the most recent/advanced tool there is. Likewise, AngularJS/React/Whatever should not be the first JS “library”/“framework” first time learners should be using to build a site. Yes, they have the most buzz circling around them, and they may make it easy for beginners to start, but often high quality understanding comes from starting smaller and working your way up to what you actually need. Also, most of the time, frameworks almost never discuss the reason why the bits that are in them are there (like why would you want data binding? or “services”?) – that’s implicit knowledge that is not often available to a beginner intuitively.

Learning things like react or backbone in the week/month after learning what javascript is or how HTTP/browsers work is insanity.

Even good colleges can’t boil down even the basic algorithmic/data-structure learning you need into one year

It isn’t reasonable to expect an unproven, upstart educational facility to teach someone everything needed for this almost any discipline in 3 months. Colleges/Universities usually take at least 3 years. Of course, there is waste (whether time, money or effort) in collegiate education today, but things like explaining the nature of computation take time, slow thinking and repetition. It isn’t intuitive (until you learn quite a bit) to think about needing a “list” when you’re tasked with sorting some group of numbers.

The idea that there’s (essentially) a world inside the computer, and programs essentially rule over that world, bringing things into that world, creating things, organizing the world, taking things out, is a foreign concept to people who are truly new.

People aren’t going in with 0 knowledge

A lot of people are just taking the classes to create job-switching opportunities for themselves. While it’s totally fine for coding schools to offer value int his way, coding schools often downplay this fact, and people with 0 knowledge think they can come in, but they’re faced with a feeling of inferiority immediately (at least in my close friend’s experience). This makes it difficult to learn, and sometimes even for those wishing to switch, makes an unnecessarily competitive atmosphere.

The difficulty is understated

I think the term “programming language” is amazingly apt. Just as learning spoken languages bends the learner’s mind into new ways, learning to problem-solve with programming takes similar levels of flexibility in one’s mind. It’s like learning a whole new framework/way to think about a very wide set of problems. If someone told you you’d be fluent and writing intelligent essays in spanish within 3 months, would you believe them?

Practice is like 90% of what you need to do

As with most things, getting better at the tedious parts of programming just requires practice (once you understand what’s happening). Translating your vision for what is happening (or what should be happening) and applying it to the computer that is operator is something that gets easier with time, as your mind molds itself to think at varying levels of abstraction from electricity and silicon.

3 months is not enough time to get “good” at anything. Definitely not enough to learn a language with any kind of proficiency without immersion (and arguably even with). Even if you don’t consider programming languages to be “languages” in the verbally-spoken sense of the word, what non-trivial thing can one learn in 3 months and be good enough to do it at a professional level?

The incentives could be better aligned

You pay tuition, outside of boosting their own stats (which they may pad anyway), coding schools often just don’t have enough incentive to make sure you are a success. It’s hard to be fully invested in a student that you will only see for 3 months, who will pay regardless of their job placement at the end of the program – Also for relatively popular/successful bootcamps, there’s the question of teacher fatigue (nvm whether the teachers are actually qualified, assuming modern teacher qualifications can be trusted).

Are there models that work?

Community College

Maybe people should just go to a local community college? it’s probably cheap, and they probably are a little more attuned to the issues they might face (missing classes due to pressing adult responsibilities). Also, while academic rigor might be perceived (it may not be actually) to be lower than that of a bigger/more prestigious 4 year university, that is simply a lower bound. You are absolutely free to learn more than is required of you in your classes. Also, if what you need is that little piece of paper to at least get your foot in the door, or an environment where learning is tied to largely meaningless (but effective) incentives like grades to force yourself to learn, it’s an excellent choice.

Learner’s Guild

Learner’s guild seems to have all the right incentives in place, and they basically invest in you. Whether or not it’s a good investment, time will tell, but they’re basically investing in applicants who look like they haev the fortitude to re-train, and taking a premium off your pay, assuming you succeed. While I haven’t looked over one of their contracts personally, the incentives are at least in the right place. Also, I thoroughly appreciate the increased amount of time they afford students to go through the system. It seems like they recognize that so much of being learning & proficient is simply practice, so they don’t attempt the 3-month schtick. As far as downsides go, it looks like they’re a little lighter on formal in-classroom teaching and seem to rely on a lot of learning methods that might be hit or miss (whereas of course in a 4-year university or community college the methods are a little more tested to say the least).

I’m not affiliated with learner’s guild other than the fact that someone I know was a student at one point in time. This blog post is not a paid advertisement for learner’s guild – if they see this and want to send money my way I’ll change this to a disclaimer and gladly take the money. These are just my opinions (more likely) wrong or right.

Are 3 month bootcamps scams?

I stay away from absolutes, and I think you should too. Some have called me a post-modernist, but fundamentally I think most would agree that there are very very few things that absolutely true in the world (even a statement like “nothing is absolutely true” is a conundrum that proves it’s own truth).

In that vein, I don’t think that all 3 month coding bootcamps are scams. I do, however, think that ones that promise to teach you much more than HTML/CSS/JS, are. The problem is that there is stuff that’s hidden in just “HTML/CSS/JS” – it’s really more like Computers/Datastructures/Networking/Text editing that isn’t word/Design/Structured documents/data organization/HTML/CSS/JS. The amount of things you have to learn, especially if you start at or near zero, is mammoth. To imply that you could learn all those things PLUS backend/databases is insanity. People spend 4 years in school and don’t even learn/master those things. Also, it doesn’t actually follow that those skills are what companies want to see – think of students who graduate without doing any personal projects to work on their skills or branch out into areas like backend or API design – they still get hired.

Is tech education/training/hiring broken?

This is a stupid question, everything is broken, whether subtly or obviously (woops, another absolute). It always has been. It amazes me how much of the human experience is struggling=> struggling =>struggling => glimpse-of-success => struggle => we made it. The only thing you can do is pick the path of least struggles.