loading...
Cover image for How Dev Bootcamps Are Failing Their Students

How Dev Bootcamps Are Failing Their Students

thawkin3 profile image Tyler Hawkins Originally published at Medium ・4 min read

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

Photo by NESA by Makers on Unsplash

There are three prominent dev bootcamps located near me: DevMountain, Lambda School, and V School. 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 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 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 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

Photo by Ben White on Unsplash

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

Photo by Chris Lawton on Unsplash

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.

Posted on by:

thawkin3 profile

Tyler Hawkins

@thawkin3

Senior software engineer. Continuous learner. Educator. http://tylerhawkins.info

Discussion

markdown guide
 

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.

I think this sentence perfectly sums up the problem, and I'm afraid at the same time it explains why there's little incentive to solve it.

Bootcamps do not optimize for a long, successful career. They optimize for starting your career. They help you to get your foot in, and once you're there, you have to figure out the rest. Bootcamp's goal, from the commercial perspective, is to help its clients to land the first job in the domain the bootcamp teaches.

How do you land a job? In 3 steps:

  1. you get an interview
  2. you pass the interview
  3. you pass your probation period (and on the way learn enough not to get fired later)

Bootcamps address, at least partially, all these 3 steps:

  • you do a few projects to put in your portfolio (1st step)
  • you learn a few technologies to add to your resume (1st step)
  • you learn how to build end-to-end apps (2nd and 3rd step)
  • you learn a bit in-depth about selected techologies (2nd and 3rd step)

The part where fundamentals are useful in the interview process is a more theoretical interview - that's where a lot of bootcamp graduates fail the interviews. The problem is that in order to introduce more basics in the curriculum, you have to either cut the practical part (so you still risk failing the interview) or extend the course (and increase the price).

I think if companies started checking more theoretical knowledge during interviews, that would force bootcamps to adjust. It's a challenging trade-off though, because what really are "the basics"? Is understanding the lexical scope in JS basic, or is it something advanced that you can learn later? What about writing a simple graph search algorithm? What about understanding difference between a list and an array etc? Again - challenging problem.
Funnily, I used to write professionally in JS for quite a while, and if you asked me to explain what bind does, I might have failed the interview 😅

 

Commenting as a recent bootcamp graduate (Flatiron in NYC), so take everything with a grain of salt!

Bootcamps do not optimize for a long, successful career. They optimize for starting your career. They help you to get your foot in, and once you're there, you have to figure out the rest.

I think this excerpt hits the nail on the head. Some bootcamps will do this better than others, of course. In my experience, there's a lot of supplemental work you have to do - but in return, the program was <20 weeks, which is much less time than a four year degree or even an associate's. Landing your dream job and working towards the outcome of a successful career is a viable result from a bootcamp; there are enough success stories. Coming out unprepared for an entry-level software engineer job is also a viable result, and there are enough failures to support that as well.

I think a lot of bootcamps should be more up-front about this. On one hand, you could argue that it's on the responsibility of the attendee to do their research, get advice, and be realistic about the amount of learning and preparation they truly need to do to land a job. However, bootcamps certainly market themselves as being all you need by touting their best success stories and not being transparent about their service they are truly offering. Even in the best cases, employment report outcomes are windowed in their favor, often omitting those who fail to gain employment because of fine lines that comply with the requirements that define a "qualifying student." I'm also under the impression that having little to no foundation in programming (e.g. "Writing my first line of code at bootcamp") is a bit of an unfair sell - it's a lot harder for students to grasp abstract concepts quickly, like the bootcamp demands, when they're still learning the basics.

So, I think there are valid criticisms from several angles, but I surely wouldn't discount all bootcamps as scams or failures. They do offer some worthy skills and credentials, which can be very valuable if you have none. But they don't offer everything you'll need to land a job; even a junior position. I think that's near impossible to do for a most engineering/-adjacent careers in only 15 or so weeks.

 

...because what really are "the basics"?

I'd argue, the war's already lost when "Javascript", or really any language, becomes tacked to the top of the target skills list. It doesn't matter what language is used to teach programming, but programming should not be tied to a language. Algorithms, data structures, patterns, essentials of computer engineering...these are things that one must master at some point to advance from "the guy who writes the Javascript we tell him we need" to "senior developer" (in a broader sense). Whether you learn them in a classroom, from a book, via course, or through self-study and experimentation doesn't matter. But it would seem to me, that is precisely what Bootcamps are failing to provide.

 

Very good point!

But it would seem to me, that is precisely what Bootcamps are failing to provide.

Something that just came to my mind: maybe this is where we, the tech leaders, are failing?
In the end it's us who put languages or even frameworks on top of list of requirements in job descriptions. And then we expect people to build an app in that framework during interview. And eventually when we hire bootcamp graduates we fail to provide them the kind of support they need (which is different from support that CS graduates need).

I'm not saying bootcamps are innocent here, they do a lot of shady and misleading stuff.
What I mean is that we know what bootcamps are - they are a response to sudden surge in demand for software developers (and as that demand plateaus, most of them will disappear and only the best will remain), they are X-weeks courses for people who can't or don't want to do longer courses or CS degrees.
They can do much better, and so do we.

I do agree. I don't set strict technology requirements on any job I post, and I know of a few other employers who don't either. It's something we definitely need to push more for in the industry, but that would require companies having technically-minded people writing the job descriptions and posts, rather than entrusting that to HR.

 

I just finished teaching a 24 week full stack (MERN) bootcamp. Our approach is to start with fundamentals and adapt them to the latest techniques and frameworks. My goal is for them to understand enough to be able to learn more on their own.

For example, we spent the first few weeks on HTML and CSS. No frameworks. After learning how to "manually" lay out parts of a page we introduced Bootstrap. Bootstrap is taught as a tool that just makes this easier. When projects were due, one requirement was to use a framework other than Bootstrap so students would be obligated to learn something else on their own.

When we got to MySQL I taught them SQL. Their JS first interacted with the db with plain SQL. Then in another lesson I showed them Sequelize and the benefits of an ORM. Similarly with Mongo we started with plain JS and documents right in the Robo3T.

I guess I'd call it a layered approach. And throughout it's my responsibility to reinforce fundamental concepts.

24 weeks is barely enough time, and the top complaint of students is the fast pace. By the final project I can see the majority of students who put the effort into it will be very good entry level developers. They can take what they've learned and grow from there.

 

This is pretty true and why I prefer bootcamp candidates who have done some side project outside of the class.

However, I find similar skills lacking in 4-year school grads, as well. They can write a 32bit OS in C++ or write a bubble sort in Java but took zero or one semester of web dev based on 20 year old concepts.

Neither of these groups know nearly enough about fundamental concepts ancillary to development, like basic networking concepts for instance.

Bootcamps are popular because 4 year institutions are stuck in the 90s.That doesn't mean they're necessarily better, but i find both groups of candidates need the same amount of on the job training.

Regardless, this field requires constant and vigorous self study. If you have that habit and you're smart, I don't care which school you went to.

 

IMO, uni professors are often smart in their knowledge, and even critical thinking; but not necessary good at teaching concepts to the mass, and encourage them to think.

Both can have their failures, and race to the bottom might be a solution, and beneficial to the students.

 

Agree with this and they are more concerned by their research than teaching.

 

wow, very cool discussion here in the comments, let me give you my perspective as a technical lead. Having worked with and interviewed many people including bootcamp graduates.

And it is always important to look at the people behind the curtin. I rather work with someone who put in effort instead of a know it all. Software Development is a team effort. When you fill up your team with seniors, who is doing the simple stuff? Implementing the next form or the next modal view is not intellectual challengeing. creating a table and the corresponding model in code is also kind of a standard task.

As was already pointed out, tech is a career of constant learning. and getting people who originally come from a different field and backgrounds can widen the view of everyone in the team.

I think nobody expect to go from bootcamp to tech lead overnight, but with a little luck, the student join a team, that is not only farming out his current angular or orm skills, but challenge him with new kinds of tasks, providing advice and direction, the student can have a good path ahead of them.

And this is the responsibility of today's leadership.

By the way, I can't tell, how the companies sell their courses, and potentially raising unrealistic expectations, but I genuinely think it is good to have the options available for adjusting once path. I also think today, there are so good books and materials online(free and paid), I would be happy to learn coding today. And as everyone learn different, going though a bootcamp can be worth it.

 

Disclaimer: Currently enrolled in Lambda.

As for your numbered points the only one we haven't explicitly covered is the difference between the double and triple equals, or truthy vs falsely values in general.

But we did spend a fair amount of time on the fundamentals and mechanics of 90% of the language. I think this coupled with the career readiness aspect they provide once you are endorsed via interview prep (both coding and "soft skills") helps to fill in those gaps.

With the said, our first unit instructor left a lot to be desired once we got into the weeds of js.

I spent a fair amount of time educating myself (about four months) on js and had prior programming experience before as well. And I think if you have a foundation in programming it is a good experience but I don't think it is for total beginners or people who aren't prepared to self educate outside of class

 

Agreed. Teach concepts and techniques, not tools. If you know the concepts, no matter what tool(s) you use to practice them, you can pick up any other tools necessary. Students being taught the "current popular frameworks," are largely condemned to a set of professional skills which will be largely outdated and irrelevant in a few years, and they'll be back where they started (unless, of course, they go learn the concepts themselves.)

Doubt my prediction? See the gaggle of developers from ages past who learned the Flavor Of The Month Language, but not the fundamentals, and are now out of work. Continuous learning is half of this career.

 

Yes! I couldn't agree more! I'm a Lambda School student and while I love it and think the curriculum covers most of the info I believe I'm looking for, I would happily stay in the curriculum for an extra month on two to just do coding challenges and understand the deeper inner workings.

Saying that, I've also seen the encouragement that comes from within the school to work on these things in their 'spare time' (which is hard to come by, but not unreasonable.)

Also, not to detract from your article, but just as a correction..Lambda does teach Express these days, I don't think it's reflected on their website. ☺️

 

That Devmountain course outline looks like a massive scam. Encouraging students to take out loans or borrow from friends and family to cover course costs, even though their explanation of what's actually taught each week is little more than "This week, we learn React and Node. Next week, we learn React and Node, but more!" And apparently you'll also build a "simulation", which is "jargon" that you'll understand by that point. A simulation of what? A miniature universe? The dark side of the moon? The interest on the loans you just took out?

 

Bootcamps and even a CS degree will only get your foot in the door. After that, it's up to you to continually learn and improve.

 

Okay so I will share my experience even if it is not completely a bootcamp on webdev.
Three years ago, I got a job in a company that was recruiting people out of scientific courses left and right to teach and employ them as software developer. Not specifically in web.
The contract was that we would have 2 months of learning programming and then we would stay in the company to gain experience.
The big difference here is that we were sure to have a job, and the company needed us to be efficient and able to learn and adapt quickly. It was the main goal of the course (and the main focus of the recruitment). And I believe it is what made the learning course so efficient.
We were taught to learn, and learn fast. We learned the basics from the inner workings of a computer, and worked from here. Installed a VM with Linux, learned to work with Shell, SQL, Java (the language being so... wordy is great to retain the basics) with only a text editor then learned Java with Eclipse then J2E, including HTML/CSS. We learned some basics algorithms, data structures, Object-oriented programming,... in a way that we had to learn by ourselves and work a lot (from learning to search for the right ressources, to learn to help and get help, and retain the most important informations)
I may not have learned JS that time, but when I had to learned it for a job later on, I was equiped and able to learn and work on a NodeJS project really quickly. I have since completely shifted to JavaScript and I have continued to learn as much as I can to improve.
Now I have learned a lot more and been a web dev since more than two years. I have feel like I have hurt a wall on what I can learn alone. I have been looking for a new job (that I finally found :) ) to have a mentor to guide me.
The bootcamp has set solid foundations for something that has last just 2 months. And I have been able to use the skills I had before. Now I can continue to improve and enjoy my career if I choose the right job in the right conditions.
My case is not a generality at all (no one's is) but I think that the most important things to earn from it is that we must do what we can with whatever ressources we have. But we must learn to search for those ressources (like dev.to for example, I have so much because of this amazing community).

 

One of the most valuable things that I got out of my bootcamp was that they emphasized they weren't teaching us specific concepts - they were teaching us how to learn. We were introduced to concepts and then taught how to hunt down an answer. I think that learning how to learn is a huge make or break point for bootcamps.

 

My bootcamp experience was great, and there's no way I would have gotten work in this field as quickly without it. It definitely helped that I had been self-learning for a while. And after it was over, I did have to learn the data structure & algorithm approach to interviewing (which undoubtedly made me better at my job).

At Flatiron we did three weeks in vanilla Ruby and three weeks in Rails (via Rack and Sinatra, so we could see some of the concepts at work). Then three weeks of vanilla JS and three weeks of React. I see this in other replies as well - a layered approach with an appreciation for fundamentals. I like that we were exposed to two languages, even if both are dynamically typed; it emphasized the common basic ideas of many languages.

I think "the fundamentals" is a wide and debatable pool of knowledge. To me, that's basic data types, iteration, logic flow, and tool coverage (what kinds of interactions are covered by which parts of your stack). But that's programming only, and most jobs are 50% soft skills. We were also asked to complete projects together and alone, write and present on technical topics, conduct mock interviews, and informally help each other learn. By emphasizing all of this, I think we were put in a good position to continue to grow and thrive. Much of it is up to the student, of course, which is true anywhere.

Basically I think you are focusing in too sharply on the idea that specific pieces of knowledge are key to being a good developer. Yes, one must appreciate the workings of the world they work in, or they'll make bad choices. But I can count on one hand the times I've actually used == in JS (though, yes, very common interview question). More important for the somewhat impossible task of learning a new field in 15 weeks is to teach an appreciation for the concepts that bind modern programming and web development, and the soft/research skills to dive into new problems and discuss them with others. As a bootcamp grad I'm obviously biased, but it worked for me, and I enjoyed it!

 

You wrote almost exactly what I was going to reply with. I attended Flatiron as well (online) and feel the same in terms of the curriculum there. I think something that this article misses is that, at least at Flatiron and especially with the online program, you learn how to learn. I’d think it would be seen as a strength that a person is able to complete such a rigorous course and actually develop skills rather than be overwhelmed.

I can only speak for myself but I went into the bootcamp knowing that graduating isn’t the finish line. I don’t know anyone who wasn’t excited to go out and start expanding their knowledge in different directions after graduating.

I find it hard to believe that anyone, from any training or educational background, walks into their first dev job (or any new job) 100% ready to hit the ground running.

 

From my experience, most bootcamps have a specific class for grasping fundamentals. It's called "Preparing for Interviews" or something along those lines and covers everything someone should have known BEFORE they took the MERN course. Why is that a separate class? So they can get more of our money.

I don't think that bootcamps are in the business of bettering society or the developer community. I feel like they are in the business of making money and the situation described in this article is the direct result of making sure that prospective students are enticed into purchasing products that promise quick results. It's like the "I'll teach you how to sell real estate" scam. Sure, some people come out of those and make a lot of money but the majority do not because they were in over their heads before they even walked in the door.

I'm sure that there's an "all encompassing" course out there but I have not seen it. Then again, I'm a generally ignorant person with too much time on my hands. meh… 🤷🏽‍♂️

 

From what you’ve seen, has this lack of fundamentals hindered graduates in their job search? Or are they still able to build things, so potential employers don’t care so much about programming concepts? Or, as a result of skimming the fundamentals, are they left without being equipped to build real things as well? I’m not super familiar with the experience of boot camps myself, how much knowledge do graduates leave with about being able to build real-world applications?

 

I generally agree with the original post. That said, how much knowledge you take away from a bootcamp often… not always… is directly proportional to the amount of knowledge you came in with. If you have a mastery, not understanding, of Javascript then I think you'll have a great chance of leaving a MERN course with a lot of tools in your belt. If you don't then you'll likely spend a lot of time trying to play catch up; looking up terms, trying to memorize patterns, sifting through hundreds of tutorials & articles with conflicting opinions and instructions.

Bootcamps know all of this but have not taken ownership of the issue because an ignorant student is money in the bank just like a knowledgeable one is. It's no different than college. You can walk away from a major university with no degree and the school won't care. They got paid.

 

I think the issue here is that you think that web development bootcamps makes people a software engineer, but it's not like that, it makes them web developers, you can't compare a web developer to a software engineer, engineering involves more complex stuff than web development. No web development bootcamp says they'll make people software engineers. I'm a web developer myself and there's nothing of software engineering on what I do.

 

I think having a separate tracks for FE and BE would be a better option for 2 reasons:

  • Bootcamps have limited time to train hundreds of students so quality should be primary focus rather than quantity. Here, the T rule really helps out or "to know everything about something and something about everything". This also keeps students less distracted and helps them in getting more confidence about the knowledge

  • A lot of companies (mainly established/stable) had separate positions for FE and BE. If bootcamps can train students by keeping this context in mind, it would become easier for them and students to transition from towards the field of SWE.

At the end, it's all about empowering people enough to the point where they feel confident and are able to get job in I.T not to spoon feed everything.

 

What resources would you recommend people studying web development look to in order to supplement their education on the core fundamentals? I'm actually a student in a coding bootcamp currently. Just bought Eloquent JavaScript, seems like a great primer on JavaScript.

 

I'm actually happy that you posted this article, considering that there's a perception that bootcamps are viewed to be the golden ticket on landing a tech job immediately. There is truth when you mentioned the following in your article - "They help you to get your foot in, and once you're there, you have to figure out the rest."

Tech is indeed a constant learning experience. Imagine in a couple of years (or perhaps months), the technologies would end up changing and there's something new where most companies are looking to utilize that particular framework. I do believe that engineers need to be fully adaptable and having the constant need to learn new info.

 

Totally agree, I always saw bootcamps as a way to specialize yourself AFTER getting an official certificate on an official college/institute, not for becoming a newcomer into software development.

You may know how to work with some technologies after a bootcamp but if it's all that you got you will not know why you need to work that way and what implies on the background. It will also be difficult to change your mindset for working with different languages/stack.

It's the old concern about coding for a browser without knowing how the browser works

 

The same situation over here. The boot camp that I enrolled more like a propaganda tech camp. I quit to being that place and I started to Bootcamp myself on YouTube. To be honest, YouTube is doing much better. And, here I am. Satisfied.

 

I am currently enrolled in Coding-Dojo’s part-time MERN boot camp. Before deciding on a boot camp, I took a semester at community college on web fundamentals and VB.Net that lasted 5 months. There is no way I would have been able to go blindly into a boot camp if I didn’t have the fundamental concepts that I got from the community college class. However, I feel like now I have a good grasp on the pacing and more difficult concepts.

 
 

I totally agree with you, but I believe bootcamps are offering what the market wants. To change how programming is thought , it is necessary to rethink the hiring process. While companies require projects, stack and experience to be a junior, I don’t believe that it will be possible to change how bootcamp works.

 

I can't speak for the other schools but I went to Lambda School. They used to be MERN stack, but now teach sqlite3 and Postgres as db instead. I learned Mongo/mongoose in curriculum before it was switched to pg and then led student groups while they were learning postgres.

In CS, they teach DS & A in Python to get a second OOP language experience. In addition when I went through curriculum we covered concepts in C as well. I think they cut C out to focus more on fundamentals of Python and learning to think like an engineer...bc I can tell you from experience learning both in a short time was super overwhelming!

For me personally, I needed more time to learn to break down problems like an engineer would. However, Lambda gave that to me by allowing me to intern as a CS student leader.

The opportunity is there, but learning to ask for that opportunity is hard. I had to learn that it was okay to fail and flex the timeline to suit my needs. Lambda does this with no financial penalty.

 

I can see how this is true. I’m currently attending a coding bootcamp at the University of Miami. The thing I recently discovered is that some of the student have some misconceptions of the program. Maybe, I new what questions to ask when I was looking at the program. On average I’m about 20 years older then most of the students in the class. The first thing asked was; what are the actual expectations of learning all the concepts over 6 months. Will I really be able to learn everything you’re selling? Their answer: Yes, but on average you will need to allocate and additional 20 hours a week to truly get an understanding on these concepts. Fast forward a few weeks into the program and we are working on a group project. We are working with API’s and I’m good to go with these concept, but the two other students I’m working with have to idea on how to get a response from any API. Turns out they are still struggling with basic JavaScript concepts. They say it’s because the teacher doesn’t know how to teach. I ask them if they are doing anything outside of class to bridge the gap between the concepts they don’t understand. Their response: No, why they are supposed to be teaching those concepts during class. Maybe what you get out of it depends on what you’re willing to put into it.

 

This has not been my experience as I am a Lambda school student. And I do know the difference between var, let, and const.

 

how bout thinkful? is it any good?