1. Bootcamps can be selective over a range of non-academic criteria such as interview skills, personal hygene, and prior work experience. Or to put it another way, unlike a public university, a boot camp can select for culture fit both in its internal cohorts and in the workplaces it targets.
2. Bootcamps tend to attract people with previous work experience: someone more likely to have several years of working to keep a roof over their head than a recent CS grad. There's a difference between a junior programmer with their first real job and a junior programmer who has spent six years working crappy jobs [or good ones].
3. Bootcamps have much more latitude to train for employment and employability. Listening to Jeff Meyerson's hours of bootcamp love songs, those interviews have left me with the distinct impression that doing so is common.
4. Bootcamp grads may come out with a stronger alumni network that can provide recent feedback about interview processes like Triplebyte's. Going in with some idea of what's coming is likely to produce better results.
5. Bootcamps don't have to report their "failures". There's no independent oversight or accountability of the sort common in university education. A "C student" may simply find it impossible to graduate a bootcamp. The bootcamps are free to shape their "graduate" pool however they wish.
I think there are a couple reasons bootcamps are especially successful compared to colleges. At the top of the list is that most bootcamp students already have one or more college degrees. This is "in addition to," not "instead of." Secondly, because the schools are non-accredited, nobody does them just to please their family or because they don't know what else to do with their life. I'm sure there are anecdotal exceptions, but students are generally there because they want to be.
All your points are valid, including the last one unfortunately. That was the one black point about my gf's experience when she was having trouble finding something that suited her: they dangled the threat of dropping her from their network.
Also, I should add that bootcamps like hers aren't a "Zero to Hero" offering. They actually expect you to have significant skill in programming, being able to complete non-trivial exercises and projects in their language of choice before even starting. Don't mistake this for a rubber-stamp institution that takes already-skilled people though. It's just that their minimum requirements are already pretty high. The curriculum thereafter is pretty grueling and she learned a lot.
Are you saying she was turning down legitimate offers because it wasn't exactly what she wanted, or she wasn't getting offers and they were threatening her to get her to try harder, or something else?
Code camps are (in my opinion) a sign that programming is bifurcating into software engineers, and software technicians (or whatever we choose to call someone who can apply a science, but not necessarily understand the science).
Interviews: Criteria include technical ability. Our site points towards a lot of free resources for learning JS, and I can personally attribute that there is enough material to get a liberal arts student from 0 to a basic understanding of core JS functions. If they can't use those free resources to self-teach, or haven't grocked the material after attending a bootcamp prep course, they probably won't be able to keep up with a 3 month intense training program. ~80% of applicants will be asked to interview again, and of that percent, maybe 50% will eventually be accepted.
Criteria also include hireability. If a potential student has never held a job in their life, they probably will be rejected. We want to bring people in that will be employable, and motivated to seek employment. On that note, yes, personal hygiene and social skills come into play. If someone comes in for an interview that we would loathe working with, they will be turned away, regardless of their technical ability.
Outcomes: We are financially motivated to ensure students get jobs, but probably not in the way many think. We don't receive placement fees (that I'm aware of), but we all face the rampant "bootcamp grads aren't as good as comp sci grads" mindset in the industry. For every candidate we place, that's one more person proving that bootcamp grads can operate on the level of a comp sci grad. That's good for brand. More people will hear about the program, be more likely to attend, etc. Furthermore, more PMs and Engineering Managers will see the good work of our graduates, and perhaps come to understand that these candidates are competitive with a comp sci grad, and be more likely to hire grads in the future.
On reporting failures: The hardest work in avoiding "failures" is in the admissions process. It's rigorous. If someone would be a "failure" i.e. unable to finish the course or unable to build the portfolio necessary/perform in technical interviews well enough to get a job, they won't get into the program (mostly). I don't work in outcomes, so I can't comment on how transparent the numbers are, but there's no concerted effort to conceal anything at this bootcamp and I feel the numbers are accurate. Without a doubt, it's worth investigating a bootcamp thoroughly for outcomes results before attending.
Alumni Network: Shockingly powerful. For example, one of our graduates interviews at, say, google. They meet with the outcomes staff after and discuss the interview. We now have a general idea of what to expect in a google interview. This data is stored and updated for every single graduate, forever. So if a candidate who graduated 2 years ago is job switching and interviewing at google, they can come in and discuss what to expect in a google interview based on other alumni interviews, practice whiteboarding problems with staff, etc. We are careful about NDAs, etc. Everything I've seen is above the board, but I can't speak for any but one bootcamp.
This was a major value-add for fraternities and university career-services offices.
The good news is that nowadays, there are no secrets -- Google itself hands out public training material for its interviews, not to mention blogs and careercup / Cracking books, and most companies interview pretty similarly to Google style.
If you paid course fees and did the work, you should be able to walk out and say 'I am a C student at RoR' with a certificate.
A company which hires through boot camps can ask for grades and choose to hire or not.
A C level student with other skills may still be valuable because of other skills they have and employable for junior or non dev roles.
Setting such a high bar pretty much just seems to be a way to manipulate data for marketing purposes.
My reaction was, "Well we would likely reduce the rate at which security vulnerabilities are introduced in new code."
Then I reread it. :-)
(And I criticize C with love. I used it for years and recognize it as a product of its original purpose.)
I think one key aspect that is missing is that boot camp graduates aren't straight off the barista lineup. I took one at age 28 after having worked in a technical role in finance since undergrad. The average age of my class was probably 29. Beyond just time in the workforce, I had a double major in math and economics with a minor in applied statistics. Had I dropped "Behavioral Economics" and taken "Data Structures" along with some other random course, I could have switched my Econ major to a minor in CS. Many people in my class were of a similar background.
The problem is, there was no easy way -- for someone like me wanting to go into software -- to (convincingly) say, "Hey, I can code and think abstractly. Give me a chance?"
(If you're going to say, "just contribute to an open source project", there's actually a big gap between being able to code and being able to debug the zillion things that can go wrong in just setting up the builds for a given project. The Open Hatch project c. 2011 was specifically dedicated to helping people contribute, and yet following their instructions would still dump you in a an unnamed text editor with no way to exit.)
[1] Frustratingly, the instructors were very unhelpful at the stuff I needed help with the most -- forming a mental model of how and why Rails works.
I suspect that's because they didn't know how or why.
Rails has a lot of magic -- just follow the convention and it works. Magic can be good, because it encourages a standard. Unfortunately, many Rails programmers seem comfortable leaving the magic as a mystery rather than learning how it works and why it was designed as it is.
That's more or less all most CS graduates can say though. I personally don't think anyone is qualified to be a professional developer until they've been programming for several years (especially coding in an unstructured way).
I don't want to be combative, but what made you think you needed a bootcamp? I learned to program long before I went to college and was hired for programming projects long before I graduated.
I got a great job with my second interview. How did I convince them to give me a chance? I didn't contribute to open source; I just showed them some of my personal projects. I had written a web based baseball simulation game, and I just showed them the code. I did a quick interview, explained how I had taught myself to program as a youngster, and they offered me a job.
In my years since, I have hired people just like me a number of times. Show me some code, if it is good, you are hired.
If we had only done rails, I'd probably have little idea how it worked, but doing all three definitely shored up some weak points.
It also helped that the teachers were genuinely knowledgeable and we had short lectures on deeper-level stuff (we had one hour lecture on how to build a tcp server from scratch in ruby, one on how the internet actually works - from the link layer up, and so on).
Other bootcamps just need you to be able to use your computer and you're in.
So to me I have to question the ROI of walking away from 5+ years of professional advancement and jump into software development again - by way of an in-person bootcamp. I'm not going back to a Uni or interested in online learning settings. However, I do recall the concepts and am certainly excited by the developments in languages and technology since watching some of the roots take hold.
Being a "creative" person who can speak "engineering" is one of my strongest, and often the most unusual of my professional strengths.
In addition to being able to contribute in a non-development capacity, even in terms of software being good at coding is probably at most 20% of what makes a good developer.
Additionally, in my experience, it's way easier to teach non-development skills to thoughtful programmers than it is to teach adequate programming skills to thoughtful non-programmers.
Some of the best designers, managers, product analysts, business intelligence analysts, marketing strategists, and client engagement managers I've ever met all came from heavily theoretical CS backgrounds and spent a lot of their early careers mostly coding.
Understanding the interrelationships between business components and business needs often has many similarities with designing quality software. And many of the pitfalls of software (e.g. monolithic classes, no separate interfaces, no solid tests) are directly analogous to non-software organizational problems as well.
Plenty of people who gain technical credential through a bootcamp will go on to do a great job, and their other skills will be of tremendous value.
But it just seems absurd to me to try to make some kind of rank ordering between bootcamp grads and CS degree holders. You're discounting just how highly effective CS degree holders are at translating their very general skill set into other domains of work. Generally speaking, they are very good at this -- so good that it's often threatening to non-technical people who would prefer if there was an easy stereotype suggesting that CS people should be siloed away from non-tech work.
It seems like everyone is forgetting this.
Since coding is becoming important for a tech driven World, no matter what our backgrounds are. We come in with whatever skills we've gathered from our personal journeys and then learn to code.
Sure, bootcamp grads can write a web application just fine; after all, it's usually only CRUD. But what value are they bringing to an organization? Why would I pay them the same amount as a college graduate who undoubtedly has more total knowledge not only in CS, but in other areas as well? Ideally, a college should expose students to a diverse range of knowledge, each tidbit providing additional value to an organization. If I just wanted an application constructed, I could offshore the job and get it done cheaper.
Yes, a well-run bootcamp might be a better __coding__ education than a computer science degree, but coding is the easy part. There are other valuable skills that aren't being taught (i.e. the ability to communicate clearly, how to do research, how to learn independently) that make an organization strong.
We aren't in the coding business, we're in the building business. Code is simply a means to an end.
These people ARE college grads. I'm not sure where this seemingly pervasive view is coming from. My class had 1 person without an undgraduate degree, and several with masters.
> i.e. the ability to communicate clearly, how to do research, how to learn independently
The average age of my class was 29. 6-10 years in the workforce tends to demonstrate an existing ability to do this.
This was a full time iOS program in Totonto.
On the question, "are bootcamps good or bad?" I think most people would tend towards good, though exactly how good is another matter of debate.
I wonder if this says something more about how life is lived now, and the choices we get to make because of opportunity.
Most of us are college grads, and our school is not a 12 week bootcamp. We spend 2 years learning, doing internships and coding, and there is a heavy emphasis on soft skills.
Here's why: I've taken English courses and Music theory courses, but I am not a writer or a composer by any sense of the word. Sure, I can write a blog post or a comment, and I know how to compose a harmony, but I still lack the sort of knowledge necessary to fully embody the full enormity of these titles. Great composers and writers aren't always necessarily thinking "theoretically, I should do X given that I have Y." But a musician that lacks sufficient knowledge regarding music theory will generally lack the ability to compose truly great works.
Yes, most web applications can be completed by just about anyone if you train them a couple of months. But generally that's all that person is capable of. They won't be able to evaluate a technology critically because they fundamentally do not understand how or why it works. I can also create a movie script -- that doesn't mean it will be any good!
From my point of view, the non-hacker community doesn't understand that software and technology can be as aesthetically beautiful as the Sistine chapel. It takes real craftsmanship and deep theoretical knowledge to get there; you can't just wake up and produce that.
I'd like to thank the other commenters who pointed out that there are a lot of Bootcamp grads who did attend college -- I had no idea. It would be interesting to see the actual stats on that.
(Of course I acknowledge a college degree doesn't necessarily imply the level of craftsmanship I'm talking about here, but generally the theoretical knowledge obtained coupled with working in a meaningful way lead to this sort of craftsmanship. Also, just as art is subjective, beautiful software is as well.)
I'm quite sure the same is true in programming. So what if a bootcamp grad can only make CRUD apps a few months into their dev career? What can they do five years after that? At a certain point individual dedication and passion is what matters. There are a million books about algorithms and many bootcamp grads have library cards.
Sure, the self-taught pop star isn't going to write Rite of Spring anytime soon, but the music business does just fine while being flooded by people with limited theory skill...and I say this while holding the view that most people should just be performers and not compose.
I do way more than just CRUD apps - I basically own all of the business logic/processes here at my company. My bosses on a regular basis make it clear that I'm invaluable to the organization.
I think this view is fairly myopic and basically credentialism. As someone who has to interview and make hiring decisions, I swing way in the other direction -- credentials make up maybe 5% of my opinion of a candidate. At best.
People always talk about how they're concerned with a candidate's ability to see something through, work hard on something with deadlines, know how to learn new things/not just knowing one thing. In my eyes, this, if NOTHING else, is something that a degree shows.
And yet, even though you decry the usefulness of degrees, you're sure to mention that your bootcampers mostly hold them. If they don't matter at all, why even bother mentioning it?
I wonder if there are any studies showing the degrees held by bootcamp graduates?
A bootcamp probably makes a ton of sense for say a mechanical engineer looking to switch professions, instead of going back to university and doing an additional +2 years of courses for a second Bachelors degree or a Masters in CS.
Doing a CRUD web application is a good way to get a candidate into the door so that you can observe, first-hand, their response to learning that body of knowledge. Your business's competitive advantage may be based upon proprietary algorithms and deep domain knowledge, but sometimes you just need a webserver done. And the person who goes and builds that webserver will learn a lot about the domain knowledge needed to interface with it, and you'll learn a lot about how they approach challenges and seek out the information that they need but don't have.
All of this is independent of whether they learned to build that webserver in college or a bootcamp.
(I do agree that the college experience is more than vocational education and valuable in itself, though)
I strongly question the notion that these are taught in college. I went to school for hospitality and would argue that they didn't do a very good job either. In my experience you learn those things on your own, just like you learn to learn independently..independently.
Data structures & algorithm knowledge is practically meaningless for this kind of work. Knowledge of the various APIs and frameworks, although maybe less "sexy", is actually much more important when it comes to actually getting stuff done. If you're building out a RoR/Node.js/React.js/Angular app, somebody with deep experience with those technologies is going to be able to get a lot more done and be willing to do more bitch work (which let's be real, is most work) than a CS major who loves thinking about complex algorithms.
Sure if you're Google hiring a search engineer, go find yourself an algorithms expert. But for the other 99% of us, most of us are getting paid to solve business problems, not technical ones.
If we're comparing the two head to head, I suspect we'll run into a more general nature vs. nurture problem: the ones who want to learn will succeed regardless of whether their means of learning programming was a CS degree or a bootcamp. The ones who aren't taking it seriously will have problems regardless. The interesting part is maybe the degrees of quality within those camps.
I agree with your point about colleges and other skills though.
The bootcamp I attended focused heavily on this aspect. All sprints were pair-programmed, and there were 3 group projects. They lectured repeatedly on team dynamics, feedback methods, agile workflows, etc. Furthermore, applicants with extremely poor soft skills wouldn't make it into the program.
If both of these screened avenues of entry to software development are as promising as these metrics indicate (each with their pros and cons) here are some potential larger takeaways for companies:
1) Invest in the continuous development of your employees, regardless of their background and seniority
2) Hire for teams, and diversify teams with both CS and BC grads
3) Hire more people in general (maybe on a probationary period)
Fit to small teams with the goal of cultivating experientially diverse teams, and spend significant time developing employees - junior and senior.
Any intellectual work should involve continuous learning and development. If the company's focus is restricted to current projects, or on the bottom line, or if managers enforce strict division of labor, an organization will warp to optimize for those metrics and become less adaptable to inevitable changes in the market (or within the company) and the company will fail to compete - or at minimum incur major opportunity costs.
What these metrics suggest is that if you take relatively successful candidates and invest in their individual development, both in depth and breadth, that investment will pay off. You'll create engineers who find better solutions to problems and - more importantly - who find better problems to solve.
How i usually justify this (anti)pattern in hiring for myself:
For startups it's hard to think/plan/project further ahead than they are old. Especially if you are measured by short term impact vs spending or long term planning.
1) One candidate had no idea what the terms "Class" or "OOP" even meant. I'm FINE with them not understanding stuff like sorts/advanced data structures, but he ACTUALLY had 0 idea what an int was. No lie!
2) I wish there wasn't such a heavy reliance on MongoDB in most of these programs. Some do have SQL as well, but I feel like 80% of workplaces will be dealing with SQL, so I'm not sure what the focus on Mongo is all about if the purpose of these programs is to make you hireable. I think it's that it's an easier concept to relay since you're working with JSON everywhere already, but I've seen a bunch of people have a very strong bias towards Mongo to the point where they seem to not understand why you even would use SQL.
3) This part might get me in trouble here, but we are a small company in NJ and budgeting 50k for the junior 0 experience position. Most of these bootcamps in Brooklyn or Manhattan instill that you minimum should be making 60k and not to even look for anything else. I disagree with that personally, but I realize it is possible for grads to make this (especially in NYC). I've just come across a few that scoff at us for the pay we have, and I do understand it, but some of my higher ups who don't really feel comfortable with the bootcamp concept don't think they are worth it.
Obviously there are a lot of pros with hiring them as well. I think typically they are the more qualified candidates skill wise. None of the ones we've come across have been a great fit so far though, but I think it's because of how close to NYC we are. These programs are based there, and we have trouble competing with the salaries there. That's why we have been having more luck finding college grads from the NJ area though, they don't have these kind of higher expectations.
2) LAMP stack is still probably the safest bet (substitute PHP for Python maybe), but yeah, just because it's the current hotness for a few startups doesn't mean it'll get you hired to know the most hyped tech.
3) Stop looking for candidates from Manhattan, or only hire those looking to move who have done just a little bit of research? CNN's COL calculator shows $100K in NYC is equal to about $54K in NJ so you don't seem too far off base for what you're looking for (http://money.cnn.com/calculator/pf/cost-of-living/). From personal experience their calculations were accurate when I made my move from the midwest to SF. Regardless, again that doesn't sound like a "bootcamp" issue so much as "candidates who can't be bothered to do basic googling/research issue."
I wholeheartedly disagree here, and think it very much is an issue with bootcamps. If a bootcamp doesn't even introduce its students to such concepts as classes, instances, OOP, and basic data types, then it has failed to adequately serve its students with fundamental knowledge and offered a shitty introduction to programming. I've worked to mentor a few people who have come out of bootcamps, and I see this lack of knowledge consistently. When I do, it has never been because the student couldn't be bothered to read or study. It has always been because the concepts were never mentioned and introduced, and thus the student didn't even know it existed, thus that it was something they should understand. Whenever I have introduced the concepts, the students eat that shit up, because they really are interested in learning.
Personally, I think a great many bootcamps are poor places to learn programming because they overwhelmingly focus on web-stack. When you're learning to place shit into the DOM, you don't need to care if it's an int, string, dictionary, array, etc. When you aren't being taught to store your data in an SQL table, you don't become aware of data types, parsing ints, casting strings, coercing one type to another, validating types, etc. You're just being introduced to storing blobs of JSON into Mongo or whatever. Hell, when I started with JS so many years ago, I was rather dumbfounded there was a difference between == and ===. This leads to fresh, potentially valuable developers who don't even know what they don't know. And when that's your starting point, it's a bit unfair to think it's the students' fault. We wouldn't say that of CS graduates.
Bootcamps provide an often too-rudimentary introduction to programming with poor technologies chosen for education. They'd be much better if they sought to teach real CS concepts, not just web-stack basics.
I'm graduating from a Manhattan college Saturday and I would never take less than $60k for a programming job. In fact, I see most people recommending minimum $70k (and that matches my experience based on jobs offered to me). Most of my peers range from $70k-90k based on experience.
IDK where in NJ you are, but I trust that in your area, $50k is a comfortable salary to live on. In my hometown I'd also expect that much because it's a cheap place. You need to make this clear to your applicants (tell them the cost of living). Since you live near NYC then, sorry, most people will take $60-70k and live in the city with maybe a roommate than $50k in NJ even if they end up making less in NYC.
That said there's a lot of people eager to get some experience in their resume, so you'll find someone eventually.
I get it, just kind of writing about my experiences.
The monetary worth as a junior developer is also very dependent on the bootcamp. A decent App Academy or Dev Bootcamp grad in NYC? 60k is a reasonable minimum IMO and a wage below that in NY isn't really livable. On the other hand, bootcamps like GA? Sure, hiring them is more of a crapshoot. None of the NYC bootcamp grads I know are looking in Jersey though.
On Indeed, we get a lot of crossover because of our proximity to NYC. I think we come up if you do a 50mi radius and search junior, not sure honestly. I totally get it, but it's getting to the point where we see NYC on the resume, we pass them aside cause we know we can't afford them. Probably better for both parties.
The issue isn't what the bootcamp grad is worth. The issue is what the next best option is - spending more time job hunting and getting a position that values you better. An $80k/yr offer in SF isn't good enough to convince you to call a halt to the process, not when so many of your peers are accepting offers between $100k and $120k.
I was still learning Ruby at the time and didn't know how to access an object's member (instance) variables. I asked one of the mentors how to do it (I couldn't find the answer quickly from the documentation). He was stumped and had to hit the docs.
That's like a professional C programmer being stumped at how you refer to a variable's memory location.
Funny how far people can get when knowing little.
Can you discuss how you might test for bootcamps overfitting their curriculums to interviews? They definitely would seem financially incentivized to do just that. From a personal anecdote, someone I interviewed was able to code a solution for a problem, but then couldn't discuss how or why they did it that way at all, or solve a closely related problem, which made me strongly suspect that they just memorized an answer. How would you test for this?
I would also be curious to see if there was any way to breakdown bootcamp grads with previous programming experience vs. without and by what they studied in undergrad if they went to undergrad.
I agree that not all jobs require this skills, but then suddenly you get a divided workforce with designers and implementers.
If you hire someone and release them into the wild of your codebase, that's a failure on your part not theirs. New hires are an investment, they shouldn't be treated as an immediate need-based solution. My experience in two fields has shown me that new hires are a drain on resources for a fairly significant time period, regardless of their background. If you're not doing everything in your power to educate your new hires and get them up to speed, THAT'S your landmine. It's your job to get them to learn the fundamentals if they don't have it.
Were you able to see any patterns in the backgrounds of the bootcamp students?
It doesn't seem too surprising that someone with a physics or finance or mechanical engineering background can learn enough programming skills in three months to be productive. But do students without as much prior experience in quantitative and analytical thinking have as much success?
I get asked about how to break into the industry every now and then--it would be nice to be able to point those people to a quality bootcamp.
I think there's a strong argument to make that university programs are too focused on theory, when the vast majority of their students are going to go out and get practical engineering jobs. I don't want the pendulum to swing too far to the practical side, though, because then you lose the long-term benefits of getting a CS degree. Although, schools can certainly buff up their practical material.
Anecdotally; when I participate in hiring, I tend to discount the bootcamp grads. Maybe it's unfair, but my experience hiring them has been that they know how to interview well, and know their tools well, but when you compare them a year in, they're pretty far behind their university counterparts. I see a plateau, where it's hard for a lot of bootcamp grads to move from doing generic web development to designing more challenging systems. Obviously it depends on the individual, but this seems to be a categorical struggle for bootcamp grads with little technical background. A lot of companies really just need more people doing web development, so being open to the bootcamp pool is essential, and ruling out bootcamp grads is silly.
Is there? I found practical programming knowledge to be very easy to pick up due to having piles of theory that back up why it's a good idea, why it makes sense to do so, etc. You just need someone or something to tell you to do it. It's why side projects are such a good idea, you get a great wealth of knowledge just from your own mistakes/failures that will occur naturally as you map theory to reality. But you can learn so much more so much more easily when you have that theory to start with.
What would you see dropped and replaced?
Replaced: At least one class where they have to deal with a decade-old million-line-plus code base, and get to experience first-hand the consequences of decisions that seemed like a good idea (or "the right way to do it") when the code was written. Nothing punctures "too much theory" like a hard dose of the real world.
There is value in being balanced and diversity, but this applies to teams, not necessarily individuals. Not everyone on your engineering team needs to be an architect. After your globally distributed, fault tolerant, realtime, highly available system is designed, somebody’s got to build it. And most startups or software teams have no business even trying to design such a system in the first place.
In the US, my generation was told we all needed four year degrees. We don’t. Some jobs and some roles certainly but the entire population of future adults?
There is an engineering shortage in the US because everyone was too busy getting four year degrees in more well rounded fields. Meanwhile Apple needs tens of thousands of engineers that could have been trained by two year vocational programs that the US was apparently above for our children, and thus cannot meet their business needs.
And yet this data from Triplebyte is incredibly encouraging because while we screwed up the educational policy, it may not be so difficult to fix.
I am fortunate enough to have found Holberton School, which has a two-year software engineering program that emphasizes project-based and peer-learning methods. I appreciate the balance of theory and practical work that I have to complete but most importantly, the flexibility with which I can learn.
The evolution of tech will continue to span out and eventually, these shortages will be felt outside the US.
Would you want graduates of such programs working on the software that goes into your operating system, your car, or other such systems? I doubt you'll find people graduating from these programs working at places like SpaceX or the JPL (unless they're doing some CRUD/web dev work), or even at Apple designing compilers or iphone processors.
Just as an anecdote, my current company hired a couple of graduates of these programs, and they didn't fair well.
Specifically, the average engineer out of either a bootcamp or college is pretty mediocre. But the top 10% of engineers are mostly college graduates and are definitely not bootcampers. This is because the best developers are overwhelmingly passionate about development and have been doing it since high school. If you love programming, you might go to college to get a firmer academic standing. You definitely won't go to a bootcamp—if you've been programming for 5 years, a 3 week bootcamp makes no sense.
On the other hand, when it comes to the bottom tier I suspect bootcampers are a lot better. This is mostly because the bottom tier of CS graduates are atrociously bad. Regrettably, it is possible to graduate with a degree in CS without ever having written a single program by yourself. They slink by mostly through cramming for exams and "collaborating" with peers. My impression is that bootcamps are actually less tolerant of this behavior: you won't make it through a bootcamp without ever programming autonomously.
If you want to make a transition to web dev from say, systems programming, cramming that knowledge into a few weeks might not be a bad way to go. At that point, you should already know how to learn, it's just a matter of sitting down and learning it.
The "practical programming" bit is a little more depressing, though it does ring somewhat true based on what I've seen in real life. How people can spend 4 years programming and still consistently fail at building decent abstractions, I have no idea.
Also, where is the "neither" category? There are dozens of us... dozens!
And in terms of college being the hard path, I'm not sure that it was. I don't know how college helped me with "responsibilities" or "Uncomfortable Decisions". Not to mention the cost of college is pretty extreme, taking on 7k (usually more) a year at a state school would be expensive and stressful. (Real world challenges lol)
I think the solution would might be to step up the bootcamps to be a little more in-depth, and probably take a little longer, like a year at night, or something like that.
Of course 3 months is going to get you running with a solid basic knowledge of your stuff.
In what world would low-level, algorithms and data structures be doable in 3 months?
Point is, I don't think Bootcamps and Colleges are comparable.
It's like being a woodworker and a forester..
There's a place for each and it's not the same positions...
Now, here's my big question:
If your interview includes Practical programming, Web system Design, Algorithms and Low level system design...
What in the nine hells are you hiring for?
Had it been for a trucker position you'd be asking for "driving license, laws and regulations, engine design and car physics"..
For reference: https://i.imgur.com/sh7LJgj.jpg
> What in the nine hells are you hiring for?
Someone who can solve a business problem effectively.
It's not too difficult to shove data into a database, pull it out, and render it to a screen. Nor is it too difficult to pull data out of the db and send it in JSON format.
What do you do when your the performance of your API server doesn't meet customer demands, or you get written up by re//code and get a 1000x spike in traffic?
Let me turn the question around: if you can only hire one person, why would you choose a bootcamp graduate over a CS graduate?
------
Personally, I think the idea of bootcamps are great, and I root pretty hard for anyone who wants to better their situation by going back and learning a new set of skills.
But I have to be skeptical and look at the bootcamp craze, like the outsourcing craze from a decade ago--a way for companies to hire cheap programmers, and a way for bootcamp operators to cash in on the unmet demand.
This is the key takeaway here. I'm working with a bootcamper now and the experience has been pretty bad. But it is a fairly large app, I think it's difficult for him to grasp all the parts, how they connect, and how his changes impact everything else. He can code and make things work, but that's it, we have to make big changes to almost everything he does.
A bootcamper who can focus on HTML, CSS, and some simple code would be fine, until they get some more real world experience. In my opinion college vs. bootcamp education are probably the same after a few years of experience if the person is a motivated learner.
They gave me a smooth and solid ramp-up to the mid/senior I am now.
Being thrown in on the deep end with the expectations that the guy with 3 months experience is somehow wellrounded with the basics of CS is just foolish.
Also, of course, not all bootcamps are equal, nor are all students.
There nothing wrong with a trucker just knowing "driving license, laws and regulations", ... as long as they don't mind being laid off when there's no longer a need for that skill.
You're essentially arguing that it's okay to be a one-trick pony. It's not.
1) IT and the software industry change too fast for that to be anything other than career suicide. What do you do when your tricks become out of date?
2) You're competing with all the other one-trick ponies out there. There are a whole lot of them and that makes one-trick ponies an easily replaceable commodity. Yes, yes, everyone's replaceable in theory but its best to minimize that as much as possible.
I did the WDI bootcamp through GA, and loved the experience. My motivations weren't to become a full-time web dev, but to become a much better, more well-rounded product manager. It's paid off 5x over so far.
There's a ton of garbage bootcamps out there, and it's unfair to lump them all together -- it's unfair that these exist. period. While, you can't replace the deep technical and theoretical understanding you get with a classic CS degree, if your goal is to build web apps, do you really need the formal experience, or can you learn that on the job?
College is largely about transitioning children to adults (we can argue that separately) the personal and professional development that students go through over 4 years is vast. They are becoming adults in many frames, including understand the world and technology as systems. They aren't just learning to code, they are learning how to think.
To the extent that I know (warning: anecdata) Bootcamps presume a lot more worldly knowledge, attract and expect more grown up students, get students with direct interest in web/software/apps, and are much more likely to get career transitioning students (from the people I know who have bootcamp'ed). They have a much broader knowledge base to build on which will help them in some areas and hurt them in others. I would be curious if Triplebyte has any data they can touch at all looking at that.
Simply said...a 22 year old college student with a CS degree and a 35 year old BC grad may look similar on metrics but function entirely differently as employees in both the short and the long term...caveat emptor, figure out what you need.
Good luck.
I dropped out of high school because I was making good money by 18... kept working, saw my own limitations, and did a BS degree in 3 years, graduating at 26. That was 5 years ago today, actually :)
I see this same distinction in practice, thanks Triplebyte for quantifying it. If I were staffing an engineering team, I'd absolutely take junior engineers from bootcamps and senior engineers with university backgrounds. I like the surgical model from The Mythical Man Month, and have seen elements of it working by hiring junior test engineers of varying technical backgrounds and training them.
I think a BS degree in CS makes a lot more sense when you're hitting the edge of your capability as an independent contributor--many may never need it, some will love going on a few year sabbatical and earning their 'piece of paper' (as I did).
Biggest factor that gave me an edge was I had lots and lots of context for all the content of classes, and I took notes every single day, Beginner's Mind style and didn't try to test past intro classes... even CS 101 with Scheme. I was also able to work on my mentoring/leadership skills with classmates.
Ideal bootcamp:
-css/html/javascript
-angular or any mvvc data mirroring framework
-OOP and ntier patterns
-Stored Procs/ORM/SQL training
-Algos
-Webservices SOAP/REST
The college grads I work with tend to have written a couple shitty programs that don't really do anything, and their "final project" was hooking up a database to a business logic layer.
source: I have taught in bootcamps before and work with lots of new college comp sci grads now.
"Just teach algorithms." Do you have two years to spare to do so? Because I'm a platform engineer and I regularly use the extent of my CS mathematics education to write better code--you'd think this'd just be Ruby slinging, "what sort of math do you need to automate systems", but it ends up being remarkably more than that! But you know what else I use, while doing my day job? I use the lessons from my economics courses. I use the lessons from my sociology courses. I use the lessons from my political science courses. Are you gonna bootcamp those, too? Or are you going to turn out a marginally skilled worker with a worse educational foundation?
The only thing a civil engineer has over a carpenter is physics knowledge. Obviously.
Don't get me wrong: bootcamps are fine for some purposes, but in my experience they (and there are certainly exceptions in that experience, though rare--I'm thinking of a couple mid-career switches here) turn out mostly-employable workers with a shallower improvement curve and a relatively low ceiling by comparison. There are definitely roles for which I'd hire most of the folks I know who've gone into tech via boot camp classes. But, in my experience, those roles tend to be ones that are more junior than I'd other expect for their tenure and unless I need immediate productivity (and why would I be building a pipeline where I need that, but not the wisdom that comes with experience?), I will prefer somebody who is educated and not merely trained. Code and "coding" are stump-dumb simple and filtering for those minor applicative skills would be a disaster. Because I can teach skills, even if it requires an investment of effort on my part (heaven forfend!). I can't, practically, teach how to think.
I think where we are not seeing eye to eye here is that I envision a bootcamper that has a high aptitude for abstract thought, can read quickly, has a good understanding of math, and is motivated to keep learning and read books outside of "class".
If we are talking about two people who both do no outside reading other than what they are assigned - then yes, the college grad will be more prepared for abstract ideas/thought. However, if you take an otherwise smart person who reads lots of books and can learn things on the fly - then I think the sky is the limit.
Every single person in my boot camp class had a college education. One person was a college professor prior to attending. Several people actually had CS degrees that they felt didn't prepare them to do actual practical programming. We also had a lawyer and a couple of people with mathematics and physics degrees as well.
This was the most interesting part to me. I'd love to see more on this.
I've always found it silly to ask algorithm questions of senior engineers. There seems to be an exponential falloff of that knowledge as one gets further from graduation.
- A multithreaded UNIX-like operating system with user programs, system calls, and a filesystem, with reasonable (if not entirely optimal) caching strategies.
- A TCP/IP stack for that operating system.
- An authenticated encrypted channel over my TCP/IP stack with forward secrecy by building a pseudrandom function up to a stream cipher, RSA with OAEP, Diffie-Helman, etc.
- Network services from the RFCs in C (we did a router and IRC).
- A high-level programming language with support for both functional and OO idioms based on the typed lambda calculus with recursion, lists, records, tuples, ref cells, subtyping, etc.
- A lexer, typechecker, and interpreter for that language using parser generator tools, a recursive descent parser, or a shift-reduce parser in a pushdown automata model.
- A formal specification of the evaluation and typing rules and a type soundness proof for that lanugage.
- A distributed KV store with Paxos, Raft, or Byzantine Generals running on my encrypted channel and written in my language (we used 0MQ and were given a 0MQ broker that could be told to drop messages for testing purposes).
- Greedy, dynamic programming, network flow, and ILP algorithms with proofs of correctness and efficiency.
My class work repositories put me about three quarters of the way there.
I'm sure bootcamps can teach people enough to tread water in a dynamic language web framework, and that meets real business needs and adds real value. But college is a chance to go deeper.
I know nobody is paying us to build our own lightsabers. But - and call me old fashioned if you'd like - I think a professional ought to be able to build his own lightsaber anyway.
For the sake of my ego, I'd love to hear that these bootcamp graduates have shallow, fragile knowledge in a narrowly focused area.
I jumped through a few of these hoops early on but since I have a breadth of experience instead of a laser specific focus on one technology, I'm apparently getting disqualified from some of these positions. It's been a really weird experience for me. I mostly gave up, figuring that if I lost my current (good) job I'd have the free time to devote 16+ hours each week interviewing/applying for the types of gigs I want. Our industry is bizarre at times.
It's weird being on the other end. Almost all of my jobs have come from word of mouth and personal networking where I never even needed to interview. I interview and hire all of my engineers by taking them to lunch and just getting a feel for their interests and personality, so seeing how everyone else seems to be doing it has been a huge culture shock.
And that matters. A big part of what you've learned in 30 years is mistakes not to make. It's the bugs you don't write, and the bad architectures you don't build. That makes you a much better programmer, even if you know less about the new shiny than someone who just went through a bootcamp.
Algorithms are commoditized into libraries. Web design has been commoditized with templates.
Open-ended programming is still more complicated, but putting apps on the web today is easier than static HTML just 5 years ago. Parts of programming will continue being commoditized.
So if it's easy to create something and put it out there, the great and all-important challenge that faces developers today is making it matter.
This class is an elective, which means that students aren't expected to know HTML/CSS/JS before taking it, though the core CS classes (Java, C) are prereqs. This also means that students who don't take 142 could quite graduate without having any practical knowledge about web development.
That said, it's not because the CS students couldn't actually learn practical web dev, and as others have said here, the best bootcampers are often folks who have a STEM background already.
[0] http://web.stanford.edu/class/cs142/
[1] http://web.stanford.edu/~ouster/cgi-bin/cs142-winter14/index...
College is not just about learning to code. You also learn to deal with professors and how to get the best grades out of them. You figure out how much you can drink without the glaring hangout that interferes with your morning philosophy class. You sign those forms to get credit cards that haunt you till you have a job. If you're smart, chose a good college and get really lucky, you might actually learn something and get a job after graduation.
Boot camps are about learning to code, creating networks and passing interviews for tech jobs. You can't pledge, or hang out with the furries, paint your face with your college colors for the football game at the weekend, or struggle figure out if your summer course fulfills the requirement for your social science elective.
These two places of learning can peacefully co-exist and each one has its purpose.
I even think that it would be good for some CS Degrees to walk into a bootcamp to explore something new and expand their knowledge.
Bootcamp replacing college? I don't think so. Not till bootcamps have long lines of students trying to change their course selections at the registrar's office.
There are some options that lie somewhere in the middle...
lines of code?
first pass code quality?
understanding of architecture?
ability to link user's handwaving to functional product?
To be clear, I agree with you, I just think there are tasks where the CS grads would generally win and those where the bootcampers would win as well rather than looking at this as an overall population comparison. No one size fits all, as others mentioned, its all about identifying your need and filling it with the right person not just the right education.
I feel as though you are attempting to lower the bar of what is acceptable in order to sell something :). The word 'practical' is thrown around in this article without much of a definition. Are we talking about making simple web pages?
I've just finished conducting a round of interviews for a junior level position, and based on this experience I highly doubt I will be considering bootcamp graduates in the future. As an example, for a question which involved sorting an integer array, and providing a method GetElementAt(index)....95% of the bootcamp applicants implemented sort within the GetElementAt method so that the entire array is sorted with every single call. A handful of CS grads made the same mistake, but most of them did not. Is this sort of oversight excused in the idea of 'practical' programming? Or in your definition, is this considered deep knowledge?
If you're hiring junior developers without expecting to be hands-on in their work and with plan to train them, then you aren't really hiring junior developers, you're just trying to pay at junior rates. It's not doing them or your business a service to hire them.
There are plenty of CS grads out there with all sorts of algo skills but no practical and will take 3 months + to build anything in your stack. This is basically the same problem with different symptoms: You don't have the resources to hire a junior developer.
It's just way easier to blame the hire than your company.
malkovich,malkovich
- Bootcamp lady was very able on the iOS project we were working on. She seemed to know where things were in XCode, and she understood Obj-C and Swift (no embarrassing questions about what classes are). She didn't seem to know about other environments (and said so), but we were doing an iOS project.
- Ivy league guy seems to have touched every common language (c, c++, Python, HTML/JS/CSS, R, and more), along with common tools (vim, pyCharm, tmux, gcc, VC++, laundry list). I was surprised by how practical it was, actually. I thought it would be obscure algorithms the whole way, but I guess they take the theory and essentially force you to learn the practical aspects by implementing things in relevant stacks.
- Bootcamp lady was very good working in our little MVP team. Understood how common management ideas like Agile work. Conscientious with looking at the Trello board, asking questions in Slack. Not sure if this is just her personality, or because they tell you how software teams work.
- Ivy league guy had lots of group projects, but they tended to be dysfunctional. There was always someone shirking. Some people had no clue what was being built or how to compile it. There didn't seem to be any management oversight, just blind "let's get this piece done" type organisation.
- Degree guy has way more breadth. He was routinely looking at machine learning, implementing demos with scikit, setting up VMs for himself, looking at assembly, looking at SQL optimisation, and other diverse tasks. Bootcamp grad didn't need this stuff, but also would need significant training to get to that level.
- Ambitions were similar. My background is in financial code, and they both want to do that. Bootcamp grad has quite a mountain to climb, particularly with things that take more explanation than MVC. She has a good attitude, so if someone would teach her she could do it. My brother is better positioned though, and would need less teaching to reach the same place.
Or, if I may suggest, a low-level/algorithmic bootcamp.
It's important to note that this is just my initial inclination. I have no expectation that there won't be instances of boot-camp hires being better than CompSci hires in cases. It really comes down to the particular person, and hopefully any hiring process would do a decent job of evaluating each person.
This isn't to say that all CompSci graduates are good programmers (clearly they are not). It also isn't to say that everyone coming out of a bootcamp is bad (they are not, I recently hired my first). But when painting with a broad brush bootcamp's right now seem to mostly churn out students who are sort of comfortable with syntax and very basic logic, but not much else.
I'd be interested to see this article go farther. What do these cohorts look like in two years? Does that fundamental knowledge gap hold those bootcamp graduates back? I suspect it does, but I have very little proof but my own intuition. I'd love to be wrong.
They have a hard time identifying non-functional requirements, assessing and mitigating risk, and start getting confused when things go low level.
In my experience, all "friendly" technologies have sharp edges somewhere, where you start getting exposed to low level issues. When you face these issues, there's no guarantee the answer will be in stack overflow and you will appreciate having learned some theory.
Now companies can use people from bootcamps for such kind of jobs and use CS grads for deep and high level stuff. Surely some top bootcampers will be able to do high level stuff too.
Don't forget -- universities are also research institutions, while bootcamps are not, and the coursework will reflect this.
All of these courses were optional, but the school was very clear about their purpose: to give their students job skills. Most of the recruiters that came to the campus job fairs knew which of these courses they wanted their interns to take and would ask specifically, "did you take CS___"?
Obviously there was tons of research-oriented classes too, but those targeted jr/seniors.
Solution: hire a college grad and send them to a boot camp.
Now, what bootcamps aren't going to give you is the breadth of a CS degree. But if you're getting a CS degree just for the money, you're not picking things up very well either.
So, I can see where a certain % of CS students and bootcampers are roughly equivalent.
I feel if you're very interested in CS and get a college degree and do really well in college, you're going to come out ahead of someone taking a 3 month bootcamp. I also feel there's more opportunity for CS degrees. ie, one probably isn't going to see too many 3 month bootcampers doing real time development. (I'm talk real real-time, not that buzzword web real time.)
To my knowledge only the top tier of american colleges (MIT, Berkeley, Stanford, ...) come close to that achievement. But, in France, where I live; I had the opportunity to go to a private school "specialized" in computer science (Epitech, 42, if you wanna look it up), that was mostly an "enlarged bootcamp" from year one to year three. It was kind of funny, for me, when my peers from traditional schools ended up discovering version control in their final internship.
[1]: Once you replace the shitty paper exams by actual projects in programming classes, you'll be amazed by how much you'll increase student proactivity.
One thing I am curious about is, does a bootcamp make you proficient enough to avoid those mistakes and contribute directly to the application? I am pretty sure, it could have been a lot of help if someone could point out the mistakes I am making in my code, but I am not sure if it would have been enough.
This is completely normal and I expect this out of any junior developer hire. My brother-in-law went through a boot camp and picked up a job writing unit/integration tests and he makes the same errors. Having to maintain your own code and seeing the consequences of your decisions gets you over this hurdle. I've seen the same for junior web devs coming out of agency work.
There are some diamonds in the rough and some bootcamps are better than others but in general I'd much rather see someone who learned by hacking on things alone than a college or bootcamp grad.
Sure, I could learn most of what I need to know on my own time, but this might be a great way to get it done quickly in a batch and then move on to applying it in a very practical way with my customers.
In my experience, "Product Manager" is a much better term for someone who's responsible for and guiding the development of a software product, but who doesn't have the technical skills to do the development themselves. Architects who are respected earn that title by working to gain lots of experience doing development.
In college, most people don't declare a major until their Sophomore or Junior year, so the idea that competition is a 4 year degree is a bit misplaced. Code Schools don't teach music appreciation, though there are a lot of musicians. Bootcamps offer an intensive at 40+ hours a week vs. a two hour class two days a week.
Can you deliver skills based training in 10 weeks? The placement rates would say yes. Do some schools focus on placement while others focus on taking tuition... That's true as well.
Look to find the school that has a placement track record.
A degree improves the chances of this. About half of what I do is teach these things, on the job. Just being able to classify a systems error can be daunting - is it a show stopper, or an ignore, or something in between?
I see bootcamps as being fine for getting people into seats, but the rest takes a long time.
Finally, employability and what (IMO) CS/programming should be about are diverging rapidly. This was not always so. This is starting to be a real problem.
I'm hoping this will be an easy to read algorithms book for bootcamp grads. Here's a sample chapter for anyone interested: https://manning-content.s3.amazonaws.com/download/f/a75f93d-...
- At what rate do bootcamp grads vs new grads get offers (intro --> offer at portfolio companies)?
- Is the above metric significantly different for different classes of companies (either segmented by company size, field, or "CRUD-eyness" of company?
As a former hiring manager at a "much harder than CRUD" company, I remember looking at some bootcampers and saying "I wish we could interview these people, but the knowledge gap is just too significant".
All those concepts that they teach in CS isn't about knowing the name of an algorithm, it's about thinking abstractly. I honestly don't care if a recent grad knows how to use IDE x or even much about source control. I can easily teach them that. I can't easily teach a person how to understand pointers or pass functions as parameters. I don't need someone who can write code; I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract level. It is very hard to achieve this in a 12 week course. Can some people do this? Sure, they may have the background from a previous career that aids them in this, but they are the exception and not the rule.
I do agree with you that CS degrees are very valuable, though it seems like you are saying that they are important because they teach problem solving and abstract thinking - but aren't there many ways to obtain those types of skills?
Everyone says they don't just want warm bodies to type code, but lots and lots of places actually do just want warm bodies to type code.
Since this is what wins average-case jobs, this inevitably is what average-case products of bootcamps and universities tend to look like.
I actually had a pretty long debate with a professor friend of mine who taught me numerical analysis as an undergrad. Their whole scientific computing program has morphed into this awful mess of basically just teaching various Hadoop tool APIs and Spark. As an alum, I am in concerned.
He hates it too, and feels the students are not getting anything resembling a good education in scientific computing. But at the university's considerable career fair, where the faculty actually spend a lot of time talking to recruiters and employers, all they hear is we want more people who already know framework X, library Y, etc. They don't care if you even know what LU decomposition is, what issues there are using power method for eigenvalues, let alone anything about the actual hardware specification for basic numerical types and issues with precision. I mean, they don't even care if you have the slightest fluency or naive understanding of that stuff. Literally zero understanding is fine, as long as you have memorized sections of certain APIs that they use and you will not complain if your job is drudgery related to rote usage of those APIs.
Since this is what wins jobs, it's what they teach.
I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming.
There are lots of good jobs for people who can program effectively. There are also lots of good jobs for people that can think abstractly about CS problems. These jobs don't always overlap.
You're right in that bootcamps are not a replacement for the traditional CS degree. There are things you can do in a 4 year research institution that are difficult to do in a 12-week program. It's probably more fair to compare a University program to a bootcamp + 3.9 years of working professionally.
It also almost unfair to call the CS degree traditional. Of the STEM degrees, it is probably the newest and least understood. Bootcamps are wonderful since they help people get awesome jobs, become amazing contributions to society, and in turn will continue to help the CS degree through its identity crisis.
I spent years programming as an amateur/hobbyist and I thought I knew it all. When I started studying discrete maths and functional programming at the university level it opened my eyes to a lot of things. Suddenly computers weren't hardware they were just implementations of a theoretical idea where many more things were actually possible than I had ever thought of before.
Once you know even elementary discrete math such as sets and logic programming becomes more of an exercise in seeing if you can realize abstract ideas and models.
I do wish CS gave me a better more practical mindset around real world problem solving though. Maybe there are some things you can only learn in the industry but it took me awhile to adjust my attitude and really become a productive programmer.
>"Boot camps have their place, but they are not a replacement for a traditional CS degree" //
Don't they teach different things. Boot-camps teach programming and CS degrees teach, well, computer science. Do boot-camps really address things [that I imagine CS degrees cover] like information theory and algorithm design, Turing completeness, language design and such? I imagined they chose one or two programming languages and taught the craft of program implementation?
I'm not a programmer but have learnt the very BASICs (lol!) of a few programming languages, in doing that I've barely touched on any CS worth talking about - normal forms in db design and comparison of a few different sort algos would be about the limit.
I always thought CS vs. programming was like physics vs. engineering?
Given how long it takes universities to update course materials, I'm not sure they can compete with this kind of education programme. It's true that a lot of the fundamental computer science is missing but with senior devs on the scene, any gaps can be filled with an afternoon around a whiteboard.
They shop their students and curriculum around to employers all over the county (some on an international level).
There is going to be a lot of inertia involved when it comes to hiring from Universities that most Bootcamps don't even consider or spend time doing. I don't think they give universities any cause for concern, and wont, for some time.
The results make a lot more sense when you look at it that way.
Bootcamps teach students programming, definitely not CS. I highly doubt they could teach a student 4 years of CS material in 3 months.
Surely they've received some applicants in this category.
One obvious reason is because they heavily recruit from elite universities. They have the budget, size, and reputation to make that approach work.
Another reason is because the number of people who have gone through bootcamps likely represent a tiny portion of the programmer labor force. So looking at the percentage of Google engineers who attended bootcamps has to be compared to the larger pool of applicants, otherwise it may not be measuring what people think it means.
Is there anywhere a curated list of good, recommended, worth your money bootcamps?
if that's not enough, revise the whiteboard question.
What, they bred the capacity for abstract thought into you in college?
College attracts a generally higher quality applicant pool. You're mistaking selection bias for an effect.
Let me tell you, I've interviewed programmers from all over. There are boatloads of people with CS degrees with close to zero capacity for creative thinking. There are also boatloads of CS grads who can barely code their way out of a while loop (true story!).
I've spent my career (no CS degree!) working alongside CS grads. I've gone further, faster, than most of them. I've had to deal with this kind of idiotic commentary over and over again.
CS grads are always surprised that I never got a degree (oh, I never would have guessed! you're different, its those OTHER people without degrees who are idiots). Four years of school + the associated debt creates a big incentive to believe that you got a square deal out of college.
> What, they bred the capacity for abstract thought into you in college?
> I've had to deal with this kind of idiotic commentary
Please edit this sort of name-calling and abrasiveness out of your comments to HN. It breaks the site rules, degrades the discussion, and provokes worse. Your comment would be much better without it.
We detached this subthread from https://news.ycombinator.com/item?id=11732185.
It's not that four years of study guarantees capability, but four years of study does mean far more exposure to far more technology and methodologies than a 12-week bootcamp can offer.
In my experience, boot-camp and self-taught developers have a different set of skills from a CS graduate. The former could well be very effective at lots of development tasks - but I have found that knowledge is often shallow, in that while they may practically know about, say, implementing a web application in Rails, they would struggle with a different toolset.
This is obviously not always the case, and there are many talented self-learners out there, in part because they aren't as lazy as the somewhat more entitled CS graduate. But contrary to the popular trope, I have rarely if ever encountered a CS graduate who can't code.
Even so, given the top 10% of their respective classes i'd easily take the CS grads over the bootcampers. Mid tier could go either way. Bottom tier i'd take the bootcampers.
Of course, it may well be that much of what you learn in all that extra time in a CS department is not that important to the typical working programmer. And many people pick up a knack for abstract thought somewhere other than a CS program.
I'm sure it's also true that a CS education often fails in instilling the deep knowledge of the topic that it is designed to. Lots of students are just not that bright, or don't do the work. And sure, selection bias surely has some effect. But it doesn't change the basic fact that you can learn more stuff in four years than you can in three months.
The fact that you consider yourself to be superior to most of the CS grads you've met is just the worst kind of anecdotal evidence. (Did you also do a lot better than the bootcamp grads you worked alongside? How do you know you aren't just more competent than the average student in either program? How do you know that the CS grads you've worked with are representative.) Meanwhile, the very post you're commenting on presents real data to suggest that, whole bootcamp students are just as good as CS students for most practical purposes, they typically lag far behind on knowledge/understanding of algorithms and data structures.
I really don't mean any of this as an insult. I have no doubt that you really are more talented than most CS grads. And in your case (and perhaps in many other cases!) perhaps it really was a smart move to save your money and skip college. But you've given the rest of us very little reason to think that your experience generalizes.
And by the way...
> Four years of school + the associated debt creates a big incentive to believe that you got a square deal out of college.
You could say the same thing about not going to college.
(I myself do not have a CS degree.)
> I've spent my career (no CS degree!) working alongside CS grads. I've gone further, faster, than most of them.
So we should replace selection bias for confirmation bias?
It's hard to read your reply as anything but reactionary and defensive, given that you paint the stance of the original comment as far more pro-college than it comes off as to me, only to knock it down with an anecdote about yourself. The original comment was about boot camps vs colleges, not colleges vs work experience and self-taught people. A twelve week course is not a substitute for four years, even if it is intensive. There's just not enough time to reflect on what you've done or be exposed to enough different concepts in depth to be equivalent.
That's not to say that experience doesn't trump both. You have experience. which accounts for your skill level. College and boot camps both try to impart experience at an accelerated pace, college just attempts to be broader and deeper over a longer period, while boot camps must necessarily by very narrow due to their length, any increase in the breadth of topics will necessarily reduce depth.
> CS grads are always surprised that I never got a degree
Then I imagine you are referring to fresh graduates. From my experience, there's quite a high percentage of non-CS people who do software engineering, you quickly learn to drop your preconceptions lest you be continually shown ignorant. I don't blame college graduates for this, they've yet to experience most of the world.
Will Hunting was right about a library card, but many -- I think most -- people require the discipline imposed on them by a university setting to actually do the work. Obviously -- obviously! -- you can learn this stuff on your own. But I doubt there are many self-taught programmers who've actually spent hours drawing out trees and solving recurrences and so on. To the extent that you've done that, then hooray for you!
I'd like to believe there's a trend where CS grads think that because they got their degree, they're done learning. I have a handful of friends — with their CS degree — who did exactly this.
But when you're self-taught, it's often out of a mix of passion and curiosity, and sometimes desperation ("man if I could just automate this, I'd have a killer startup!").
While I've spent only a few minutes in a post-secondary classroom, I think it'd be hard to find those qualities in the minds of students.
I consider myself self-taught, I just happened to do a lot of it during a 4-year period. I'm pretty grateful to my school, whose premise is basically: "we're just going to set you up on some smart teams in some difficult situations. Learn your way out of it."
There's nothing inherently wrong with CS degrees, since you can basically learn whatever you want while getting one, but they don't mean anything either.
Not that spending four years at college is a guarantee you understand it, plenty of people don't. But all else being equal, it's a higher probability.
I studied history and philosophy in college/grad school.
my first job in computers was 13 at a local college and I got so much crap from the it team there for being too young and not having enough experience even though I was hired because nobody there could write code well enough to parse dirty data from spreadsheets to pass into spss.
most of my family has a degree and some even teach, but I found it tedious and uninformative and always ended up the teachers pet, helping fellow students, which was fun, but I wanted answers to My questions.
I found the best way for me to learn is complete immersion in a subject, 24/7, read about it, write about it, if it's a language write in it, if it's a technology use it for everything possible and potentially possible. at the outset if you can get answers to the starting questions then that is useful (like training), but once you move out of the basics, in my experience, you will only progress to higher levels by answering your own hard to answer questions, and if it's easy to find answers to your questions, you're not there yet.
break things all day long and then fix them has been my learning mantra for many many years and like the parent poster, I've surpassed pretty much everyone who I've known with a degree in CS.
Yes, it is very hard to believe. Impossible, actually.
> Bootcamps, are intense. Students complete 8 hours of work daily
In-class time is not the gauge for college. Students are supposed to spend at least three hours studying for every hour spent in class. On top of that are office hours with the professor, as well as contact with the TAs or study labs.
If my courseload for a semester is Calculus 102, Theory of Computation, Algorithms 201, Principles of Programming Languages, and Computer Architecture, I don't see how it is different than a bootcamp because a bootcamp is "more intense". I don't know how you can get more intense than juggling these five topics.
> Traditional CS programmers spend significant amounts of time on concepts like NP-completeness and programming in Scheme...But it is not directly applicable to what most programmers do most of the time. Bootcamps are able to show outsized results by relentlessly focusing on practical skills...How to use an editor is something that a traditional CS degree program would never think of teaching.
Ugh.
I took a course in OS principles and then one in distributed systems. The first course covered mutual exclusion somewhat, the second much more. I spent quite a lot of time writing complex Java programs that handled mutual exclusion well. Guess what I am doing today, years after that course? Writing a complex Java program that uses mutual exclusion. I only took that second course because it fit my schedule, but it has come in very handy over the years.
Insofar as NP-completeness being "academic CS", I have unfortunately seen too many bugs ( https://bugs.freedesktop.org/show_bug.cgi?id=3188 , https://sourceforge.net/p/jedit/bugs/3278 etc.) where people did not heed the polynomial growth of algorithms.
They're trying to dumb down what you can't dumb down.
The reality can be seen if you look around a SoMa startup and wonder where all the grey-haired programmers went. Where did those programmers who were in their mid-20s in the late 1990s, programming for the dot-com startups, in an even more inflated market, go? Where are the grey-haired, balding programmers in your company?
And this bootcamp is the answer. Just look at the real estate prices and you know the market has heated up. Naval Ravikant turned down $600 million last year because he said there weren't enough places to invest that. Despite talk of perhaps some cooling since the beginning of the year, things are pretty hot. So get some kid to go to a bootcamp for a few months. They can only get their hands on one real programmer, but they can hire a few of these bootcamp kids to do a few MVP's, or maybe code some features up, which the real programmer will have to fix later.
What happens to these kids later, who have no foundation in what they're doing, who have no deeper understanding of what they're doing?
> programming in Scheme...How to use an editor is something that a traditional CS degree program would never think of teaching.
That's because a traditional CS degree program teaches you to write your own editor if need be. Stallman went to MIT and wrote Emacs, Bill Joy went to Berkeley and wrote vi.
What the hell point is there to teaching an editor? I was using Eclipse with Android plugins a year ago, now I'm using Android Studio. University is to teach concepts which will exist decades from now, not the Javascript library framework du jour.
The ones who will make out on this are the bootcamps, and the companies who can use these kids when the market is hot and will dump them when their usefulness is over. Just like what happened in 2000 (or 2008). You'll see what your bootcamp and two years working at a failed startup amounts to when the economy cools, job listings dry up and the posted ones say "BSCS required". Being able to cut and paste from Stack Overflow and use frameworks other people wrote and extended is not an educational foundation.
There are a lot of strawman arguments on the other side. Yes, the hardest working, brightest bootcamp graduate is probably better than the laziest, dullest person who managed to graduate from some third-rate college and get a CS degree. And so forth. None of that detracts from the point though.
At launch, there was a lot of pent up demand. 400 people applied for a Ruby class of 25. Most that took that first class had been self taught and in the surveys said they had been hacking at projects for an average of 18 months. Code school was a way to speed their path into a professional developer role (note developer, not engineer).
The majority of students today already have a degree and are looking to switch careers, average age of ~30. They are looking for skills to transition so in that way, going back to college isn't an option unless it's for advanced degree. The same is true for the veterans that are transitioning to the workforce, they have been in a very structured environment and want to speed through job ready training vs. four more years at college.
"Stack switchers" tend to be the top of the compensation range. If you have 10 years of .Net experience and want to switch to iOS. You'll earn top dollar. If you don't have much real world experience you'll land an entry level JavaScript job with that skill.
The needs of hiring companies has also shifted as the market has matured. There are more "code school grads" in the market looking for jobs, so the process of screening needs to be better, interviews need to be improved and tools like triplebyte.com improve transparency of skills. Hiring Junior developers has never been the preference for employers. Everyone would rather hire both skill and experience. But when you're competing with larger companies in a hot job market, you'll often take Junior talent that is a good culture fit.
By culture fit I mean a combination of past education, work experience and new skills. Combine that with work ethic and desire and you see why most of the strong code schools have a high (90%+) placement rate.
Curriculum have changed as well. Code schools have to be teaching at the front end of the hiring demand. Teaching an old tech stack where job postings are heading down won't work. Review StackOverflows recent survey if you're curious about stack preferences.
Code schools are also required to be licensed with each state where they do business. That's a requirement not all schools follow. It's really about consumer protection in that way so check with your state.
The industry is still immature and you're correct that there isn't any reporting standards, e.g. are placements rates reported at 90 or 180 days past graduation, etc? We're working with a number of companies like the Iron Yard to standardize on reporting and moving to audited results over time. I hope that someday we can apply the same placement rate standards to other academic institutions. As a dad of college age kids that would be amazing (note the White House tried that two years ago with a scorecard and the Universities said no).
Regarding the debate of should everyone learn to code or no one learn to code? It's a skill, it's not for everyone. It's a job that isn't for everyone. There are a lot of online resources, information sessions and one day courses, start with the low risk version and see if it's for you. With an average starting salary of $71k in Seattle, the compensation appeal is a strong draw for people outside of the tech industry. You may be drawn to the compensation just make sure that you are also drawn to the work.
Nothing can replace a 4 yr degree with basis in theory and multiple subjects but bootcamps offer people a way to jumpstart a lagging career or make a step into a new one. Being hirable in this industry is saying something, and that is what a great bootcamp should do.
That being said bootcamps are teaching current real world and career-like solutions. Many argue that you don't actually get the real-world experience in CS 4-year degrees due to behind the time curriculum (due to long approval processes that coincides with accreditation) and long and sometimes boring lectures without a lot of application. Bootcamps take a flipped classroom, hands on, and immersive approach. Less lecture, more project-based learning.
Many developers fall under the 41.8% group on the recent StackOverflow study of self-taught developers. A very large number of developers in the market are finding their skills in very non-traditional ways. What many CS grads learn is undoubtedly useful, I would never take anything away from that, but with software expanding into so many different fields, blurring the lines between who was traditionally an "engineer" and who isn't, and with the increasingly rapid pace at which languages/frameworks/best practices are constantly changing, there are a lot more opportunities to contribute in code than by cooking up advanced algorithms with linked lists.
In fact, many of our partner employers were frustrated by the lack of applicable, modern technology competency by the CS grads they were interviewing. As only one piece of anecdotal evidence to this: we've had various CS grads take our programs because (as they described) they only learned languages that were not anywhere to be found in the companies they were interviewing with.
Companies are starting to recognize that those who apply themselves in a bootcamp are able to learn quickly and adapt to new technologies and projects easily. Employers are looking for someone to get the job done with the skill set that matches the technologies that they practice. Many employers don't care if employees have acquired that skill set in a garage when they were 12 years old, at MIT, or at a coding bootcamp.
But, bootcamps aren't for everyone, you really have to apply yourself and consume content quickly. But if those requirements are met, bootcamp attendees really can excel! I know because at ours we have had so many success stories just like the afore mentioned where a student truly applies themselves, lands an amazing job, or starts a hot tech company and truly changes the trajectory of their life. Plus it happens in a tenth of the time of a 4-year degree and at a fraction of the cost ;)
Bootcamps offer a more personalized mentoring. Being able to see delegates, resonate with students emotionally, pick up on subtle nuances of communication and respond appropriately is the very essence of education. I believe passionately that training and coaching are not about getting something from one head to another, but are an intimate dance that transforms both parties.
I hope that helps a bit.
It's cheaper to have somebody who doesn't have a real education.
I don't think that a traditional CS degree makes you code enough to become a good software engineer. I certainly wouldn't have gotten enough practice actually writing code if I just did my coursework and didn't dabble in other things, like game development. Let alone other practical skills, like debugging/profiling (barely touched upon), source control (likewise), testing (completely ignored), project management/estimation (noop...).
I'm still amazed and horrified that I took a Data Structures and Algorithms course that required nothing beyond proofs and a little pseudocode - not a line of actual, working code. It could be tailor-made for really understanding memory-management or TDD.
Of course not. Why would they ever do that. It falls into the same bucket as version control. It's useful, but go learn it yourself because it's not that hard.
significant.