Hacker News new | past | comments | ask | show | jobs | submit login
Bootcamps vs. College (triplebyte.com)
391 points by kwi on May 19, 2016 | hide | past | web | favorite | 435 comments

There are several factors that don't enter this analysis.

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 have a different perspective on point 5. One of the things that attracted me to Flatiron School was their audited jobs placement report. Very detailed statistics about how many students graduate, how long it takes them to find jobs, and how much they earn. I've never seen traditional colleges hold themselves to that standard of disclosure.

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.

I understand and appreciate the perspective. The items in my comment address the industry rather than particular schools. My doing so was probably a result of matching it to the level of granularity in the article.

My girlfriend did a bootcamp. It was a very useful experience, and overall we would recommend it.

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.

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

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?

Which bootcamp?

This was MakerSquare SF, last year.

Any university that does "holistic admissions" is selecting for cultural fit to a lesser or (often) greater extent. This includes "flagship" public schools like Berkeley and UCLA. Other public schools have to admit some number of students based on objective measures (ie top 10% of their high school class), but "holistic" factors still pop up for the rest of their students.

Yes. Also some featured students are college students. College and bootcamps are not mutually exclusive.

I'm even considering a bootcamp after graduating university for the reasons that this article points out. I feel woefully inadequate when it comes to practical programming skills.

I'd also love to go to one like Maker Square after graduation but sadly they cost a lot.

Strictly speaking, if you have a degree you can learn all of that on your own.

How are bootcamps any different than vocational schools?

They're not. I've said this before [1], but bootcamps are training programming's equivalent to the technician. Techs have a very needed place. A technician can become a master of a trade, and with experience design something that's awesome (see motorcycle craftsman). However, a technician will likely not design a Turbofan engine from scratch.

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

[1] https://news.ycombinator.com/item?id=10797765

I came to the comments to see if anyone had already commented on the engineer vs technician aspect of this. My experience is that the divide is much more established in the Mechanical Engineering world, where the difference in what you learn in school and the role that you play in industry is much more pronounced as a result of having e.g. a B.S. in ME vs an associates degree in something like Engineering Tech.

My understanding of the divide is roughly, "I may not understand all of the theory, but I have a practical understanding of the formulas and how/where to use them to get the job done" vs "I can design a Turbofan engine from scratch".

Since moving to software, it seems there's little preventing anyone who can sling some code from calling themselves Software Engineers, for better or for worse. Personally, since my programming skills are all self-taught, I feel like a technician in my day-to-day work, but I also feel the pressure to present myself as a software engineer for cultural and professional reasons.

Unfortunately, it seems the closest term we seem have to describe something like a "software technician" is the pejorative "code monkey", which doesn't do justice to the actual role of technician.

> Since moving to software, it seems there's little preventing anyone who can sling some code from calling themselves Software Engineers

In many countries to do that, you need to have a certified degree by the Engineers association (or whatever is called), otherwise you can be charged for doing so.

well said.

I fully support the development of a "software tech" career that isn't - at least at the start - "software engineer".

So where does one go to train as a software engineer? Many four-year computer science programs train you to become a CS professor, not to work in industry, which would be fine (most "soft" degrees do the same) if they didn't pitch their CS degrees as preparing you for an exciting and lucrative career, more like a law or medicine degree than an art or philosophy degree.

I made some really valuable networking connections in college that helped me get my first several industry jobs--which is good, because I sure as hell didn't have any practical skills to sell myself with. Fortunately I was able to learn up on the job and get the skills I needed (at the expense of my first job's production schedule, sadly), but I was pretty unhappy once I realized how little I'd bought with all that tuition money.

To the university, of course.

In Portugal, our CS degrees are called "Degree in Software Engineering" and have a mix of everything that is relevant to the world of computers.

If you want pure CS style math, then you need to take a degree in Mathematics with computing branch.

Also we do have an Engineers association that validates which degrees are allowed to call themselves as such.

We are not alone, most European degrees are like that.

I personally like Computer Engineering as a degree for this reason. I didn't take some of the higher end theory classes, and spent time in a lab making a chip do what I wanted, when I connected it to some device. I still remember the day that "multithreading" suddenly made sense to me, after spending a night trying to debug why i couldn't properly take characters off of a serial port and do stuff with completed strings on a network port. :-)

I'm not sure what this means. Do you think there are smart people who would or could be good developers who did not major in computer science and later went on to attend a 'bootcamp'? Do you think it's possible that developers who are not good could graduate from college with CS degrees?

Are you implying that being a programming "technician" is equivalent to being a bad programmer? Nobody has said "good developer" before you did.

I think the point is not to base the "goodness" of the developer on the person themselves - of course there will be people who 'get it' and excel at programming whether they go to bootcamp or college (or are self-taught for that matter), just as there will be people who don't get it, and they can just squeak through either program.

The point is to recognize that they are taught different (but overlapping) skill sets; skills that are hard to differentiate and could - from a business perspective - yield the same final product (user clicks button, correct things happen).

I interpreted it not as good/bad programmers, but as the level of project you might ask each person to complete.

A technician might be incredibly good at doing things like hooking a mobile app up to a REST API, building database frontends, and building on top of an established system. The engineer on the other hand is able to do all of the above, but is also someone you could trust to give a high level overview of the system as a whole and expect to come back with a considered approach to implementing it, taking into consideration things like fault tolerance, how an operations team would interact with and monitor it, and where to make tradeoffs between an ideal implementation and time/money limitations.

At least in my mind there's nothing to stop a sufficiently motivated technician learning the necessary skills to be considered an engineer - its not about credentialing, but about having experience that could come either from a college course, or just from working in the field for long enough to have picked it up.

Exactly. I'm a self-taught mostly-backend web developer and so I know a variety of related languages, I know the standard tooling and best practices for both front and back end, I know things like OO patterns and project architecture so that I can create sensible structures when writing a new system, and I know enough about the ops side of things to be able to do a lot of that when needed. All these things are practical and necessary to my day to day work.

On the other hand, I do not know basic things CS BS-havers learned, like how to implement a bubble sort from scratch, because that is not something that has ever been relevant or is likely to ever be relevant to my day to day work (outside of one-off interview questions from companies I likely don't want to work for anyway if that's their interview process). Algorithm design and high level math is the foundation of CS as a science and as a degree, but it just doesn't factor that much into writing code in a high level language for an established platform like the web.

And having a CS degree is no guarantee that you won't put an expensive call inside a loop or write monolithic functions or any of the other terrible practices I've had to train out of junior devs.

Your distinction sounds just like a junior developer compared to an experienced developer.

I was (I am?) guilty of that mental prejudice. A buddy poked me in the eye on that once, and now I make a conscious effort to realize that they're separate things as you've laid out here.

There really are multiple overlapping skill sets at play.

> Do you think there are smart people who would or could be good developers who did not major in computer science and later went on to attend a 'bootcamp'?

Of course. I know someone that would fit that description, and I don't think he's unusual.

> Do you think it's possible that developers who are not good could graduate from college with CS degrees?

Of course. I graduated with some and work with some. Strictly speaking, learning to write software is just a side-effect of learning how algorithms, data structures, and all that work. Some people never get very good at writing software.

I think you're missing the point, though. College vs boot camp isn't a matter of the skill of the resulting developers. It's more of a focus on different skills. Suppose a technician and an engineer are writing a program together. Maybe the engineer works on the "deep dive" aspects of the design (tough algorithms. the critical path of the program). Maybe the technician works on the overall architecture, wiring things up cleanly and producing an artful design. They're different focuses, and it's a division that doesn't currently really exist in SW dev, but does in some other fields (electrical engineers vs electricians, mech eng's vs various technicians, etc).

A CS degree doesn't make you a coder. Look, CS is born from specific mathematical events in the 19th/20th Century. For some people, a grasp of CS may be a liability - I've been places where it was like that.

The bootcamp thing may work out to equalize load on university CS programs. where us weirdos who were attracted to the discipline for abstract reasons can do what we do, and industry demand for talent can continue to be met through other means.


I rather object strenously to the implied "status" differences between a software technician and a "scientist" but that's probably inevitable. If anything, "shallower" people with good organization skills offer more business value than somebody like me. All I can do is figure out what's really gone wrong, or not make things go wrong to start with. See, even I am using "shallower". I work for people like that all the time, and I admire them greatly.

An analogy is hardware engineers and hardware techs. You need both.

> Do you think there are smart people who would or could be good developers who did not major in computer science and later went on to attend a 'bootcamp'?


> Do you think it's possible that developers who are not good could graduate from college with CS degrees?


The difference is that the boot camp experience seems to provide a different skill set from a full-time degree (see the article that started this conversation).

The name.

The lack of regulation.

Are there vocational schools that offer good programming programs. We were trying to find community colleges in the bay area that had good programming programs where we could post jobs, but didn't really find much.

How does Triplebyte make money? A lot of bootcamps place graduates as part of their process (and is how some of them make money), which is another factor to consider.

Bootcamps charge tuition. They do this because getting placement fees from companies requires consistently referring very strong candidates (a higher bar). They are competing with universities.

Mostly tuition. Some take a placement fee, but most companies don't pay a fee on Junior talent.

No, most SV companies will pay a recruiting fee for any engineers they hire, even junior engineers. This is okay because it is typically a percentage of first year salary - so the fee is less for junior candidates.

There's no particular guarantee that a bootcamp grad will find their job via a bootcamp referral.

Correct. That does not refute my point at all, which was that seattledev14 is mistaken.

I work for a popular bootcamp and can offer further insight.

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.

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

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.

Are there any candidates that come in already with programming jobs who want to diversify or enhance their existing skill for their current or future roles?

Occasionally, yes, though I'd say that 2% of accepted students because people already in the industry have the skills to learn what is needed switch over from say back to front end, or apps to webapps, etc.

Typically these students learn a great deal of soft skills and pair-programming skills while they're here, so I think it's still valuable.

Really good summary. What bootcamp is that, can we know? At least, are you guys based in SV or NY? I'm curious about the placement fees. I always thought there were some placement fees.

Apologies, I like to keep my online and RL identities as separate as possible.

In any case, I can only speak for one bootcamp. I really don't know if all the other ones are doing placement fees.

Isn't not letting C students graduate a good thing?

This probably depends on who you are. Like all organizations in higher learning, the boot camps serve two functions. The first, and what we'd probably like to think is the most important, is the value-adding function of education. The second is to serve as gatekeepers of their brand so that they maximize the marketability of their graduates, and thus encourage would-be applicants to come their way. Ideally you'd be able to offer such a stellar program that you have no one getting C's because they know all the material. In that case, yes, it's great that no one graduates with C's. And employers may not even care that the school is cruel and fast to shed students who are dragging. But for potential studenta, that situation is much worse. The school is much less valuable to students if they achieve their numbers by tough admissions and low retention, because then it's much less likely that the boot camp provides much in the way of education.

I think the point was not so much whether it's good or bad but that by weeding out the possibility of a C student from being in the bootcamp pool to begin with, it means the success of bootcamp interview candidates will be higher than any given college student just because they're better/more skilled-- not because they did bootcamp over university. I.e. you're comparing apples to oranges because bootcamp-educated candidates might actually be a more skilled subset of the overall candidate pool.

Perhaps we should think of graduating as simply 'finishing' the curriculum.

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.

How does the company/school defend its brand against the C students sending out resumes that say "I am a student at RoR' with a certificate" and leaving out the grade part?

They do a better job of teaching them, which is what they are implicitly promising by telling prospective students "all our graduates get six figure programming jobs". If the unspoken caveat is "but half of our entering students were kicked out when we realised they wouldn't get one" then that's a much weaker claim, more like "given five weeks of intensive tutoring we can identify candidates for good jobs".

Same as universities... they don't. Companies generally ask recent grads to send their college transcript.

When I first read your comment I thought you meant the language C.

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

C offers you all the power of assembly language with all the ease-of-use of assembly language.

No way, C is hard to use but it's WAY easier than writing x86 assembly.

Depends on how rigorous the curriculum is. The problem here however, is that although colleges typically are overseen and expected to let c students graduate, bootcamps can set as high a standard as they want.

Only the cream of the crop should get to graduate?

How is this possible?

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.

Ditto! I went to a bootcamp after having worked in aerospace for 6+ years and, I had a mechanical engineering degree. I had programmed for a long time and had no problem with basic algorithm exercises (of the kind they spend the early part of these camps on). [1]

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.

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

Magic is great, until it stops working and you have to figure out why.

for that we have stackoverflow

My first attempt or two learning Rails ended up this way, but I really got it once I had SQL down. In a/A we built our own stripped down, minimal versions of ActiveRecord and Rails. This ended up connecting all of the dots for me.

What is "a/A"?

this has always been my largest gripe about ruby, i like to understand the magic. frustrating when i cant.

> Hey, I can code and think abstractly. Give me a chance?

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 think structured learning is useful for many - the sad part of being an adult is that for most people, their lives become driven by responsibilities instead by curiosity. Sure, you may want to learn programming (and maybe you even have a good economic reason for that), but there are always "more important" things that need to be done right frakin now. Some people are good at self-organizing and can cut out time for learning, but for many, having an external entity create and enforce a structure for learning is a good way to hack one's problems with prioritizing stuff.

That's the point -- I didn't. I just needed it to convince someone to give me a chance. Employers would assume someone still in college for CS can program, and so look there. They don't automatically make that assumption for some rando with a different degree.

To be sure, there were also probably some job-searching techniques that would have worked, but they're also hard to learn from reading pointers online if you don't automatically have the skill.

This was my experience exactly. Aside from helping me pick up a few concepts more quickly than I would have otherwise, I did it purely to get my foot in the door for interviews. It also was a good excuse to just focus on my portfolio for several weeks whereas if I had held a full-time job during this time, it would have easily taken me 4x as long.

It's a super expensive and wasteful way to do this, but I was optimizing for my time.

Did you actually try to interview before the bootcamp though? (Ideally after building a few portfolio projects.)

I ask because I had no trouble getting jobs and freelance work without a degree or bootcamp.

In fact, a bootcamp is usually a strong negative signal for me. I'd much rather hire a self-taught developer than a bootcamper.

I can say with some conviction that I just did not have the self-confidence to be able to do this and pull it off in an interview without going through the bootcamp and (more importantly) meeting several employed junior developers who were significantly behind me in skillset and professional development. I was completely self-taught and had 25 years of programming-as-a-hobby experience behind me going in.

My problem was basically a lack of network and real understanding of my competition in the field and the bootcamp solved that.

I could have saved a ton of money had I quit my bootcamp as soon as I realized this, but I'm still okay with how things turned out.

that works both ways; you hire self taught because you are self taught, just like CS grads tend to prefer hiring other CS grads.

me, i have no preference when i interview a candidate... can you code? and can you solve complex problems? other then that i dont care about how you got your skills.

> you hire self taught because you are self taught, just like CS grads tend to prefer hiring other CS grads.

I like and hire plenty of CS grads as well. I also have a CS degree. It's just bootcamp grads that I steer clear of.

You seem arbitrarily biased against something you think is too "hipster".

In my experience any numerate degree is as good as CS for securing an interview. Mech Eng grad myself.

I worked in chemical engineering roles for 5 years before deciding to attend a bootcamp. It seems like a refresher/shortcut to get into the webdev or programming industry, so a bit myopic, but it at least gives the added advantage of reducing the amount of time traditional programmers enter and gain traction in software development. Sometimes we only know that we love programming when we hate everything else, at least in my case.

Bear in mind that the tech job market is a lot different than much of the U.S. economy right now. There are fields where experienced candidates with strong resumes can go job hunting and hear crickets. To go from that to not really needing any formal credential is a big mental leap.

When I started work as a professional software developer 10 years ago, I had zero professional or educational experience as a programmer. I had a BA in Philosophy, and my work experience was being a substitute teacher.

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.

I think a portfolio is a good thing and suggest it myself, even to people with the educational background. I try not to suggest it as a silver bullet and say it's easy for everyone.

The problem with suggesting this to people who are learning on their own is that building a portfolio takes time. Sure, if you're young and single, you could wait tables and learn to code. But it's more difficult to find the time as you take on more obligations with age.

The other problem is picking the right projects and languages that hold some appeal to the rare employers who will give you a chance. People are also less likely to cut someone some slack for sloppy code, due to lack of experience and knowledge, and other early coder problems.

The last problem is not being able to network successfully to find those less common employers who will give you a chance. And avoiding the bad employers who promise experience, but ultimately have them working as an on-call contractor who just reboots the printers.

Having any college degree helps a lot, but without it many doors remain closed even with a portfolio.

Interesting. I went through a bootcamp recently. We started with sinatra (a slimmed down ruby application framework), then went into rails, and lastly used node+express.

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

Good point. About 50% of the bootcamp folks we work with have some sort of technical background before the bootcamp. The other 50% do not, however, which is really interesting! (I have no idea how this compares to the bootcamp population as a whole. I would guess that folks with a tech background are overrepresented in the group that passes our screening step)

Definitely. I had a wide range of classmates. We had several people that were project managers looking to gain some technical knowledge/communication skills. They had no intention of becoming programmers. A good chunk were designers who had html/css knowledge that were looking to expand their reach. A couple were a drain on my education. My greatest criticism of the programs is that it's an educational boom, so there isn't a stronger filtering process in place yet.

It depends on the school. Some bootcamps have very low acceptance rates to keep their placement numbers high - as that is their main marketing point. They bring in people who can demonstrate they already have the mindset but don't have the knowledge.

Other bootcamps just need you to be able to use your computer and you're in.

That's a path I've been considering as well - had a lot of CS background, hated running Unix compilers instead of working with HTML & C++ (already learned some in HS) - so ditched the major. Went with English, which, you know, is another language 'n all. Got into the working world, still have tech savvy...

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.

Have you heard of CAR (computer assisted reporting)? The field of data journalism requires people who are good at storytelling combined with technical savvy to be able to pull out stories from lots of (usually messy) data - http://www.poynter.org/2005/a-guide-to-computer-assisted-rep...

No I have not and I thank you very, very much for sharing that! I will most certainly look into it. I love the concept as you've described and if I've got an aptitude that sounds like the kind of stuff I'd wake up every day wanting to jump in and work on. Will check it out, thanks again!

I took a pretty significant pay cut switching from an equities trader to a junior developer. I'm more than happy with the lifestyle change. I still find it funny, given my life quite literally revolved around ROI.

It goes to show there are more returns than just financial :)

Right, all else being equal I would expect bootcamp grads to be significantly more valuable than CS majors, since presumably they're also experts in design, marketing, product management, or some other area.

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.

Being good at coding, in the sense of making robust software products that can stably support components of a business, is way more than 20% of the value of a 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.

> 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's almost like having a degree in abstract thinking, designing systems, and discovering hidden requirements makes you good at designing systems to solve complex problems.

Which is what most non-technical work is. Taking an ill-defined problem, and defining+solving it.

>I think one key aspect that is missing is that boot camp graduates aren't straight off the barista lineup.

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.

I have a slightly more pessimistic view of the situation:

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.

Yes, but then I would argue that a mid-career switcher like me (bootcamp here - now employed full time as a programmer for 2+ years) brings a TON of value to your organization. Rather than a fresh-out-of-college person, I have a Master's Degree in my first field, tons of experience working with diverse stakeholders, meeting deadlines, dealing with people I may not get along with, getting to consensus, etc etc -- as well as a hell of a lot of domain knowledge in at least one large field. (In my case I have a Master's Degree in Social Work with a focus on policy research and statistics, but it could be ANY other field than just a CS degree). It's up to your organization to know what they need -- but sometimes what they need very well could be adequate coders that have a ton of other skills rather than people that know more algorithms but don't have any of those soft skills yet.

I think you'd be right in this assessment, especially for those in a position somewhat related to their previous occupation.

(Also, I had been doing HTML/CSS/Wordpress for a decade on the side before wanting to get into backend programming, many of my classmates had similar technical backgrounds with something...)

> Why would I pay them the same amount as a college graduate

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.

Echoing this - my girlfriend, 29, just went through one and the average age was similar. Everyone (but her) had a STEM background / college degree. Abstract thought isn't exclusively taught in CS.

This was a full time iOS program in Totonto.

It's a reaction to the question, "can bootcamps replace a CS degree?", to which these people would say, "no."

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.

> It's a reaction to the question, "can bootcamps replace a CS degree?"

If someone is posing this question, it's not one based in reality. The question is 4 years of a CS degree vs a bootcamp, not 4 years of college vs no college. As I clearly stated, only one classmate didn't have an undergraduate degree. That question is a strawman at best.

I think it depends on the bootcamp. Some bootcamps do market themselves as college alternatives. I spoke with a bootcamp requiter recently and he attempted to convince me that pursuing a CS degree was a waste of time.

I think of bootcamp in the same terms of the finance bootcamp I took coming out of college. It was a 1 month program mandated by my employer as focused learning. Both have been supplements to my undergrad, not replacements. The ones you mention I see more as a trade school, which I think is a different and potentially viable career path. The reason I say viable is because:

"Autoregressive Conditional Heteroskedasticity"

It's my favorite terminology from undergrad. It's from time series analysis. My job coming out of college was as an equities trader. It's hard to get much more time series analytical than that, and yet I never used it even once. Had I gone into quantitative finance, I'm sure I'd use it constantly. 95% of us just use our undergrad as a permission slip to join the real world, CS included. They hand out those permission slips like candy. Most people end up as accountants, not mathematicians. You don't need to know parametric equations to calculate EBIDTA.

It's not a waste of time if it's something you're interested in and you're intelligent enough to use it. It IS a waste of time getting an engineering degree if you think it will give you a leg up on competing for a welding job.

I agree! In my class (I go to Holberton School) the average age is 29 as well.

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.

I hesitate to add this lest I be accused of moving the goalposts, but I'd like to add that the algorithmic and other low-level knowledge is vital to bringing technological value.

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 hate to nitpick but I think music is a particularly bad example here. The vast majority of music as we know it is outsider art. The people I went to music conservatory with are largely not the same people who produce either music that you've heard or great works.

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.

Nope, you're just being a snob. Plenty of "outsider pop stars" (and their songwriters and producers) know music theory just fine and many even went to Berklee/Juilliard/whatever conservatory you're thinking of.

I guess.

I'm actually saying pretty clearly that it doesn't take deep theory knowledge to write great music, which I think counter's the parent poster's point pretty well. And there's a big gap in the amount of theory required to build your career on playing 12 bar blues and on composing for an orchestra. Most conservatory students aren't rigorously studying composition enough to do the latter anyway. In fact, most just want to eke out a living on dull music that hasn't changed in 400 years.

Berklee is not a conservatory. People actually get practical skills there and aren't treated like shit. Nothing wrong with going there. You are much better off doing that vs New England Conservatory, Julliard, Peabody, etc. (Actually the jury may be out after the Boston Conservatory merger, but we'll wait a few years and see)

Wait, he's the snob for suggesting that you don't need to have gone to a prestigious music school to be a well accomplished or well known musician?

Are you illiterate? He's sniffing at pop stars who haven't gone to the right conservatories.

You've got it flipped. I'm saying that having a deep knowledge of theory isn't what enables you to make great music. I am also saying that most working musicians' knowledge is extremely limited and that absolutely makes their work outsider art. That's not saying that anyone should go to conservatory (anything but - if you want music ruined for you by all means go), but yes probably every musician _writing music_ should improve the knowledge of their craft.

I used to work in the music industry. I think your beliefs about writers' knowledge of music theory are way off.

That's cool, don't really need your validation.

I have a doctorate in music from one of the top conservatories, but excellence in music (or anything else) is only about putting the hours in. There's nothing I learned in school that isn't widely available in books, or attainable by transcribing records and studying scores. A good teacher is pretty important but doesn't require the formality of school enrollment.

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.

A large percentage of the people in my bootcamp already had STEM or law degrees or many years of experience in another technical field (like myself)...and in a few cases both.

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.

The people I seeing decrying degrees as credentialism are invariably those out of bootcamps. I get that people may be satisfied with the level of education they received, but why do they attempt to cheapen others' experiences?

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?

A lot of people flat out say "I don't even consider bootcamp grads" when my experience looking at hundreds of my peers is that it's a rare few that have _just_ their bootcamp on their resume. A few in my cohort even had actual CS degrees but wanted practical skill to make themselves marketable. To overlook advanced degrees + bootcamp (+ experience) because they don't have that precious CS degree absolutely is credentialism.

I'm not "satisfied" with my bootcamp education. I had already been programming for 25 years before my bootcamp, but only as a hobbyist, not in collaboration with others and not in a modern stack. I also have a completely self-taught CS background (that I'm constantly filling the gaps in) and find at my jobs I'm the one most interested in the field and the concepts among my peers.

Not at all trying to cheapen the CS degree here.

I agree with you -- it seems totally inappropriate to invalidate a candidate instantaneously due to a lack of a CS degree. That being said, I think a CS degree is, and should be, a competitive advantage.

This is really interesting! I have to admit that I am probably guilty of stereotyping at times (in my own internal thought processes) graduates of bootcamps as individuals from non-STEM backgrounds (e.g. arts degrees, or no formal post-secondary education).

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.

I think certain bootcamps attract certain types, so the circumstances I experienced likely aren't universal across bootcamps.

Usually doing innovative independent work requires a whole lot of domain knowledge that can only be learned once you're in the business. (If not, I'd question the defensibility of the business...) Both a bootcamp grad and a recent CS college grad are completely unsuited for that. That's why they're junior developers; they need mentoring to understand the context of their work, the factors that need to enter into decisions, and the body of proprietary knowledge that the industry is built upon.

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.

From resumes I've seen, bootcamp participants often have some college experience, just not in CS/STEM.

(I do agree that the college experience is more than vocational education and valuable in itself, though)

> the ability to communicate clearly ... how to learn independently

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.

The far majority of paid dev work these days is boring CRUD web work at a very high level of abstraction. Bootcamps (in my experience interviewing some of the grads) prepare you much better for this work than a CS degree.

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.

The issue you might run into is that colleges will teach this in theory, but only the good students will internalize all of those things from their education. Same with bootcamps.

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.

Yea, their analysis only measures the employee value at interview time. It doesn't attempt to measure the lifetime value of the employee.

>The ability to communicate

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.

Companies focus too much on attracting talent, not enough on developing it.

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.

I agree in all points.

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.

I'm in the process of hiring a junior position and have no bias towards college grads or bootcamp grads. The only negatives towards boot camp grads I've seen so far is:

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.

1) That's not really a "bootcamp" issue as it is with a candidate who can't be bothered to learn basic programming concepts or open a book on their own. Almost every book I've read on programming covers OOP in most languages. You can even hack it together in BASH (http://lab.madscience.nl/oo.sh.txt), not that you should.

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

> 1) That's not really a "bootcamp" issue as it is with a candidate who can't be bothered to learn basic programming concepts or open a book on their own. Almost every book I've read on programming covers OOP in most languages.

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.

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

Honestly, if someone doesn't understand these very basic concepts, what's his/her curiosity level regarding computer programming? I would not want to hire him/her based soley on that.

Honestly, if someone doesn't know these very basic concepts exist, the fundamental error of attribution here is passing judgment on them and their curiosity level. If we fail to teach, we cannot blame the students for not knowing they were failed, and specifically how.

If someone goes through and passes a bootcamp, it is fair to be generous in granting them some level of curiosity about programming. If the bootcamp doesn't introduce the fundamentals of programming, that's no more the student's fault than it would be the fault of an art history student to not know what chiaroscuro is if it wasn't introduced as part of art history.

Bootcamps market and position themselves as good alternatives for people to learn how to program and, often, get a job. I see no reason to neglect holding them to their promise.

It's still the bootcamp's fault for not at least introducing them to those concepts. I mean, you can't really google what an int is if you don't even know that an int is a thing.

Oh, bootcamps are certainly failing here, but if I were to google "Computer Science," or "Computer Programming," I'd eventually run into the concept of types.

As an analogue, I learned about the functional programming paradigm far before it was ever brought up in a classroom setting. Sure I knew what programming paradigms were, so maybe it's not a perfect example...

We're not looking, they are applying. Like I said, I understand why they aren't a good match COL/salary wise, just kinda of was writing about how I think it's interesting that they teach what salary they should be seeking minimum. That was never brought up in my BS degree.

Are the candidates aware of the differences in CoL?

I have to disagree with #1. If they don't even know what an int is, that's a complete failure of the bootcamp.

Every number in JavaScript is a floating point number of type, you guessed it, "number."

It's just an IEEE 754 double.

> 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

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.

Totally. I'm not looking for sympathy or an explanation, I completely understand. Was just explaining that most of these candidates from NYC bootcamps are conditioned for NYC jobs, and seem to have very little desire to move out of that area / except different pay ranges. I feel college students are different in this regard. Probably because they live on campus and have to change where they live anyway.

I get it, just kind of writing about my experiences.

You may also get college students who live near your business. I know I'd love to live at home for some time—can save a lot of money.

It really depends on which bootcamp. I finally picked up SQL while at App Academy and while we did use JSON, we spent no time working with NoSQL databases. Backend ended up being my strength and my primary role at my (full stack) jobs.

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.

That's good to hear about the SQL. Honestly, we sort of didn't even bother with AA candidates because I went to the website to check it out, and first thing it says is "graduates earn an average of 89k in NYC". Instantly knew that whatever they were telling the students, we couldn't afford em.

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.

You're right, you probably can't afford them. Salary range in my cohort was 60k-105k, but it's typically higher. a/A grads are in the unfortunate position of having their camp be "free" ($5k deposit) up front and 18% of your first year salary upon hire. They basically have to earn more to pay off the bootcamp. I had to pass on my dream gig (apprenticeship at 8th Light in LA) in part because the debt to App Academy would have meant I was starving in LA (flat 18k if you leave NY/SF).

Some of us optimized for culture fit and life balance over salary. I did this because I was lucky enough to be able to. I earn less than a bunch of people from my group who work 20+ hours more a week than I do and I'm happy with my decision - love where I work, love my coworkers.

I'll let the quality of my work determine the direction of my salary :D

It looks like App Academy is still claiming no upfront cost. I successfully applied a few years ago; despite hearing the "X% of your first year's salary" speech over and over, I was told I would not only need to pay a heavy deposit, but the entire program cost. Kush Patel (the founder) claimed people were bailing after the program and my young age made me a risk.

I can understand those kinds of problems, but waiting until I was accepted to disclose them left me a bit upset. I suggested they update their site, but it appears they still haven't done so.

Yeah they have some hidden terms regarding this and I wish they were more up front about this.

If you are under 21 and without degree, they will require the full program cost up front. Also if you are not a US Citizen, they will require the full program cost up front (for more obvious reasons).

The $5k deposit they also only disclose upon acceptance and it was not something I had planned for but found a way to pay it somehow (I had only budgeted 6 months no income and a 900 mile move back to NYC originally).

These little details regarding payment and also the new internal recruiting company they've started (that works no different than any other standard recruiter and treats their alumni mostly like cattle...) have left kind of a bad taste in my mouth towards the company, but the TAs were amazing and the curriculum is solid (and accepts pull requests!).


Their FAQ seems to have a fair amount of information. Though, it was hard to find from the homepage.

This is a recent addition since their site redesign in the last < 12 months.

I think there is nothing of distinguishing value between all three of those boot camps. Trying to place them in tiers, I assume, is just a form of self-flattery.

While you're largely right, there are pay in full and up front boot camps out there that tend to churn through people and either not care about or grossly inflate their placement rates.

And there's a big difference between "12 weeks of structured curriculum" that you get from the ones mentioned vs the "12 weeks of follow the Hartl Tutorial and meet with a mentor for 3 hours a week" variety like Bloc.

I can definitely see that distinction. We've never interviewed from anyone excluding the three you mentioned and fullstack academy, which all have the same general process.

FA and I think Flatiron School are also in the "alright" category. All of these mentioned are just "alright".

I don't think any of them are really excellent.

I have just met a high percentage of GA grads who aren't successful in their search and give up after a few months.

So what are the excellent programs in your opinion?

none that I'm familiar with.

I know salaries are lower in NYC than SF, but even $80k/yr probably won't get you an App Academy graduate in SF. If it does get you an App Academy graduate, well, we actually talk to each other about compensation so they will almost certainly get poached after 6 months to a year.

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.

Yeah I'm in NY thankfully. I wouldn't even consider taking a job in SF below $120k. I don't know how I'd make it there otherwise.

I'm too old to bother with having roommates anymore.

Funny story: Before I started a camp, I went to a "hack night" where they had professional RoR devs as the mentors.

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.

Your #3 is absurd. Almost 10 years ago I came out of college making nearly that much in a city and state with a lower cost of living than NJ.

MongoDB (MEAN stack) seems to be a recent shift?? Most bootcamps have historically been Rails/SQL.

It is. When I hired last summer the Galvanize full-stack course was all Ruby/Rails. By this winter/spring it had shifted to full MEAN stack. I get the sense that it's an industry shift. (Which I personally find a bit frustrating...)

I think Maker Square does Mongo, not sure. Most I see are still SQL-based as they should be. Mongo isn't used that much... and probably less than a few years ago (seems like it has gotten bad press).

I'm happy to answer any questions about this (I expect it to be controversial). When we started Triplebyte one year ago, I was pretty skeptical of bootcamps. Doing credential-blind interviews and seeing what some bootcamp grads can do, however, has won me over. Clearly there are a lot of bad bootcamp grads (and probably a lot of bad bootcamps). But the model is working really well at the top.

Great stuff Ammon and team!

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.

Interesting questions. Bootcamps are clearly incentivized to do this. However, they do not seem to be particularly good at it. Algorithms are over represented in interviews relative to most jobs, and yet (as our data shows) bootcamps are not very good at teaching this. Now, we are measuring algorithmic skill by asking candidates to actually implement non-trivial algorithms. We've observed that a lot of interviews involve what is essentially trivia about algorithms, and it's possible that the bootcamps are better at preparing students for this (we don't measure this skill so I am not sure). I think that this gets at the answer. If you make your interview go deep, it gets increasingly hard to specifically prepare for it, to that point where preparing is actually becoming a better programmer. Rather than a 30-minute question that covers knowledge of sorting algorithms (easily learnable), have your candidate spend an hour building a collision detection systems using a axis-sorted list of rectangles, and reason about maintaining this sort as objects move around. That's the theory. In practice there will always be some noise.

Do you have any date on job performance? It seems to me the complete lack of algorithms is a land mine for any project. I think it is a lot more likely a coder with little fundamentals will be able to grow or see the bigger picture.

I agree that not all jobs require this skills, but then suddenly you get a divided workforce with designers and implementers.

> It seems to me the complete lack of algorithms is a land mine for any project.

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.

Eh, I disagree with the generalization that all new hires are a drain for a significant time period. In my experience, the rate at which they come up to speed is extremely varied.

Yeah, in my experience we have had interns come in and be amazing right away. New grads can sometimes contribute pretty soon as well.

I don't know, when I was a new grad I started on the codebase more or less right away. Didn't even have code reviews back then.

If you have to train them, then it seems the coding part should be cheaper then the algo part.

> when I was a new grad I started on the codebase more or less right away

I did as well, but...

> Didn't even have code reviews back then.

Not so much this one.

> If you have to train them, then it seems the coding part should be cheaper then the algo part.

I do actually agree. But there tends to be other aspects of the job outside of just code and algorithms. Prior work experience is a shining star compared to a 22 year old in any field. I see my coworkers more than my family. Someone that has a full understanding of everything that goes along with that has a head start across the board. Someone changing careers in their late 20's also tends to put a hell of a lot more into improving themselves than just the basic progress-of-life learning. I just think it evens out as long as you're consciously hiring people for the right role.

I don't know, we pay people to do a job. Sure some coworkers become friends, but most don't. As long as people are somewhat easy to get along with I don't think we should focus too much on other stuff.

I wasn't implying that they should become friends. I meant that the working world doesn't tolerate the "I'm definitely right" mentality that comes with God's greatest gift, the 22 year old college grad. I'm joking about that last part, but there is a certain tact that only comes through time. A 25 year old is much more willing to say "I'm wrong, and I have no idea what I'm doing" than a 22 year old. This alone is a huge productivity boost. Both technical skills and soft skills can be learned, and I'd argue both are equally challenging.

I think you are right and it is much more pleasant to work in a team with people who doesn't have to be right all the time. At least I think so :-)

It's great to see some hard data on this!

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?

We see about a 50/50 split between the two groups. (Of course a lot of the people without a technical background are still analytical thinkers. There's probably pretty heavy selection bias for that)

Can you tell us which bootcamps have produced candidates that did well in your interviews?

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.

Do you think there's a correlation between "bad bootcamps" and "bad bootcamp grads"? I assume you can get good grads from bad bootcamps and vice-versa.

Our dataset is not large enough to really answer this. My opinion is that quality of the bootcamp (how selective they are, and how well they present and motivate students) has to matter.

I know you don't have any data on it, but I'm curious of where you see auto-didacts in this spectrum

These results aren't very surprising because this is about interviewing performance. The goal of bootcamps is "teach you enough to get a job"; they're basically gaming the interview process by teaching to the test. University programs on the other hand are "teach you CS theory"; learning to interview well is up to the student and the specific school's offering of interview training.

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.

> I think there's a strong argument to make that university programs are too focused on theory...

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.

At the least something like a 1 unit weekly seminar on how to approach interviews would be super helpful. It would also make it feel like Unis were coming from a good place if they said "Hey, we're gonna teach you the theory, but we're also gonna make sure you kickass at an interview as well so that you come out strong when looking for a job". I'd really appreciate that attitude more.

> I think there's a strong argument to make that university programs are too focused on theory

What would you see dropped and replaced?

Dropped: I don't know.

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.

It was not long ago that Computer Science degrees itself faced a similar challenge, against more well-rounded liberal arts programs, championed and prided by the Ivy Leagues. Today MIT and Stanford are ahead by the strength of their more “practical” engineering degrees. The data from Triplebyte supports the same narrative, just in greater granularity: businesses value practical skills.

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 really appreciated your response. I too came from the four year degree generation. After years in my field (technical communications), I decided to pursue my earlier dream of becoming a software engineer. I think the shift in times and ever increasing business needs for engineers are propelling this change, but there is also an overall need to become more versatile.

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.

> it may not be so difficult to fix.

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.

No, probably not coming from a web development bootcamp, but with an associate's degree and a software engineering background, I could totally see someone working at any of these named places (for engineering work).

If people won't do the 4 year engineering degree why would they do a 2 year vocational program instead?

I'd love to see some more mathematical analysis of these differences. In particular, I suspect that while the averages are similar, the distributions look extremely different.

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've been programming for 5 years, a 3 week bootcamp makes no sense

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.

This is roughly what our data shows.

It makes a lot of sense that bootcamp grads would outdo fresh college grads on "web system design"; they've presumably spent most of their bootcamp time focusing heavily on web systems. Stuff like load balancers/reverse proxies, distributed message queues, noSQL DBs, etc. may be totally foreign to a lot of fresh college grads, while a bootcamp grad can probably be expected to have a not-too-shabby understanding of how those components fit together.

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!

We also work with a bunch of great self-taught folks! Perhaps I'll blog about this in the future!

Go to college. Life is long and it is not about passing your first interview. Real world is complex and ever changing. The point of going to college is not to acquire coding skills to pass the interview. It is about facing real world challenges: people, responsibilities, complicated decisions, uncomfortable situations etc. And hopefully at the end of it you are better prepared to take on life. It is a harder path than going to a coder factory. Take the hard path.

Makes total sense if you're coming out of high school I think. But we can assume that there is a decent amount of people that are switching post college to a programming related field.

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.

If you are thinking of bootcamps as supplemental education, sure. But the article and title was talking "in lieu of". Always go from general to specialised along with age. So, definitely finish college/univ and then get specialization as needed.

The majority of bootcampers already have an undergraduate degree and years of life experience - enough to drive them to take on more debt and change careers. Pretty sure this is the harder "real world" path to an entry-level coding job.

Then it isn't really a bootcamp vs college discussion, is it?

Agreed, the author should have specified undergrad CS degree.

Bootcamper here,

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

> If your interview includes Practical programming, Web system Design, Algorithms and Low level system design...

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

> Point is, I don't think Bootcamps and Colleges are comparable.

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.

Absolutely. I'm glad to have been hired by a company who had experience with bootcampers before.

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.

We have some Node projects and we have a couple of bootcampers on our team who were hired for those projects. We also have a CS graduate who had no Node experience coming on. After a couple of months the CS grad just totally took over and led contributions on the projects. They could do more advanced things that the bootcampers have never had experience with. (Things like writing modular code and data traversing/parsing == algorithms and design).

>Had it been for a trucker position you'd be asking for "driving license, laws and regulations, engine design and car physics".

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.

It looks like Triplebyte has candidates take a bunch of tests, and then figures out what YC companies they would be a good match for.

We don't expect every applicant to be good in all those areas, and we let them pick in which area to spend the majority of the interview. I totally agree with you that no one has all those skills (except of course our esteemed interview teem!). We explicitly look in all those areas so that we can find people who are great in all sorts of ways.

There's something to be said about a person doing a bootcamp. Not only is it a drastic career pivot, but choosing to invest in yourself like that is a huge sign of maturity, growth mindset, and awareness. It's no surprise that a bootcamp grad can quickly get up to speed in their first professional dev environment.

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?

there is a simple confounding variable here that unfortunately triplebyte can't touch with a ten foot pole...age/work experience

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.

I think you may be making a faulty assumption that Bootcamp means the candidate didn't go to college. Many, many bootcamp grads DID go to college... just not for CS.

sorry if it reads that way, I was intending to communicate the opposite actually, that BC students often had gone to college, and/or had other careers, just not in CS.

This is basically a warning to every single person going through bootcamps right now: Your skills are not special. You can be replaced with ease. Unless you differentiate yourself through what you learn either at your job or after the camp and demonstrate it through your work then your job will be kaput. That's basically what all of those Everyone Can Code advertisements were trying to achieve which is to make these skills a commodity.

Good luck.

Great advice - also applies to college graduates. It applies to everyone, really :)

This is the most honest comparison I've read so far.

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.

I think a well-run bootcamp is a better coding education than college computer science. The only thing most grads have on bootcamp people is algorithm knowledge. This is easy to fix. Just teach algos in bootcamp. It really isn't that hard to understand.

Ideal bootcamp:


-angular or any mvvc data mirroring framework

-OOP and ntier patterns

-Stored Procs/ORM/SQL training


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

> The only thing most grads have on bootcamp people is algorithm knowledge.

"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 like your post and agree with most of what you said, except about the algorithms. I don't think you need 2 years to teach them. You need a highschool level understanding of Math and about a week. Obviously this varies from person to person - but I learned them extremely quickly.

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.

If you seriously think you can learn, with any amount of rigor and understanding, algorithms in a week you're absolutely delusional. I think that you would struggle to teach recursion including time complexity and practical applications in a week, and that's not even getting into simplex, dynamic programming, minimax, flow, etc...

> I don't think you need 2 years to teach them.

We aren't talking about "the algorithms", and to be honest the way you keep referring to "algorithms", rather than a phrase like "algorithmic thinking", is indicative of the real disconnect here. Spewing quicksort at a problem is easy and doesn't require one to really understand it in the first place, and if that's why I said "two years" I'd be totally an idiot. But it wasn't. Two years of instruction is for the mathematics and logic to understand algorithmic thinking at a level where you can reason about problems and approach them from a compositional, mathematical perspective--and that is invaluable when your problem is more than "order a list to splat into HTML". It's not high-school mathematics at all, except for the ten-thousand-foot-view.

I have yet to meet a--what's the phrase that everyone loves, "autodidact"?--who was as comfortable with higher-order computational thinking as many of the people I've worked with. Hell, I wish I had more of a mathematical and CS background than I do. Paxos and the like are still really hard to me!

What algorithms did you learn in a week?

"I learned Algorithms in a week" sounds weird.

Rote memorizing algorithms is definitely not the same as understanding why and how they have their specific properties. When you can just use them as-is, it'll work, but without that understanding, tweaking for your specific use case will be hard.

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

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.

That hasn't been my experience when working with or attempting to hire bootcamp grads, but I'm glad that it happens in some cases! I've seen a lot of HS-to-professional types, some with some college and some without.

I've been in one bootcamp class so my results may not be representative :-).

However I also get the feeling that being a developer has become more visible as well paying, in demand job similar to being lawyer was a decade or so ago. A lot of people wanted to be lawyers not because they were passionate about law but because they knew they could make a lot of money.

I get the impression that many people are drawn to boot camps by ads along the lines of "Make $XXk+ being a dev in X weeks" as opposed to being interested in the field.

The bootcamp I went to (app academy) actually had free algorithm lectures for this reason. While it was helpful, I'd say that it's difficult to teach beyond a skin deep level since algorithms can require a math background that many grads don't have. I'd hoping to learn more algorithm stuff on the job (bc I want to work on stuff like computer vision) but to be honest in my 8 months of web dev work I've only had to think about using an advanced data structure or algo once.

How long is a well-run bootcamp? Getting a CS degree takes many, many hours of course work, plus typically a bunch of non-CS course work. I'd think a college grad would (should?) be much better rounded. That depends a lot on the quality of their CS program, obviously. What you describe college grads doing sounds more like a 1-semester high school CS class to me.

A CS degree takes 4 years, two of which are usually not related to CS at all. Still valuable stuff to learn, but also a lot of bootcamp students might already have a degree in another field so they already have the gen eds out of the way. The remaining stuff in a CS degree, only some of it will ever be directly relevant to what most programming jobs entail. Sure, you may end up in a job where compiler design comes in handy, but most people won't. If you focus on just the parts that are going to be relevant to most programming jobs, you may need a program a bit longer than the current bootcamps but much shorter than 2 years of CS classes.

> How long is a well-run bootcamp?

If I were put in charge, I would make it 6 months long. I could definitely teach people how to write coherently designed CRUD apps in 6 months (ie. 95% of all programming businesses in the wild).

In another comment I wrote that bootcamp-trained developers are learning to do jobs that will be automated soon. It's interesting that you mention teaching them to write coherently designed CRUD apps, because my company's product is a tool that writes a coherently designed CRUD app based on querying your database schema. Using my company's product, I can spend 15 minutes to do the job that you spent six months training someone to do.

It'll do the job better too; this isn't a simple Ruby-based admin app that gets generated. We generate a feature-rich enterprise-class system with both Windows desktop and web-based UIs, that could be deployed into production as soon as the code generation is complete. (Typically there's customization work done before deployment, but for a lot of tables that's not necessary.)

That's cool you made that app - but you are still going to have to have people think about the architecture, manage servers, maintain the app, implement custom business logic, talk to business people, etc.

I feel like a common theme on this comment page is that bootcamp people are trained to do XY - therefore they cannot do Z or learn Z quickly. People who are actually into computers will learn all the other computery stuff on their own. Things like compilers, how RAM works, heaps, stacks, sorts, networking, security, etc. Just because you are only taught how to make a CRUD app with modular principles doesn't mean your learning will stop there...

I guess this argument is very personal for me because I came into programming without a CS degree. I taught myself all the fancy tech guy dick swinging bullshit by myself by guess what - wait for it - ordering CS books on amazon.com and learning this shit myself. It's not that hard. Anyone who is capable of abstract thought and has a little bit money and time can learn all this CS stuff on their own.

People with the academia mindset of thinking they know so much more than everybody else are doing themselves a disservice. This line of thought will only lead to boxing yourself in because you have only been taught to do things like a horse that has been broken to run races. I personally think people who have experienced hardships and not had the silver CS spoon in their mouth make much more well rounded programmers than the typical CS dick waving upper middle class white guy that seems to be so pervasive in all the companies I have worked for.

I learned software development the same way you did; 34 years of programming experience, with just 19 as a career professional. I got a BE in Mechanical Engineering, not CS, and didn't plan to become primarily a programmer until most of the way through grad school.

My problem with "bootcamp people" is really restricted to people who are choosing a bootcamp over college or on-the-job experience, with the expectation that they'll be able to do the same job for the same money as someone who has a CS degree, or a similar level of self-training like you and I. I have an even bigger problem with managers who would choose someone with bootcamp training over someone with deeper knowledge simply because the bootcamp person is cheaper and seems 'just as good'.

Regarding the app: you're absolutely right. Generating the code is just the first step. The value we provide is in giving you a multi-man-year head start and a solid foundation, so that you can spend your time on higher-level business-oriented requirements instead of all of the basic functionality. (My profile has a link to our website, in case you're interested. Lots of info, some video demos, and a free trial you can download.)

Only if it is a sub par school. Any decent school with a solid CS program will teach in depth programming.

> It backs up the assertion that algorithm skills are not used on the job by most programmers, and atrophy over time.

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.

If I were stranded on an island with the laptop I used in college and a power source, I'd have a pretty good idea of how to stumble through:

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

I swear, articles like this are going to cause me to have an existential crisis. I started learning programming as a child in the 80s. More than 30 years later, I like to think that I've acquired a lot of valuable knowledge and experience across a broad range of topics, and yet... when I hear about people training for three months and walking into decent jobs, I start to wonder what actually differentiates me at all.

For the sake of my ego, I'd love to hear that these bootcamp graduates have shallow, fragile knowledge in a narrowly focused area.

Shit man, I feel your pain. I'm actually quasi-looking for a job now at a super senior level (lead engineer or above) and finding it surprisingly frustrating. I'm employed full-time and have a family. I get daily phone calls from recruiters with interesting positions and then expected to be available for 8 hours of interviews and crap like that.

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.

Well, they definitely don't have 30 years of experience...

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.

I think the debate about Colleges vs. Bootcamps is an apples to oranges comparison

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.

I wouldn't be surprised that a bootcamp grad could beat a college CS student in practical web knowledge. Stanford has a web applications elective, CS142 [0]...in the previous years, it focused on Rails [1]; this year, it moved to the MEAN stack. In both syllabi, a week is spent on learning HTML/CSS alone...this year, I believe they spend a couple weeks learning JavaScript.

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

I'm not sure that a comparison between bootcamps and college is viable.

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

It's not discussed, but I would guess that the best CS grads beat the best BC grads, but average/bad BC grads beat average/bad CS grads.

Pretty close. I don't talk about this in the post, but you are right. The college grads had more variance. You occasionally get a college grad who has been working on open source since they were 15, and actually looks a lot like a, engineer with 3 years experience.

In my experience, bad CS college grads can't code at all, and >50% are terrible programmers (they probably self select out of your interviews though). I would wager a "bad" bootcamp grad could put together a single-page app using some APIs, with relative success.

at what? assessment here would likely be highly task specific.

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 meant for "standard" developer positions: I would say far fewer than 10% of developer positions require skills such as knowing how to code quicksort, or knowing the CAP theorem.

sorry but this will inevitably come off as pedantic...knowing how to code quick sort may not be germane how to apply quick sort, what quick sort does and why, and how to evaluate whether quick sort is appropriate are all nested within that 'standard' developer archetype in different ways. Not saying you aren't true, just trying to argue for a less digital approach to interpreting or assessing education in the realm of hiring.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact