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
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?
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:
- What is the difference between
var
,let
, andconst
? - What is the difference between
==
and===
? - What is the
this
keyword and how/when doesthis
change? - What do
bind
,call
, andapply
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
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.
Top comments (35)
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:
Bootcamps address, at least partially, all these 3 steps:
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!
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.
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!
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.
Thinking, rather than mere pattern matchnig, is a difficult skill, especially rational thinking or critical thinking.
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.
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.