DEV Community

Cover image for How Dev Bootcamps Are Failing Their Students

How Dev Bootcamps Are Failing Their Students

Tyler Hawkins on August 11, 2020

Unpopular opinion: Web development bootcamps are failing their students. How? By not spending enough time on the fundamentals. With that provocat...
Collapse
 
gregorywitek profile image
Gregory Witek

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 😅

Collapse
 
rizz0s profile image
Summer Rizzo • Edited

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.

Collapse
 
codemouse92 profile image
Jason C. McDonald

...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.

Collapse
 
gregorywitek profile image
Gregory Witek

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.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

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.

Collapse
 
mattschwartz profile image
Matthew Schwartz

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.

Collapse
 
jdforsythe profile image
Jeremy Forsythe

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.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

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.

Collapse
 
keke_arif profile image
Keke Arif

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

Collapse
 
v6 profile image
🦄N B🛡

Thinking, rather than mere pattern matchnig, is a difficult skill, especially rational thinking or critical thinking.

Collapse
 
bias profile image
Tobias Nickel • Edited

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.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

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.

Collapse
 
ackers93 profile image
Andrew Ackerman

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. ☺️

Collapse
 
lionelrowe profile image
lionel-rowe

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?

Collapse
 
dougaws profile image
Doug

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.

Collapse
 
axelledrouge profile image
AxelleDRouge

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).

Collapse
 
egilhuber profile image
erica (she/her)

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.

Collapse
 
256hz profile image
Abe Dolinger

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!

Collapse
 
nbaugh1 profile image
Nick

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.

Collapse
 
selino profile image
Selino Valdes • Edited

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… 🤷🏽‍♂️

Collapse
 
raquel_gonzo profile image
Raquel Gonzalez

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.

Collapse
 
tam360 profile image
Mirza

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.

Collapse
 
ajmcodes profile image
AJ

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.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

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

Collapse
 
louislow profile image
Louis Low

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.

Collapse
 
jrgsepulveda profile image
Jorge Sepulveda

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.

Collapse
 
krgrs profile image
kenny

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?

Collapse
 
selino profile image
Selino Valdes

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.

Collapse
 
ckopecky profile image
ckopecky

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.

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli

What is a MERN stack?

Collapse
 
brpaz profile image
Bruno Paz

MongoDB, Express, React, NodeJS

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli

Ah, thanks.

Collapse
 
lioliveiraz profile image
lioliveiraz

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.

Collapse
 
aaronfl35987775 profile image
Aaron Flowers

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

Collapse
 
spiritupbro profile image
spiritupbro

how bout thinkful? is it any good?