How Dev Bootcamps Are Failing Their Students
Tags: webdev, beginners, javascript, career
Published: 2020-08-11 14:27:12

**Unpopular opinion: Web development bootcamps are failing their students.**

How? By not spending enough time on the fundamentals.

With that provocative opening, and before you start wielding your pitchforks, let's dig in.

---

## The Allure of Dev Bootcamps

Web development bootcamps are generally marketed toward individuals looking for a career change. These individuals may have a four-year college degree in an unrelated subject or no college education at all but have taken an interest in programming.

Software engineering is an alluring field that offers a high salary, flexible working arrangements, and many other perks common to the tech industry.

Dev bootcamps often boast in their ability to quickly ramp up individuals in a matter of three months, six months, or nine months, either on a part-time or full-time basis. In that time, graduates should have learned everything they need to know in order to land their dream software engineering job, at least as a junior engineer.

But what do these bootcamps actually teach their students?

---

## What Dev Bootcamps Teach

![Teacher and Student in Classroom](https://dev-to-uploads.s3.amazonaws.com/i/m76xpwak1gd33qt1a1bm.jpeg)
<figcaption>Photo by NESA by Makers on Unsplash</figcaption>

There are three prominent dev bootcamps located near me: [DevMountain](https://devmountain.com/), [Lambda School](https://lambdaschool.com/), and [V School](https://vschool.io/). Each of these bootcamps offer unique courses and programs, but all three of them offer a web development course curriculum. Let's take a look at what they cover.

[DevMountain's 13-week curriculum](https://devmountain.s3.amazonaws.com/hubspot/course-outlines-dm/2020-Web-Dev-Remote-Course-Outline-2.pdf) includes HTML, CSS, JavaScript, React, Node, and SQL. Technologies like Express or MongoDB aren't mentioned in their course outline, but I wouldn't be surprised if those topics were briefly covered, as this curriculum feels very much like it's teaching developers the MERN stack.

[Lambda School's 9-month curriculum](https://lambdaschool.com/courses/full-stack-web-development) covers HTML, CSS, JavaScript, React, Node, Python, data structures and algorithms, and testing principles. Express and MongoDB are missing here while a few extra topics are included as a bonus, but this again looks like the MERN stack to me.

[V School's 6–12 month curriculum](https://vschool.io/development/) teaches HTML, CSS, JavaScript, React, Node, Express, MongoDB, and Mongoose. This one is definitely the MERN stack.

---

## So What's the Problem Here?

![Surprised Child](https://dev-to-uploads.s3.amazonaws.com/i/acdra54b028yyzb3i3ut.jpeg)
<figcaption>Photo by Ben White on Unsplash</figcaption>

While these three bootcamps offer programs that differ in length and vary slightly in course material, they're all teaching the MERN stack. To be clear, this is great! The MERN stack, with React in particular, is a very in-demand set of technologies that are useful to know when searching for a web development job.

The main problem I see in their curriculums is not the topics covered but rather *the amount of time allocated to each topic*. Dev bootcamps are so eager to teach their students the relevant frameworks and libraries being used in the industry right now that they fail to adequately teach the fundamentals of web development: HTML, CSS, and JavaScript.

Looking at the course outlines, DevMountain spends 2 weeks (out of 13), Lambda School spends 4 weeks (out of 40 weeks), and V school spends 2 modules (out of 6 modules, however long that is...), on the fundamentals of HTML, CSS, and JavaScript.

This means that while dev bootcamp graduates claim to be "full stack developers", they often struggle to answer basic JavaScript questions like:

1. What is the difference between `var`, `let`, and `const`?
2. What is the difference between `==` and `===`?
3. What is the `this` keyword and how/when does `this` change?
4. What do `bind`, `call`, and `apply` do?

---

## A Quick Note

To be clear, and to avoid any hurt feelings, I'm not saying that all dev bootcamp grads don't know these things. Many of them do! I've met several dev bootcamp grads that have been excellent developers who have impressed me time and time again.

On the other hand, speaking from experience, I've encountered far too many dev bootcamp grads who I've either interviewed or worked with that have struggled to grasp or explain these kinds of basic concepts.

---

## A Potential Solution

![Leaves Changing Color](https://dev-to-uploads.s3.amazonaws.com/i/xg76yctgwfjous3d9vpq.jpeg)
<figcaption>Photo by Chris Lawton on Unsplash</figcaption>

The web development ecosystem, particularly the JavaScript ecosystem, is constantly changing. I'm sure in the next five years there will be another hot new framework that will gain mainstream popularity. Will React remain the king? Or will it be Vue? Svelte? Will we be using Node or Deno?

The point is that the popular frameworks or libraries may change, but the underlying HTML, CSS, and JavaScript concepts will remain largely the same.

This is true of most things in life. **Implementations and tactics may change to adapt to current circumstances, but principles endure.**

If dev bootcamps will spend more time focusing on the fundamentals, I believe their graduates will come out more successful and better prepared to learn and adapt to whatever technologies their new employer may be using.

---

*Thoughts? Are you a dev bootcamp grad? Does this accurately reflect your experience? Did I get something wrong here? I'd love to hear your comments.*