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

But!

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

Yes.

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

Absolutely.

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


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.


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


http://www.appacademy.io/faq/deposit

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:

-css/html/javascript

-angular or any mvvc data mirroring framework

-OOP and ntier patterns

-Stored Procs/ORM/SQL training

-Algos

-Webservices SOAP/REST

The college grads I work with tend to have written a couple shitty programs that don't really do anything, and their "final project" was hooking up a database to a business logic layer.

source: I have taught in bootcamps before and work with lots of new college comp sci grads now.


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


> Bootcamp grads match or beat college grads on practical skills, and lose on deep knowledge.

I feel as though you are attempting to lower the bar of what is acceptable in order to sell something :). The word 'practical' is thrown around in this article without much of a definition. Are we talking about making simple web pages?

I've just finished conducting a round of interviews for a junior level position, and based on this experience I highly doubt I will be considering bootcamp graduates in the future. As an example, for a question which involved sorting an integer array, and providing a method GetElementAt(index)....95% of the bootcamp applicants implemented sort within the GetElementAt method so that the entire array is sorted with every single call. A handful of CS grads made the same mistake, but most of them did not. Is this sort of oversight excused in the idea of 'practical' programming? Or in your definition, is this considered deep knowledge?


Personally, I never expect people to pick the right algorithm the first time. In the real world it's hard to do. I'm much more interested in if they think about alternatives to their solution, know where the problems with theirs are and if they might find an alternate solution to the problem online.

If you're hiring junior developers without expecting to be hands-on in their work and with plan to train them, then you aren't really hiring junior developers, you're just trying to pay at junior rates. It's not doing them or your business a service to hire them.

There are plenty of CS grads out there with all sorts of algo skills but no practical and will take 3 months + to build anything in your stack. This is basically the same problem with different symptoms: You don't have the resources to hire a junior developer.

It's just way easier to blame the hire than your company.


I believe we are misunderstanding each other, as you are making some assumptions. We do spend time training junior developers. We are hands on during work.

I'm talking about one problem at the start of the process. In the example, I didn't touch on their choice of sort algorithm. I was pointing out that they believed that re-sorting the same array, for every single GetIndexAt(x) call, was an ok thing to do. The majority of boot campers did, the majority of CS grads did not.

So if we have two distinct groups applying for a junior level position, and one group has a stronger grasp on fundamentals, I fail to understand how a company is at fault for choosing the better candidate. Objectively, the junior level CS grad had a better understanding of the problem.


Are they saying that it's an actual okay thing to do? ...like, you challenged them on it and had a discussion and they said it was perfectly okay regardless of size of array?

Or it was just allowed to let lie and they said it's an okay thing to do because that's what's in their code?

I think it's a huge mistake to conflate whether someone does know and whether they can know something. Some of the best programmers I've ever seen started off pretty clueless - most of that group learns things absurdly quickly too.

I don't think that exercise gives you good information other than to confirm your expectations. I don't know whether that can tell you if they'll bring value to your organization or not.


There were a few hundred applications to sort through for the position. Applicants all received the same test. The initial response is used to filter the pool and decide with whom to speak with further. Only with a filtered applicant pool is it reasonable to sit and discuss their solution with. Some criteria is needed to filter the pool, so obviously those that have submitted a better initial solution will be selected. The exercise shows that some applicants will require more training than others.


There are many reasons why I think this process is broken that others have written so much at length about enough that I'm not going to bother taking the time.

If it's enough for you to say that because you have a test that everyone takes and it filters your candidates so that's proof of ability, without even going into the results and asking if your test is optimizing for the correct things, there's nothing I can say to convince you otherwise.

Anecdotal, but I know about a half dozen people with experience and CS degrees who would blow your filter but can really get shit done and don't really need any training.

Hiring is hard and the real shame of this industry is that collectively we don't approach this problem with the same level of rigor that we do everything else because by and large we consider this sort of work to be beneath us and not worth a significant investment of our time.


I just want to leave my response to your now-deleted followup:

I don't advocate talking to every candidate but I don't think it's possible to estimate someone's skill without talking to them (even email is a form of conversation).

I find much better filters for that sort of thing are ability to follow directions and attention to detail. If you have hundreds of applications, I guarantee they're not all great spellers or communicate effectively. I value the soft skills way above programming ability (since we have to communicate effectively every day) in the early stage.

I find that it's pretty easy to demonstrate that you "have it" from portfolio, resume, cover letter and the application process.

Personally it's a huge pet peeve of mine in an interview process whenever I have to write code and there isn't some discussion about that code - to the point that I feel it a waste of my time and a strong signal not to work there.


You're talking about a single junior-level position and you had a few hundred applications? That isn't passing my smell test.


Software companies aren't the only people who hire developers. I spent today (I'm a non-technical product owner in an enterprise) discussing middleware which will transform 10,000 miscellaneous transactions from multiple line of business system every night into our ERP. There's lots of domain logic and we're paying the supplier a lump sum more than the annual salary of a new CS or BC grad. It isn't a simple web page. Say the transformation from source to target with good sorting would take 100 milliseconds. If it took 10,000 times longer, that's 17 minutes - and that would meet my user requirements. If it didn't I'd expect the supplier to fix their SQL indexes. So none of their technical guys need to be good at sorting.


That's a very good point. I'm only speaking from the view of my experience, and my responsibilities and concerns are different than your example. I suppose my initial skepticism of the article is grounded in that we do all we have different concerns, and I felt the article attempted to paint with too broad of a brush. The author would have helped me tremendously had they defined terms like practical programming.


After reading through all of the comments so far, my impression is that bootcamps are for training the developers whose jobs will be automated away in the coming years, and college is for training the developers who will be writing the code that automates those jobs.


That seems pretty cynical; your logic breaks down when a CS graduate goes into a bootcamp after college.

malkovich,malkovich


Well this is interesting to me, as I've recently worked with a bootcamp graduate, and I've been looking over my brother's shoulder while he finishes his CS degree at Columbia.

- Bootcamp lady was very able on the iOS project we were working on. She seemed to know where things were in XCode, and she understood Obj-C and Swift (no embarrassing questions about what classes are). She didn't seem to know about other environments (and said so), but we were doing an iOS project.

- Ivy league guy seems to have touched every common language (c, c++, Python, HTML/JS/CSS, R, and more), along with common tools (vim, pyCharm, tmux, gcc, VC++, laundry list). I was surprised by how practical it was, actually. I thought it would be obscure algorithms the whole way, but I guess they take the theory and essentially force you to learn the practical aspects by implementing things in relevant stacks.

- Bootcamp lady was very good working in our little MVP team. Understood how common management ideas like Agile work. Conscientious with looking at the Trello board, asking questions in Slack. Not sure if this is just her personality, or because they tell you how software teams work.

- Ivy league guy had lots of group projects, but they tended to be dysfunctional. There was always someone shirking. Some people had no clue what was being built or how to compile it. There didn't seem to be any management oversight, just blind "let's get this piece done" type organisation.

- Degree guy has way more breadth. He was routinely looking at machine learning, implementing demos with scikit, setting up VMs for himself, looking at assembly, looking at SQL optimisation, and other diverse tasks. Bootcamp grad didn't need this stuff, but also would need significant training to get to that level.

- Ambitions were similar. My background is in financial code, and they both want to do that. Bootcamp grad has quite a mountain to climb, particularly with things that take more explanation than MVC. She has a good attitude, so if someone would teach her she could do it. My brother is better positioned though, and would need less teaching to reach the same place.


> This does not leave bootcamp grads equivalently skilled to university grads. If you want to do hard algorithmic or low-level programming, you’re still better served by traditional CS eduction.

Or, if I may suggest, a low-level/algorithmic bootcamp.


I think it's possible that these things just fundamentally take more time to learn well. I'd be happy to be proven wrong, however.


Judging from my own experience, spending some time through the start of Skiena's Algorithm Design Manual, with a side of Programming Pearls or Practice of Programming, would do wonders and easily outstrip a CS education. I'd say you could do it in less than 200 hours, which is about 3 weeks of dedicated bootcamper time.

Maybe dev-bootcamp should offer an optional extra module?


As a bootcamp grad m'self who would love to do more deep dives into algos/data structures, I'm intrigued. Any other recs?


I think a low-level/algorithmic bootcamp would be great, and it wouldn't be that hard to make one.


Bootcamp without years if experience will not replace a Computer Science degree. It lacks the depth to build a solid foundation. While this is just an anectdote every company I have worked for refuses to hire bootcamp grads.


I think that both college and boot-camp styles of training have their place. I'd think my default inclination would be to want to hire the CompSci majors to do the deep-scope planning/figuring and use boot-camp hires to do the grunt-work of supporting that vision.

It's important to note that this is just my initial inclination. I have no expectation that there won't be instances of boot-camp hires being better than CompSci hires in cases. It really comes down to the particular person, and hopefully any hiring process would do a decent job of evaluating each person.


This just isn't how software is built in practice. Engineers make dozens of architectural decisions every day. They may feel like small ones, but over time they add up to a whole lot of surface area. The skills you learn in Computer Science provide a whole lot more context for your decision making when actually building things. Bootcamps, at least from the folks I've interviewed so far, simply don't prepare their graduates to do real work. This is particularly true when it comes to data structures and basic algorithms. Two really key fundamental knowledge areas if you're goal is to build actually reliable and relatively efficient software.

This isn't to say that all CompSci graduates are good programmers (clearly they are not). It also isn't to say that everyone coming out of a bootcamp is bad (they are not, I recently hired my first). But when painting with a broad brush bootcamp's right now seem to mostly churn out students who are sort of comfortable with syntax and very basic logic, but not much else.

I'd be interested to see this article go farther. What do these cohorts look like in two years? Does that fundamental knowledge gap hold those bootcamp graduates back? I suspect it does, but I have very little proof but my own intuition. I'd love to be wrong.


> Engineers make dozens of architectural decisions every day.

> Two really key fundamental knowledge areas if you're goal is to build actually reliable and relatively efficient software.

I would challenge you on this, and suspect that you're looking at a relatively thin slice of developers: can you clarify why you believe this to be the case. As a counter-example, a lot of modern web development is building frontends (mobile or JS), where good code organization matters, but systems architecture doesn't matter so much.


I've been building web-based frontends for my entire professional career, and my systems architecture skills have been invaluable throughout. Web frontends don't stand alone; they run on server, they make use of networks and networking hardware, they talk to other services on the same server and other server, and they interact with the operating system. Being able to understand all of those moving parts is crucial to producing a high-quality frontend that's not going to fall apart as soon as it gets put under stress, and that will be maintainable and extensible over time.


Can you clarify why CS skills are necessary, vs the ones you learn in bootcamps (which I would guess are much more specific to this use case)? I agree they do all these things, but in a way that can be taught quickly and is mostly learned through experience, no?


Having interacted with a lot of both lately, my impressions are that bootcamp graduates focus on mostly on functional requirements.

They have a hard time identifying non-functional requirements, assessing and mitigating risk, and start getting confused when things go low level.

In my experience, all "friendly" technologies have sharp edges somewhere, where you start getting exposed to low level issues. When you face these issues, there's no guarantee the answer will be in stack overflow and you will appreciate having learned some theory.


Bootcamps are filling a void which existed for a long time in the CS industry. Most of the time, A CS grad is hired to do a job that can be done by someone with little programming knowledge. I feel it is a waste of resources to hire a CS grad to do CRUD app with maximum 5 users on a very good day.

Now companies can use people from bootcamps for such kind of jobs and use CS grads for deep and high level stuff. Surely some top bootcampers will be able to do high level stuff too.


Do you remember your college web programming courses? The curriculum is always woefully out of date and seems that traditional undergraduate programs don't focus on updating it. This makes sense -- there are very few academic research areas that deal with practical web applications, and this is obviously mirrored in your undergraduate classes.

Don't forget -- universities are also research institutions, while bootcamps are not, and the coursework will reflect this.


My college had state-of-the-art web programming courses along with many other practical classes (mobile, iOS, database design, data mining, 3d graphics). All of which were developed to ensure that students could move onto internships in that field after the course.

All of these courses were optional, but the school was very clear about their purpose: to give their students job skills. Most of the recruiters that came to the campus job fairs knew which of these courses they wanted their interns to take and would ask specifically, "did you take CS___"?

Obviously there was tons of research-oriented classes too, but those targeted jr/seniors.


Our Web Programming course was going to be Rails-based and follow the Rails Tutorial[1], but at the last minute it got changed to late 90s PHP. Sad day.

[1] https://www.railstutorial.org/


Bootcamps make people employable for sure, I work with a team of people mostly from Bootcamps. I think the problem with some of them is they don't actually like programming. Learning new things and change is met with a lot of feet dragging. Don't get me wrong, I know a lot of programmers that are just 9-5'ers. It just seems like anytime there's any extra effort involved a ton of justification and selling needs to happen.


That's because bootcamps specifically teach you how to pass interviews. I'm a senior developer and suck at interviews because I haven't taken my spare time to specifically study for interviews. I don't remember how to reverse sort a b-tree or whatever inane questions are asked because I don't need to know that to do my job spectacularly. It's actually kind of a joke that bootcamp grads interview better.


Thel real big difference that too often Americans forget is that college (and all the education system below colleges) gives you the structural mindset to break down complex problems and find solutions. They create your way of thinking and your rational side. Bootcamps, instead, just teach you how to execute some actions. It's like the difference between colleges and industrial schools.


> We’ve found bootcamp grads...worse at algorithms and understanding how computers work.

Solution: hire a college grad and send them to a boot camp.


One of my close friends said it best: "savrajsingh, Lebron James doesn't care if you start playing basketball."


Likely, you see more people getting a CS degree because they feel it's a good job than the people going to bootcamps. The people going to bootcamps are more likely to be doing it because they've done some development and really like it.

Now, what bootcamps aren't going to give you is the breadth of a CS degree. But if you're getting a CS degree just for the money, you're not picking things up very well either.

So, I can see where a certain % of CS students and bootcampers are roughly equivalent.

I feel if you're very interested in CS and get a college degree and do really well in college, you're going to come out ahead of someone taking a 3 month bootcamp. I also feel there's more opportunity for CS degrees. ie, one probably isn't going to see too many 3 month bootcampers doing real time development. (I'm talk real real-time, not that buzzword web real time.)


This is obviously comparing different things. Bootcamps and College are not replacing each other. But there is a difference between learning because you are hungry for knowledge (college) and learning because you are hungry for food (boot camp, you need to do your job). The former makes you better in the trade.


Could it be possible to combine both worlds? Getting a university degree by spending four years with a strong focus on practical skills and intense workload[1].

To my knowledge only the top tier of american colleges (MIT, Berkeley, Stanford, ...) come close to that achievement. But, in France, where I live; I had the opportunity to go to a private school "specialized" in computer science (Epitech, 42, if you wanna look it up), that was mostly an "enlarged bootcamp" from year one to year three. It was kind of funny, for me, when my peers from traditional schools ended up discovering version control in their final internship.

[1]: Once you replace the shitty paper exams by actual projects in programming classes, you'll be amazed by how much you'll increase student proactivity.


I started programming before college and I was always on my own. I never had a programmer friend until I started working. Although I was always able to get things done but the code I wrote is something that should never go into production. It took lots of mistakes, a lot of reading and shooting my own foot to finally start writing worthy code after like 2-3 years. (Although, there were code bases I worked with that were way worse!)

One thing I am curious about is, does a bootcamp make you proficient enough to avoid those mistakes and contribute directly to the application? I am pretty sure, it could have been a lot of help if someone could point out the mistakes I am making in my code, but I am not sure if it would have been enough.


> It took lots of mistakes, a lot of reading and shooting my own foot to finally start writing worthy code after like 2-3 years.

This is completely normal and I expect this out of any junior developer hire. My brother-in-law went through a boot camp and picked up a job writing unit/integration tests and he makes the same errors. Having to maintain your own code and seeing the consequences of your decisions gets you over this hurdle. I've seen the same for junior web devs coming out of agency work.


My employer has been hiring a few people from some local coding bootcamps here in the Minneapolis area. Most of them are very decent at programming, so I'm not sure if they had any experience prior to their bootcamps or not, but I can't say I have any complaints for those they've hired. Never had a fix any of their code since they've been on the job either. Sometimes they need more help since they didn't get the discrete structures or software architecture knowledge that I did from my traditional CS degree. Honestly I think that should be something you pick up on the job or have been taught in high school (I'm biased of course).


The problem I have with bootcampers is that the bootcamps greatly over promise where they will be skill level wise when they finish, so expectations are way beyond junior developer roles. They also usually come out of bootcamps with a very narrow skillset; they can somewhat easily whip out a web app with a simple backend and rudimentary data sets using whatever framework that bootcamp focused on. Increase the complexity of the project even just a little and they get stuck.

There are some diamonds in the rough and some bootcamps are better than others but in general I'd much rather see someone who learned by hacking on things alone than a college or bootcamp grad.


I think there's a great opportunity for bootcamps to help people like me. I'm currently a pre-sales professional, and have been for a few years now. I'm closing in on 28, and while I've been served very well by developing product expertise, my background isn't in CompSci, and I've never actually formally learned to code. If I want to be a good Solutions Architect down the line, and I certainly do, this could be how I bridge the skill gap.

Sure, I could learn most of what I need to know on my own time, but this might be a great way to get it done quickly in a batch and then move on to applying it in a very practical way with my customers.


Among developers, there are unkind terms used to describe people who call themselves "Solutions Architect" who have no development experience. "Architect" itself is often used as a derogatory term.

In my experience, "Product Manager" is a much better term for someone who's responsible for and guiding the development of a software product, but who doesn't have the technical skills to do the development themselves. Architects who are respected earn that title by working to gain lots of experience doing development.


When you think about it as skills training vs. college I think it delivers on it's promise.

In college, most people don't declare a major until their Sophomore or Junior year, so the idea that competition is a 4 year degree is a bit misplaced. Code Schools don't teach music appreciation, though there are a lot of musicians. Bootcamps offer an intensive at 40+ hours a week vs. a two hour class two days a week.

Can you deliver skills based training in 10 weeks? The placement rates would say yes. Do some schools focus on placement while others focus on taking tuition... That's true as well.

Look to find the school that has a placement track record.


Programming isn't all one thing. You have to have what amounts to an epistemology about the system you're working on right now or you're going to break things.

A degree improves the chances of this. About half of what I do is teach these things, on the job. Just being able to classify a systems error can be daunting - is it a show stopper, or an ignore, or something in between?

I see bootcamps as being fine for getting people into seats, but the rest takes a long time.

Finally, employability and what (IMO) CS/programming should be about are diverging rapidly. This was not always so. This is starting to be a real problem.


Hey, I wrote an algorithms book aimed at bootcampers! The epub is out today, print book to follow: http://amzn.com/1617292230

I'm hoping this will be an easy to read algorithms book for bootcamp grads. Here's a sample chapter for anyone interested: https://manning-content.s3.amazonaws.com/download/f/a75f93d-...


Just bought it today, can't wait for the dead-tree version to get here. Looks pretty interesting.

BTW, Manning was running a promotion on their mailing list for a 50% discount today.


I bought the book on Amazon, is there a way to get the .epub before it ships?


You should get a download link from Manning in your email, let me know if you dont!


I haven't seen anything yet. Do I have to register the book after it ships?


What is your email? I'll have Manning check on the order.


They definitely are comparable. But I think going to both would be best thing if there is time and strength. Just as I thought college gives you most of theoretical stuff. If you are not used to working on your own, on side projects and are taking college for granted, then you aren't off to a great start. But if you are used to doing something besides college, whether it is paid job or some tinkering projects you do in free time that you later put on github, then need for bootcamp maybe isn't present. So hitting it somewhere in the middle might be best...


I'm most curious to see what the stats are deeper into the funnel, specifically:

- At what rate do bootcamp grads vs new grads get offers (intro --> offer at portfolio companies)?

- Is the above metric significantly different for different classes of companies (either segmented by company size, field, or "CRUD-eyness" of company?

As a former hiring manager at a "much harder than CRUD" company, I remember looking at some bootcampers and saying "I wish we could interview these people, but the knowledge gap is just too significant".


Boot camps have their place, but they are not a replacement for a traditional CS degree. I have met good and bad programmers from both types of programs (some from well respected colleges who I still wonder how they exactly passed), but here's the thing, I don't care about practical skills. I care about the person being able to think.

All those concepts that they teach in CS isn't about knowing the name of an algorithm, it's about thinking abstractly. I honestly don't care if a recent grad knows how to use IDE x or even much about source control. I can easily teach them that. I can't easily teach a person how to understand pointers or pass functions as parameters. I don't need someone who can write code; I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract level. It is very hard to achieve this in a 12 week course. Can some people do this? Sure, they may have the background from a previous career that aids them in this, but they are the exception and not the rule.


If the most important quality is being able to think abstractly and solve problems, why does it matter if they have a CS degree or come from a bootcamp?

I do agree with you that CS degrees are very valuable, though it seems like you are saying that they are important because they teach problem solving and abstract thinking - but aren't there many ways to obtain those types of skills?


My CS degree was four years of heavy abstract thinking. If you can get those skills elsewhere great, but I don't think it's that common.


Based on what?

The amount of bias in this thread is very strange.

I think what's going on is that the people with CS degrees invested a significant chunk of their life and a significant amount of money into getting a CS degree. Therefore they're invested in denying the possibility that the qualities they achieved through their program can be achieved without.

The article presents some evidence in support of this possibility:

Over the last year, we’ve worked with about 100 bootcamp grads, and many have gone on to get jobs at great companies. We do our interviews blind, without knowing a candidate's background, and we regularly get through an interview and give a candidate very positive scores, only to be surprised at the end when we learn that the candidate has only been programming for 6 months.

We’ve found bootcamp grads as a group to be better than college grads at web programming and writing clean, modular code, and worse at algorithms and understanding how computers work. All in all, we’ve had roughly equivalent success working with the two groups.

That's pretty persuasive. So why respond to data with anecdata?


"I think what's going on is that the people with CS degrees invested a significant chunk of their life and a significant amount of money into getting a CS degree."

A few people have made a similar claim in this thread. I think that's a pretty lazy argument for which no real evidence exists. A big clue is that you could say that about literally anything.

Oh, sure, of course you'd think cooking classes were a big help in learning to cook. You paid all that money for them and spent all that time attending, so you feel the need to justify the expense.

It explains everything and nothing.


I'd liken a cooking class to the bootcamps, and a CS degree to a degree in nutrition. Both are valuable, but if your goal is to become a chef one is probably better than the other.


Is your comment meant to reply to the comment above you? Yes, a program that is designed entirely to give you just enough skills to get an entry level job when you exit succeeds at doing that, although not more than an actual college. What does that have to do with abstract thinking and deeper skills? What happens in two years when the specific "web developer" technical skills your program taught you are out of date and irrelevant?

The thing you quote is entirely saying that bootcamps are good for employers who just want cheap coders who know the language of the week that they can replace in two years with a new batch. Of course they are. But that doesn't mean they are great for you or that they in any way are a replacement for a real CS degree.


I think saying that a computer science education is a way to learn "abstract thinking" is a useless simplification, given that any undergraduate degree involves some amount of abstract thinking. Surely a bootcamper is more prepared to work as a software engineer than a psychology major in over 50% of cases (all other things being equal). So the comparison between certain specific majors and bootcampers is much more minute.

Consider that at any major accredited university or college with programs in computer science and software engineering usually these two degrees are separate. Some study computer science and some study software engineering. Computer science as a discipline entails many fields that are unrelated to web development in any way, just as there are fields of math that are completely abstract and have no relation to reality. So, given that a web development role would technically be a form of engineering, you need to strictly compare interviewees with software engineering undergraduate degrees with those coming out of bootcamps without the same degrees, and also compare in-industry experience, age, and every other factor in a controlled way.

In any case, the data from a study like that would be inarguable and it would also be uninteresting. It might hurt some people's pride to see that a 6-month program can outdo a 4-year program, but it is true in some cases. Look at places like Digipen and Full Sail University which also teach programming. It was not at all uncommon a few decades ago for programmers to drop out of high school and be successful. What you will find, from responsible adults, is that no one would advocate this path. So it shouldn't be surprising that almost everyone will advocate the benefits of education.

It would be easier to compare a specific bootcamp with a narrow set of courses from a CSSE program, and it would be more of an apples-to-apples comparison.


I have a CS degree. I don't think it helped me to be a better developer in any meaningful capacity.

I'm still deeply skeptical of the average bootcamp graduate though. They're mostly people following a gold rush without any passion for programming. Moreover, bootcamps do their absolute best to distort hiring signals (ie. specifically targeting interview skills and portfolio projects). I've interviewed dozens of bootcamp graduates and haven't found a single one who I'd hire (that being said, I also think the average college graduate is terrible).


I disagree with regards to a CS degree not making me a better developer, but if I was reading your post three years ago I might have agreed with you. It's interesting--much of what I learned in college was of at best marginal utility when I was starting out, but a ton of it's come back around to be useful today. Which is kind of to be expected, in that a junior developer's not likely to be dealing with much that's particularly challenging (in an absolute sense--of course, it's often going to be challenging in a relative sense). In particular, I spent this morning studying Raft and the Paxos family of distributed consensus algorithms to better understand the tools I'm using so that I can more effectively reason about them for the problem I'm working on; in my adventures I ended up digging Distributed Systems: Principles and Paradigm by Tanenbaum out of my closet. (Guess why I had that? ;) )

To this end, I'm generally leery of bootcamp classes, and have not had good success working with bootcamp graduates for more than "line programmer" roles where attention and hours are sufficient to achieve a goal. Of those I can think of, none of the ones I've worked with have been dumb, far from it, but they haven't had the underlying theoretical education (even, generally speaking, something as foundational as a first-year discrete mathematics course) through which to filter whatever length of practical experience they've had. I find both to be extremely valuable, and to make me much better at my job.


I imagine it depends on the person. I spent a long time programming (but not professionally) before taking CS and I doubt I ever would have taken it upon myself to learn those things.

I could probably muddle along with out them but it changed my entire reference frame for how I thought about computers.

I am certain a motivated person supplement most of the useful parts of a CS B.S. degree but that can be hard when you are too cocky or foolish to even know what you are missing out on (which was my case).


> that the qualities they achieved through their program can be achieved without > some evidence in support of this possibility > worse at algorithms and understanding how computers work

Can an amatuer guitarist play as well as a classically-trained guitarist? Sure.

Is it the exception to the rule? Yes.

Can an amatuer guitarist learn to play a few songs really well, but have no grasp of composition? Sure.

Will the guitarist be as skilled in composition as the classical guitarist? No.

The time spent learning {x} is the great difference. A plain old guitarist can pull out some composition manuals and teach himself how to craft music better than the lazy classically-trained musician.

My 2 cents -- don't underestimate 4 years. Clean code is quickly whipped into you at your first job, but typically the CS student is thinking in their head "wow this is so easy" because they were trained in building shit like compilers for the last 4 years. The bootcamper does not have the same experience because it's not prudent to train an employment-seeking individual in the subtleties of compiler design. So, 9 times outta 10, the CS graduate is the stronger programmer at least until the bootcamper has had some years to catch up.


Algorithms are a pretty one to one representation of abstraction. I'm not contradicting the article at all.

I would also expect this gap to widen significantly if you paired top schools to top boot camps.

I've been to a terrible state school and I've been to a top 10 school. At the state school I frequently thought I'd be better served by a boot camp. At the top 10 I never had a week where I wasn't challenged.

Also the level of internships was vastly different. I think a grad who did a coop at a good school would pull ahead in every metric.


> That's pretty persuasive.

Is it? Their sample is only people who can pass their initial screening.

> We do background-blind screening via an online programming test, and only interview engineers who pass this test. Thus we have no way to know what percentage of bootcamp grads and college grads fail early in our process, and the graph above reflects only people who pass our test.

Even ignoring that,

> worse at algorithms and understanding how computers work

would support the point.


> We’ve found bootcamp grads as a group to be better than college grads at [skills that require a medium level of abstract thinking], and worse at [skills that require a higher level of abstract thinking].

Seems pretty clear to me. Im not sure how this disagrees with

> CS degree was four years of heavy abstract thinking


Oh yeah, this is the "self-taught developers aren't as good as those with CS degrees" nonsense again.


Countered with equal force by the "CS degrees are useless" nonsense.


Yes! It's as if there's more than one good way to learn stuff.


Very good critical reply. Anecdata - what a perfect word :)


I did math and physics in undergrad and math in grad school, and IMO they do more for critical thinking than CS.

I too mainly care about how someone thinks, since the wrong implementation can be very costly, and strong thought processes can help pre-empt that greatly.


Interesting point. The most capable junior programmer (in experience) I know has a math degree. Algorithms are basically obvious to him and he has no trouble solving tough problems quickly.

The thing that gets in his way though is that his soft-skills are the absolute worst and he still can't get through an interview to get hired anywhere.


Maybe I'm biased -- my focuses in undergrad were on Theory and Modeling & Simulation -- pretty much I took a bunch of math and algorithms.


Undergrad is peanuts - nothing like the intensity you see in grad school, it is on another level. FWIW, I spent 4 years at UIUC for grad school (top 15 math, top 5 CS), and found that the CS PhD students in my math classes were quite challenged by the pace and coursework.


Many of those who took that CS degree never learned abstract thinking.

It's not something you first learn on university it's something you develop way before that.


I agree. Though there are those magical universities out there (and who knows, maybe there are magical bootcamps too) that teach abstract thinking. My university unfortunately does not belong to them. In terms of programming, it's all rote-learning of the basics for the exams and shit ton of exercises supporting that rote learning.

I can pin-point some places where I did learn various aspects of abstract thinking. I learned it by reading. Books like "Gödel, Escher, Bach", books like "Structure and Interpretation of Computer Programs", or the Sequences by HN's 'Eliezer. I learned it by thinking about what I read, and also by starting hobby projects and thinking hard when doing them.

The universities, and maybe even bootcamps, may help a bit - but there's no learning of abstract thinking unless you yourself care.


+ 1 for GEB. I read that freshman year (now a junior).

As an example of its utility, I really like its description of formal systems which are a somewhat simplified version of context free grammars. There are many other concepts described in that book that give similar but more intuitive explanations of CS concepts that helped me understand them as part of "the bigger picture."

CODE: The Hidden Language of Computer Hardware and Software, which is mentioned on here a lot, was helpful for similar reasons.


My concept of abstraction evolved significantly during my time in school.


Many things with you evolved significantly during your time in school.


And decoupling them from the environment I was in, the work that I was doing, and the people that I was around is absurd.


So when I developed the same areas and wasn't in studying how do you explain that?


It's not a winner take all game. Of course you can develop skills both ways. One way places an emphasis on it. Think of a good CS degree as an interface for abstract thinking.


nothing to do with winner takes all. CS degree does not guarantee you to be able to do abstract thinking. Thats the point. It's a skill you develop way before you even go take a CS degree.


I think it's less a case of CS degrees teaching abstract/critical thinking skills, and more a case of a four-year program honing them over time in an environment that can be beneficial (interactions with--and bouncing ideas off--fellow students, professors, etc.).

I regret not taking more CS courses, or majoring in it in addition to philosophy and psychology, but I don't think it's been too detrimental because I'm aware of what I missed and am able to correct it on my own.

Anyhow, self-taught, bootcamp, or CS degree, there are going to be tradeoffs in terms of what's learned and what's missed. No matter what path you take, it's on you to work on balancing that out and improving yourself. Just knowing that they exist, and that you have work to do, is a huge part of the battle. If you're able to do that, I don't think your background will matter much in the end.


The trouble is that while most employers say the same thing you say -- that they hire for critical thinking ability and intellectual curiosity / talent -- almost all of them don't actually want that. Instead they want employees who don't think independently; employees who are pliable and will not complain if given drudgery, told to use poor practices, told to make things of poor quality.

Everyone says they don't just want warm bodies to type code, but lots and lots of places actually do just want warm bodies to type code.

Since this is what wins average-case jobs, this inevitably is what average-case products of bootcamps and universities tend to look like.

I actually had a pretty long debate with a professor friend of mine who taught me numerical analysis as an undergrad. Their whole scientific computing program has morphed into this awful mess of basically just teaching various Hadoop tool APIs and Spark. As an alum, I am in concerned.

He hates it too, and feels the students are not getting anything resembling a good education in scientific computing. But at the university's considerable career fair, where the faculty actually spend a lot of time talking to recruiters and employers, all they hear is we want more people who already know framework X, library Y, etc. They don't care if you even know what LU decomposition is, what issues there are using power method for eigenvalues, let alone anything about the actual hardware specification for basic numerical types and issues with precision. I mean, they don't even care if you have the slightest fluency or naive understanding of that stuff. Literally zero understanding is fine, as long as you have memorized sections of certain APIs that they use and you will not complain if your job is drudgery related to rote usage of those APIs.

Since this is what wins jobs, it's what they teach.


I get what you're saying. Here and on Reddit you see a lot of programmers who say they have been hired or say they hire based on ability to think and not domain knowledge. They say language doesn't matter and that personal projects are a nice bonus but what matter is if you can think and program.

That's awesome—I learned how to think in school and love solving problems.

The problem is that in real life I've had the opposite experience: I've been rejected from and been offered jobs almost solely based on practical, domain knowledge. Sometimes people email me or contact me based on my GitHub or the stuff I say I know or can prove I know. After doing great on trivia questions (both about the language I will use and algorithm ones) sometimes I've been rejected because of "lack of experience in our stack" (maybe just an excuse for something else). It's cynical, but I get the feeling what most people want in real life is not what HN users want.


That sucks that that's the experience you've had, but I've had the exact opposite experience. I got my first job building mobile software with zero Android experience--I knew Java, but was up-front with my concerns about the differences between Dalvik and Java being significant enough to throw me. I understood enough about Android to talk coherently about it, but had never written a line for it. After I decided to get out of mobile and into devops/platform development, I ended up at a shop where I knew nothing about most of what they were doing: I didn't know Ruby, I didn't know Rails, I had never touched AWS. But I could speak intelligently as to software development and as to how I thought about problems, and they brought me onboard. And these days, as a consultant, I'm often brought in for projects where I don't know anything about them--like, I am emphatically not a network guru, but just yesterday I found myself learning `tc` and figuring out what its kersplosion of acronyms meant in order to solve a problem.

More than this, though: in my experience, it's less about knowing the stack and more about whether people like you or not. I can walk into a place and make a hiring manager (or, these days, somebody willing to pay for consulting) like me, like my work, and feel confident that they're going to get their money's worth. And none of that really has to do with my skills, just my confidence and my ability to talk well about problems.


I would say your experience is a significant outlier, especially becoming a consultant. I don't know how much of your previous job movements were based on having a contact at the hiring company: if few then yes your experience is indeed an extreme outlier, if many then it makes some sense because someone vouched for you.

I agree that in many cases it boils down to subjective ideas about whether someone likes you -- and too often, especially in the startup world, "liking you" becomes equivalent to whatever social and status signaling you do in terms of which hip and trendy pieces of tech you choose to affiliate with. It rarely has anything to do with your innate talents. And there are plenty of failure modes having to do with whether you like open-plan offices, alcohol-centric gatherings, dog-friendly offices, and tons of other start-up bullshit.


Of my four full-time jobs in my career, one had a prior contact and one was a you-know-nothing,-you're-a-college-hire job. (Much of my consulting comes from my personal network, of course.) Two were startups, two were big companies. Interestingly, the startups were more amenable to "you don't know this but you are obviously capable of picking this up".

Your point about personal appeal is well made, and I'm pretty good at projecting even though I pretty consciously avoid a lot of what the startup world thinks makes it great (and I won't work at one again because I respect myself). It helps that, to toot my own horn a little, I'm pretty good; I have a broad base of stuff to apply to a problem (even when I didn't know Ruby I knew Perl, Python, JavaScript, Smalltalk, Lisp...) and I can talk my way into an understanding via analogy and fundamental knowledge.

But what I think really matters on this front is that I'm able to express that I'm competent to somebody, and I don't need a whiteboard to do it, and I really do think that's key. My view of it is that all I need is to get somebody who's willing to listen and I'll pry that door wide open. I'm one of those people who interviews (well, interviewed, I like consulting) aggressively and habitually, and I have an Excel file with the results or non-results of every resume I've ever sent out in my life (155). When I look at he number of times I have gotten to at least a phone interview (112), not gotten an offer (53, but that includes me declining them), and gotten a reason why (21) that was related to a lack of direct subject matter expertise...I get a real small number. Two, as it happens. And this is totally a small sample size, I am not claiming statistical relevance. But I think the recognition that this industry, despite protestations of logic and high-mindedness, is still fundamentally and inescapably about making connections with people and making them like you, is something that even small-sample data like this can indicate. Most tech folks won't take this to heart, because of all the weird factors and weird people involved, but I do think that some pretty straightforward Dale Carnegie stuff is as beneficial to a reasonably good developer as anything they can learn with their hands on a keyboard.


Thanks for providing the extra detail. I think it helps to confirm that your situation is a major outlier experience.


But in which direction? =) Is it an outlier because of luck, or because my approach is different? While I've certainly had my share of luck, I fundamentally approach this stuff as a human problem, and I think that's a difference of kind that matters.


You've only been rejected twice out of 155 attempts due to technical lack of fit. Most people I know in tech have read the Carnegie book, etc., and put tons of effort into the human and communication side, that's super common. But they experience a far greater rate of rejection for a claimed lack of tech fit, usually centered on highly specific prior knowledge in that one firm's tech stack.

It's borderline unbelievable that any person would happen to have the right tech skill set for about 153/155 jobs, so either the data you collected doesn't reflect the real reasons why you didn't get some opportunities, or else you are a massive outlier in terms of your qualifications. Either way, your data doesn't seem generally applicable.


That hasn't been my experience. I've had plenty of offers where I literally didn't know their primary programming language at all.

Especially as you get to higher level positions, thinking skills are far more important than experience.


Yup yup. Thinking, communication, functioning as a human being who will have to talk to people who are not nerds. Simple asks, but they're uncommon enough that they can bend the odds a whole bunch.


People suck at hiring.

Your story is exactly why I haven't put anything personal up on Github. I'd have to polish it beforehand and life is short enough as it is.


I don't think companies really don't want employees that think independently. These employees come with a ton of upside. However, not everybody turns out to be a star and in some companies (plenty still foster it) they don't want their average employees to be completely rogue.


> However, not everybody turns out to be a star and in some companies (plenty still foster it) they don't want their average employees to be completely rogue.

I think it's more that most companies don't want employees challenging decisions made higher up in the org chart, star or no star. A lot of people don't like having their decisions challenged, especially when they're wrong or they have a hard time defending those decisions.


There is even a vein of organizational management research literature on topics like this, see e.g. [0]

[0] "Reversing the Extraverted Leadership Advantage: The Role of Collective Employee Proactivity." by A. M. Grant, F. Gino and D. Hofmann

[PDF] < https://mgmt.wharton.upenn.edu/files/?whdmsaction=public:mai... >

Briefly, the paper suggests some evidence that the most disliked type of employee is a subordinate who is introverted and also proactive. Someone who takes initiative, solves problems independently, and is self-reliant, is seen as a problematic and uncooperative subordinate.

Employers say this is the type of employee they want -- someone with a lot of self-reliance, independence, ability to think on their own and needing little oversight. But actually they don't really want that, because the micromanagerial oversight and the need for the manager to step in to direct people is what the management layer uses to justify their compensation and status in the firm. If everyone beneath you handles things without your intervention, it's just a short step to a situation where they claim credit instead of you, and maybe get promoted above you. This makes a lot of middle managers sweat and become paranoid about putting their stamp of micromanagement on everybody's work, which means they need subordinates who require more attention and who reliably can't find the right direction or solve the problem fully independently, and who will be satisfied when given work that doesn't allow for as much autonomy.

High performers and independent thinkers will want autonomy (there's actually a lot of literature about this too), and giving them autonomy would be overall good for the company. But it would be bad for specific gatekeeper middle managers.

That's why they talk a big game about hiring people based on their creative thinking abilities and general aptitude, but in reality they instead focus on micromanagerial things, like how much of some specific Hadoop tool API have you memorized, or how much direct experience do you have in precisely our exact tech stack. These are just status games to protect them from actually productive subordinates.


> I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract level.

I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming.

There are lots of good jobs for people who can program effectively. There are also lots of good jobs for people that can think abstractly about CS problems. These jobs don't always overlap.

You're right in that bootcamps are not a replacement for the traditional CS degree. There are things you can do in a 4 year research institution that are difficult to do in a 12-week program. It's probably more fair to compare a University program to a bootcamp + 3.9 years of working professionally.

It also almost unfair to call the CS degree traditional. Of the STEM degrees, it is probably the newest and least understood. Bootcamps are wonderful since they help people get awesome jobs, become amazing contributions to society, and in turn will continue to help the CS degree through its identity crisis.


> I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming.

Huh? Even if you didn't want to learn to think abstractly, you would still be enrolled in courses like "Data Structures" that force you to. Did you get a CS degree?

You're also making the assertion that you can code successfully without learning abstract thought. That's like saying you can paint a picture without knowing how to use a brush. Quite literally, you can't program without keeping an abstract model in your head of one form or another. Things like OOP helps make these abstractions tangible, but it is nevertheless, just your own vision of how 1s & 0s gotta fly around.

I think it's bad form to assert most students who complete a 4 year degree don't ever think at an abstract level. It's rather ridiculous from my vantage point (again, it's 4 years), but maybe your experience is different.


I'm confident you can get through an Algorithms and Data Structures course (which is the most difficult aka "weeder" course at most institutions) by memorizing a handful of sorting and search methods. You probably won't impress the Professor, but I'm sure you can pass.

OOP and other design patterns are also susceptible to memorization. I suspect that you're bringing this up because we have vastly different views of what difficult abstract thought is.

Here are two problems that I suspect are difficult to solve on programming experience alone.

1. How does Google display instant results (and recommendations) when you type into the search bar?

2. How would you build a Siri competitor, and what would be the biggest bottlenecks?

A problem that someone with minimal programming experience could probably solve would be.

1. How would you build me an inventory system which has an app, automated deploy, and unit tests?

2. Imagine you have only ever built Android apps with a NodeJS and Mongodb backend. How would you build an iOS app with a Python and MySQL backend?


Ok, you'll pass but how will you get through the advanced courses? I don't really understand the point you're making. If I combined these two statements together, I get "it's the exception to the rule because most grads just memorize enough to pass"

No, we don't have varying views of what abstract thought is (let's drop the "difficult" cause it's irrelevant). Your view is simply wrong because even your "how would you build an inventory system" takes a tangible (inventory system) and asks you to come up with a programming (abstraction layer above 1s & 0s) solution.

Some examples of not abstract thinking:

* Memorizing (good one you nailed it; bad that you insinuate most engineers coast through 4 years only learning to do this)

* Observation

* Memory-recall

Some examples of abstract thinking:

* Math

* Imagining something

* Philosophizing something

What you're referring to is abstract problem solving, which involves two things specifically for engineers: math & imagination.

You didn't answer the question. Do you have a CS degree? I don't think you know what you speak of, and I would not go around telling people "most CS grads just coast thru never abstract thinking." Your fictional split of programming VS abstract thinking I already proved is false with my painting analogy.

So again -- do you have a CS degree? What was your experience like? And if you don't, well, maybe you shouldn't be talking.


Thank you for your valuable input.


Couldn't agree more but I think bootcamps could probably steal some of the magic that CS has.

I spent years programming as an amateur/hobbyist and I thought I knew it all. When I started studying discrete maths and functional programming at the university level it opened my eyes to a lot of things. Suddenly computers weren't hardware they were just implementations of a theoretical idea where many more things were actually possible than I had ever thought of before.

Once you know even elementary discrete math such as sets and logic programming becomes more of an exercise in seeing if you can realize abstract ideas and models.

I do wish CS gave me a better more practical mindset around real world problem solving though. Maybe there are some things you can only learn in the industry but it took me awhile to adjust my attitude and really become a productive programmer.


> Once you know even elementary discrete math such as sets and logic programming becomes more of an exercise in seeing if you can realize abstract ideas and models.

I agree with this 100%. The proof exercises you have to complete in discrete math make for great programming exercises. They force you to ask yourself

1. What's the problem? 2. What do we know? 3. How do we get to the end? 4. What does it look like to be "done"?

These are great questions to ask yourself when programming.


Yes, when you combine this thinking with thinking about the real world in a holistic manner you basically unlock programming super powers :)

Some what tangentially related, hammock driven development: https://www.youtube.com/watch?v=f84n5oFoZBc

The part about pushing on the problem statement is always useful, even if you don't have time to think about problems like he describes.


This thread is confusing me:

>"Boot camps have their place, but they are not a replacement for a traditional CS degree" //

Don't they teach different things. Boot-camps teach programming and CS degrees teach, well, computer science. Do boot-camps really address things [that I imagine CS degrees cover] like information theory and algorithm design, Turing completeness, language design and such? I imagined they chose one or two programming languages and taught the craft of program implementation?

I'm not a programmer but have learnt the very BASICs (lol!) of a few programming languages, in doing that I've barely touched on any CS worth talking about - normal forms in db design and comparison of a few different sort algos would be about the limit.

I always thought CS vs. programming was like physics vs. engineering?


You're correct, and people are being ridiculous for conflating the two. They are different things. If you want to get a job as a developer, a bootcamp is clearly the way to go as far as efficiency, cost, and pragmatism. Otherwise do a CS degree.

A bootcamp is absolutely unquestionably a replacement for a CS degree in the context of getting a practical job.


How do you suggest structuring an interview to find candidates who are able to think abstractly? I don't think the current trivia-esque style interview works.


I've worked for places with trivia-esque interviews and I agree it works really badly. The only things worse was the "tell me about your greatest weakness..." style favored by the MBAs.

I'm very happy with the people I work with now, who were mostly hired by an audition-style interview: here's a problem that's simple to explain and not simple to solve; solve it with a mix of whiteboard coding (required) and (optionally) proofs, drawings, arguments...


I like to give candidates a word problem. It doesn't need to be complicated, but I want to see the candidate turn it into code. Doesn't matter what language. Just show me you can read and understand a problem and write down the solution. I never cease to be amazed at the number of people who freeze like a deer in the headlights.


Funny enough, solving this requires thinking abstractly.


We've hired a couple of junior developers lately that had no college experience but significant online training and the experience so far has been very positive.

Given how long it takes universities to update course materials, I'm not sure they can compete with this kind of education programme. It's true that a lot of the fundamental computer science is missing but with senior devs on the scene, any gaps can be filled with an afternoon around a whiteboard.


One thing I realised my final year of University is how much marketing Universities do towards the job market.

They shop their students and curriculum around to employers all over the county (some on an international level).

There is going to be a lot of inertia involved when it comes to hiring from Universities that most Bootcamps don't even consider or spend time doing. I don't think they give universities any cause for concern, and wont, for some time.


So basically, the guy who builds a rafter is a woodworker, the guy who nailed the rafter to the structure is a woodworker and the guy who made the dining room table is a woodworker. Each guy is important, but the skill level and education time are different. Not every rough carpenter needs to have an extensive education in fine carpentry to be successful in their area of woodworking.


It's hard to measure hunger. My intuition is that it plays a big role when it comes to finding success after going through a bootcamp.


when I read "4 years" I don't remember doing nothing but code for all 4 years during my CS degree. Part of the appeal must be that you focus on just coding intensely for a short period of time. I'm thinking back on my 4 years at pitt.edu and my god did I waste a lot of time. If you distill it all down, maybe it does == 3 months at good camp.


I would love it if Computer Science grads took a boot camp course - one that covers css/html/javascript, any MVC framework, ntier patterns, ORM/SQL/NoSQL training. Because from my experience, they apparently don't teach any of that in comp-sci school.


None of the things you mention are part of the Computer Science academic discipline, which is what they teach. Computer Science undergrad generally covers algorithms, data structures, parsing/compiling, operating systems, discrete mathematics, and linear algebra.


All you need to know: some companies can use bootcampers very effectively, some cannot. It all depends on what the company is doing. It's evident that since many companies have found great success while employing bootcampers that the skills they provide are useful.


I think this supports the hypothesis that schooling (secondary, post secondary, bootcamps, whatever) is first and foremost a sorting mechanism. Bootcamps have discovered _one_ avenue for quickly assessing and sorting students into a career they can succeed at.


So triplebyte still can't infer anything about how well a software engineer performs on their job from the metrics that they are gathering though if they're basing performance on how well they do on their coding questions and interviews?


Bootcamps seem to encapsulate and accelerate the "I taught myself to program in middle school and high school" experience for adults who missed that boat - which is great.

The results make a lot more sense when you look at it that way.


I think this misses a huge point: College is a huge factor in social development; This is extremely important not only for developing software on a team, but to developing a healthy lifestyle in and out of the workplace.


College is far from a panacea for becoming accustomed to how an adult lives and interacts with other adults. American society encourages taking on massive debt, moving away from a support base, and tying social interaction to practices that are often deeply unhealthy. It took me three years of attending myself to realize my mistake—it nearly drove me to suicide. Dropping out and actually trying to interact with real adults was what got me humming again.


I don't understand. Are you implying that taking a boot camp means you haven't graduated college? Out of my class of 24, only 1 person didn't have an undergraduate degree. Several even had masters.


A lot of bootcamp grads did do college, just not CS. Bootcamps are a great way to change careers.


There are other ways to mature as a person. Such as military service, volunteer work, meditation, travel, and other challenging personal journeys.


Ahh the old socialization argument. When all the quantifiable claims are proven false this is the educator's best standby.


Universities don't necessarily teach students programming. They teach them Computer Science.

Bootcamps teach students programming, definitely not CS. I highly doubt they could teach a student 4 years of CS material in 3 months.


I would love to see a break out for people who are neither bootcamp grads nor college grads but who are completely self-taught, like me :)

Surely they've received some applicants in this category.


Triplebyte figured out in twenty minutes that I didn't learn enough while getting a CS degree at CMU in order to get a programming job so... good luck to them.


This is neat, although as someone who attended neither (well, not for computers anyway) I guess I can't do the solipsistic thing and look for myself.


I find the whole premise a bit amusing, because in my country the prime target audience for bootcamps are undergrad CS students or fresh graduates.


I'm not sure why this is a surprise. Computer Science and Software Engineering are different things, the only common factor being programming.


Nice ad.


I wonder how many of the engineers at this weeks Google I/O or the next Apple Dev conference went to bootcamps.


Probably not a lot.

One obvious reason is because they heavily recruit from elite universities. They have the budget, size, and reputation to make that approach work.

Another reason is because the number of people who have gone through bootcamps likely represent a tiny portion of the programmer labor force. So looking at the percentage of Google engineers who attended bootcamps has to be compared to the larger pool of applicants, otherwise it may not be measuring what people think it means.


I believe not all bootcamps are equal.

Is there anywhere a curated list of good, recommended, worth your money bootcamps?


whether or not you come from a CS background, or a bootcamp background the proof is in the pudding: can you answer the whiteboard questions? if so, you pass, and nobody cares where you went/did not go to school.

if that's not enough, revise the whiteboard question.


What a load of crap.

What, they bred the capacity for abstract thought into you in college?

College attracts a generally higher quality applicant pool. You're mistaking selection bias for an effect.

Let me tell you, I've interviewed programmers from all over. There are boatloads of people with CS degrees with close to zero capacity for creative thinking. There are also boatloads of CS grads who can barely code their way out of a while loop (true story!).

I've spent my career (no CS degree!) working alongside CS grads. I've gone further, faster, than most of them. I've had to deal with this kind of idiotic commentary over and over again.

CS grads are always surprised that I never got a degree (oh, I never would have guessed! you're different, its those OTHER people without degrees who are idiots). Four years of school + the associated debt creates a big incentive to believe that you got a square deal out of college.


> What a load of crap.

> What, they bred the capacity for abstract thought into you in college?

> I've had to deal with this kind of idiotic commentary

Please edit this sort of name-calling and abrasiveness out of your comments to HN. It breaks the site rules, degrades the discussion, and provokes worse. Your comment would be much better without it.

We detached this subthread from https://news.ycombinator.com/item?id=11732185.


Thanks. Now instead of abrasiveness it's abrasiveness without context. Is your software just not capable of hiding things without "detaching" them, or is there reasoning behind this incomprehensible moderation policy?


I'm not sure I understand your question. But I shiver at the wrath of Hacker News were we to "just" hide things.


By that I mean "hide from people without showdead", of course. (I have it on.)

The question is "why do you move moderated comments from where they were to the top level?".


Usually we do that so we can mark the detached subthread off-topic, which makes it fall in rank. In this case we didn't add that extra penalty, but detaching it from the top subthread had much the same effect.


Chill out!

It's not that four years of study guarantees capability, but four years of study does mean far more exposure to far more technology and methodologies than a 12-week bootcamp can offer.

In my experience, boot-camp and self-taught developers have a different set of skills from a CS graduate. The former could well be very effective at lots of development tasks - but I have found that knowledge is often shallow, in that while they may practically know about, say, implementing a web application in Rails, they would struggle with a different toolset.

This is obviously not always the case, and there are many talented self-learners out there, in part because they aren't as lazy as the somewhat more entitled CS graduate. But contrary to the popular trope, I have rarely if ever encountered a CS graduate who can't code.


Does this include the CS graduate from BYU-Idaho or Oral Roberts University?


No, but I'm in the UK and haven't really encountered many US CS graduates. It's possible that there are fewer poorly-skilled graduates here I guess.


Anecdotes on every side.

Even so, given the top 10% of their respective classes i'd easily take the CS grads over the bootcampers. Mid tier could go either way. Bottom tier i'd take the bootcampers.


I'm not sure I'd want "bottom-tier" coders period, even if it were bottom-tier Stanford grads, or bottom-tier Googlers. Bottom-tier is typically really bad.

That said, bootcamps (at least the ones with good reputations) are usually much more aggressive than colleges are about kicking out students who can't do the work or have serious attitude problems. So the floor is probably higher when it comes to bootcamp grads vs. CS grads.


No, they don't breed the capacity for abstract thought in college. But they do teach it. That the typical student could learn as much in a short bootcamp as someone learns in a CS program over four years is wishful thinking.

Of course, it may well be that much of what you learn in all that extra time in a CS department is not that important to the typical working programmer. And many people pick up a knack for abstract thought somewhere other than a CS program.

I'm sure it's also true that a CS education often fails in instilling the deep knowledge of the topic that it is designed to. Lots of students are just not that bright, or don't do the work. And sure, selection bias surely has some effect. But it doesn't change the basic fact that you can learn more stuff in four years than you can in three months.

The fact that you consider yourself to be superior to most of the CS grads you've met is just the worst kind of anecdotal evidence. (Did you also do a lot better than the bootcamp grads you worked alongside? How do you know you aren't just more competent than the average student in either program? How do you know that the CS grads you've worked with are representative.) Meanwhile, the very post you're commenting on presents real data to suggest that, whole bootcamp students are just as good as CS students for most practical purposes, they typically lag far behind on knowledge/understanding of algorithms and data structures.

I really don't mean any of this as an insult. I have no doubt that you really are more talented than most CS grads. And in your case (and perhaps in many other cases!) perhaps it really was a smart move to save your money and skip college. But you've given the rest of us very little reason to think that your experience generalizes.

And by the way...

> Four years of school + the associated debt creates a big incentive to believe that you got a square deal out of college.

You could say the same thing about not going to college.

(I myself do not have a CS degree.)


> You're mistaking selection bias for an effect.

> I've spent my career (no CS degree!) working alongside CS grads. I've gone further, faster, than most of them.

So we should replace selection bias for confirmation bias?

It's hard to read your reply as anything but reactionary and defensive, given that you paint the stance of the original comment as far more pro-college than it comes off as to me, only to knock it down with an anecdote about yourself. The original comment was about boot camps vs colleges, not colleges vs work experience and self-taught people. A twelve week course is not a substitute for four years, even if it is intensive. There's just not enough time to reflect on what you've done or be exposed to enough different concepts in depth to be equivalent.

That's not to say that experience doesn't trump both. You have experience. which accounts for your skill level. College and boot camps both try to impart experience at an accelerated pace, college just attempts to be broader and deeper over a longer period, while boot camps must necessarily by very narrow due to their length, any increase in the breadth of topics will necessarily reduce depth.

> CS grads are always surprised that I never got a degree

Then I imagine you are referring to fresh graduates. From my experience, there's quite a high percentage of non-CS people who do software engineering, you quickly learn to drop your preconceptions lest you be continually shown ignorant. I don't blame college graduates for this, they've yet to experience most of the world.


I think you might be attacking a straw man. I'm a strong believer in the traditional CS path, but when I argue for it in the context of a 4-year degree, I'm really just using shorthand to describe the most obvious way to get there.

Will Hunting was right about a library card, but many -- I think most -- people require the discipline imposed on them by a university setting to actually do the work. Obviously -- obviously! -- you can learn this stuff on your own. But I doubt there are many self-taught programmers who've actually spent hours drawing out trees and solving recurrences and so on. To the extent that you've done that, then hooray for you!


Definitely agree with you here...as a current faculty member, but someone who has been largely self-taught in recent years, I have to keep reminding myself that I myself needed the structure and artificial deadlines of homework and finals to get into the groove, to get to the point where I could get a job in which I learned more skills at a significantly faster rate (daily professional deadlines tend to do that to you). Not everyone starts out as a self-learner.

Recently, a guy named Haseeb made some news for scoring a job worth $250K at Airbnb even though he was an English major who was not even a year removed from his bootcamp entry date. People were pissed but if you read the guy's story, you'd see that he's not your regular bootcamper...he was a millionaire as a teenager after teaching himself how to play poker...and this is how he describes his bootcamp experience:

http://haseebq.com/farewell-app-academy-hello-airbnb-part-ii...

> Entering into App Academy, barely knowing the basics of Ruby, I came into the office and grinded every day, spending 80+ hour weeks just coding and studying. I’d come in at 9AM in the morning and leave around midnight, 7 days a week, sleeping in a bunk bed in SOMA in a 200 square feet shared room.

How many students at even the best colleges can describe themselves as working that hard on anything (well, other than athletes)?


> doubt there are many self-taught programmers who've actually spent hours drawing out trees and solving recurrences and so on

I am a self-taught programmer that has done exactly this. What good is reading the material if you don't pound some of that stuff into your brain? I never did homework in school, but I have done tons of it for myself.


> I've gone further, faster, than most of them.

I'd like to believe there's a trend where CS grads think that because they got their degree, they're done learning. I have a handful of friends — with their CS degree — who did exactly this.

But when you're self-taught, it's often out of a mix of passion and curiosity, and sometimes desperation ("man if I could just automate this, I'd have a killer startup!").

While I've spent only a few minutes in a post-secondary classroom, I think it'd be hard to find those qualities in the minds of students.


I agree with your assessment, and I have a CS degree.

I consider myself self-taught, I just happened to do a lot of it during a 4-year period. I'm pretty grateful to my school, whose premise is basically: "we're just going to set you up on some smart teams in some difficult situations. Learn your way out of it."

There's nothing inherently wrong with CS degrees, since you can basically learn whatever you want while getting one, but they don't mean anything either.


I think it's more that the abstract thought takes longer than 12 weeks or so to coalesce. If you start from nothing and spend a couple months cramming syntax details into your head, there's little time to ponder the mysteries of pointers. If you have four years to get acclimated to it by seeing it used in different courses in a variety of different courses, you probably have a better chance of understanding it.

Not that spending four years at college is a guarantee you understand it, plenty of people don't. But all else being equal, it's a higher probability.


I couldn't agree more. Although this may not have any statistical significance, I have personally met more great computer scientists with no CS degrees (but usually with some other STEM degree) than CS grads. My explanation for this funny modern phenomenon is that CS have been attracting, for the last two decades, people with no real interest in the ``science'' part in CS :) and universities are not helping either (eg teaching Java and SICP w/Python!). The solution? make CS much much more theoretical.


I, too, have often been amazed at interviewing and working with CS grads who can't seem to correctly think abstractly about a problem, breaking it apart into sensible constituent parts, and then productively attacking the problem. Sometimes, they seem unable to just start working on the matter, and instead get lost in thinking up the most creative and novel ways they could solve it with some new technical thing.

I studied history and philosophy in college/grad school.


That sounds like it would be common under pressure. If you have 45 minutes to do something, it could really mess someone's thinking up. Even being nervous or not sleeping well the night before probably has a big effect on performance.


Under pressure, sure. I've seen it with regularity during the normal course of daily work, too. It's always surprised me.


Same here, I have dealt with this since I was 13 years old, and it's total bs.

my first job in computers was 13 at a local college and I got so much crap from the it team there for being too young and not having enough experience even though I was hired because nobody there could write code well enough to parse dirty data from spreadsheets to pass into spss.

most of my family has a degree and some even teach, but I found it tedious and uninformative and always ended up the teachers pet, helping fellow students, which was fun, but I wanted answers to My questions.

I found the best way for me to learn is complete immersion in a subject, 24/7, read about it, write about it, if it's a language write in it, if it's a technology use it for everything possible and potentially possible. at the outset if you can get answers to the starting questions then that is useful (like training), but once you move out of the basics, in my experience, you will only progress to higher levels by answering your own hard to answer questions, and if it's easy to find answers to your questions, you're not there yet.

break things all day long and then fix them has been my learning mantra for many many years and like the parent poster, I've surpassed pretty much everyone who I've known with a degree in CS.


Simply out of curiosity, how did you get anyone to hire you at 13? Wouldn't child labor laws be a huge disincentive for someone to hire you?


Are you hiring? (I'm self taught, and my degree is in Art History)


Are you the standard, or an outlier?

// The ELK stack is pretty sweet.


Maybe I am an outlier, maybe not. That would need to be quantified. I don't think I'm an outlier. I think there's a wide range of skill sets across the percentiles in the non-CS set. Maybe those %s are different than in the CS degree set, but that's really hard to quantify.

Parent made the point that "All those concepts that they teach in CS isn't about knowing the name of an algorithm, it's about thinking abstractly."

The point is that making that sort of sweeping generalization is harmful to everyone. Parent is implying that there's a secret skill set that can exclusively be unlocked by getting a CS degree. I think we can all agree that as a categorical statement is plainly false.

These statements encourage people to not look at the individual but instead rely on a set of biased and unquantified assumptions.

// P.S. glad you like the ELK stack :)


//I work with Splunk currently and have been interested in looking at the capabilities of the ELK stack. have any recommended places to start?


Try this article: https://www.digitalocean.com/community/tutorials/how-to-inst...

Honestly, getting all three: Elasticsearch, Logstash, Kibana, all wired up is really straight forward. It's even easier if you use AWS's built in elasticsearch service.

I used ELK to analyze my nginx logs, and it worked really well, and now that logstash-forwarder is replaced by Beats, its even more reliable.


> it still just seems hard to believe that 3 months can compete with a 4-year university degree.

Yes, it is very hard to believe. Impossible, actually.

> Bootcamps, are intense. Students complete 8 hours of work daily

In-class time is not the gauge for college. Students are supposed to spend at least three hours studying for every hour spent in class. On top of that are office hours with the professor, as well as contact with the TAs or study labs.

If my courseload for a semester is Calculus 102, Theory of Computation, Algorithms 201, Principles of Programming Languages, and Computer Architecture, I don't see how it is different than a bootcamp because a bootcamp is "more intense". I don't know how you can get more intense than juggling these five topics.

> Traditional CS programmers spend significant amounts of time on concepts like NP-completeness and programming in Scheme...But it is not directly applicable to what most programmers do most of the time. Bootcamps are able to show outsized results by relentlessly focusing on practical skills...How to use an editor is something that a traditional CS degree program would never think of teaching.

Ugh.

I took a course in OS principles and then one in distributed systems. The first course covered mutual exclusion somewhat, the second much more. I spent quite a lot of time writing complex Java programs that handled mutual exclusion well. Guess what I am doing today, years after that course? Writing a complex Java program that uses mutual exclusion. I only took that second course because it fit my schedule, but it has come in very handy over the years.

Insofar as NP-completeness being "academic CS", I have unfortunately seen too many bugs ( https://bugs.freedesktop.org/show_bug.cgi?id=3188 , https://sourceforge.net/p/jedit/bugs/3278 etc.) where people did not heed the polynomial growth of algorithms.

They're trying to dumb down what you can't dumb down.

The reality can be seen if you look around a SoMa startup and wonder where all the grey-haired programmers went. Where did those programmers who were in their mid-20s in the late 1990s, programming for the dot-com startups, in an even more inflated market, go? Where are the grey-haired, balding programmers in your company?

And this bootcamp is the answer. Just look at the real estate prices and you know the market has heated up. Naval Ravikant turned down $600 million last year because he said there weren't enough places to invest that. Despite talk of perhaps some cooling since the beginning of the year, things are pretty hot. So get some kid to go to a bootcamp for a few months. They can only get their hands on one real programmer, but they can hire a few of these bootcamp kids to do a few MVP's, or maybe code some features up, which the real programmer will have to fix later.

What happens to these kids later, who have no foundation in what they're doing, who have no deeper understanding of what they're doing?

> programming in Scheme...How to use an editor is something that a traditional CS degree program would never think of teaching.

That's because a traditional CS degree program teaches you to write your own editor if need be. Stallman went to MIT and wrote Emacs, Bill Joy went to Berkeley and wrote vi.

What the hell point is there to teaching an editor? I was using Eclipse with Android plugins a year ago, now I'm using Android Studio. University is to teach concepts which will exist decades from now, not the Javascript library framework du jour.

The ones who will make out on this are the bootcamps, and the companies who can use these kids when the market is hot and will dump them when their usefulness is over. Just like what happened in 2000 (or 2008). You'll see what your bootcamp and two years working at a failed startup amounts to when the economy cools, job listings dry up and the posted ones say "BSCS required". Being able to cut and paste from Stack Overflow and use frameworks other people wrote and extended is not an educational foundation.

There are a lot of strawman arguments on the other side. Yes, the hardest working, brightest bootcamp graduate is probably better than the laziest, dullest person who managed to graduate from some third-rate college and get a CS degree. And so forth. None of that detracts from the point though.


This just in: web dev body shop is perfectly happy with bootcamp grads.


Also cheaper and faster, a good way to save tax resources maybe?


Over the last three years at Code Fellows in Seattle (www.CodeFellows.com) we've seen the market change a lot for students, hiring companies and curriculum.

At launch, there was a lot of pent up demand. 400 people applied for a Ruby class of 25. Most that took that first class had been self taught and in the surveys said they had been hacking at projects for an average of 18 months. Code school was a way to speed their path into a professional developer role (note developer, not engineer).

The majority of students today already have a degree and are looking to switch careers, average age of ~30. They are looking for skills to transition so in that way, going back to college isn't an option unless it's for advanced degree. The same is true for the veterans that are transitioning to the workforce, they have been in a very structured environment and want to speed through job ready training vs. four more years at college.

"Stack switchers" tend to be the top of the compensation range. If you have 10 years of .Net experience and want to switch to iOS. You'll earn top dollar. If you don't have much real world experience you'll land an entry level JavaScript job with that skill.

The needs of hiring companies has also shifted as the market has matured. There are more "code school grads" in the market looking for jobs, so the process of screening needs to be better, interviews need to be improved and tools like triplebyte.com improve transparency of skills. Hiring Junior developers has never been the preference for employers. Everyone would rather hire both skill and experience. But when you're competing with larger companies in a hot job market, you'll often take Junior talent that is a good culture fit.

By culture fit I mean a combination of past education, work experience and new skills. Combine that with work ethic and desire and you see why most of the strong code schools have a high (90%+) placement rate.

Curriculum have changed as well. Code schools have to be teaching at the front end of the hiring demand. Teaching an old tech stack where job postings are heading down won't work. Review StackOverflows recent survey if you're curious about stack preferences.

Code schools are also required to be licensed with each state where they do business. That's a requirement not all schools follow. It's really about consumer protection in that way so check with your state.

The industry is still immature and you're correct that there isn't any reporting standards, e.g. are placements rates reported at 90 or 180 days past graduation, etc? We're working with a number of companies like the Iron Yard to standardize on reporting and moving to audited results over time. I hope that someday we can apply the same placement rate standards to other academic institutions. As a dad of college age kids that would be amazing (note the White House tried that two years ago with a scorecard and the Universities said no).

Regarding the debate of should everyone learn to code or no one learn to code? It's a skill, it's not for everyone. It's a job that isn't for everyone. There are a lot of online resources, information sessions and one day courses, start with the low risk version and see if it's for you. With an average starting salary of $71k in Seattle, the compensation appeal is a strong draw for people outside of the tech industry. You may be drawn to the compensation just make sure that you are also drawn to the work.


I would love to add a few comments. I do not know about the specific CS program nor code bootcamp they are specifically are comparing about, but I can speak to a general CS degree and the general bootcamp education. Full disclosure, I am a founder of a coding bootcamp.

Nothing can replace a 4 yr degree with basis in theory and multiple subjects but bootcamps offer people a way to jumpstart a lagging career or make a step into a new one. Being hirable in this industry is saying something, and that is what a great bootcamp should do.

That being said bootcamps are teaching current real world and career-like solutions. Many argue that you don't actually get the real-world experience in CS 4-year degrees due to behind the time curriculum (due to long approval processes that coincides with accreditation) and long and sometimes boring lectures without a lot of application. Bootcamps take a flipped classroom, hands on, and immersive approach. Less lecture, more project-based learning.

Many developers fall under the 41.8% group on the recent StackOverflow study of self-taught developers. A very large number of developers in the market are finding their skills in very non-traditional ways. What many CS grads learn is undoubtedly useful, I would never take anything away from that, but with software expanding into so many different fields, blurring the lines between who was traditionally an "engineer" and who isn't, and with the increasingly rapid pace at which languages/frameworks/best practices are constantly changing, there are a lot more opportunities to contribute in code than by cooking up advanced algorithms with linked lists.

In fact, many of our partner employers were frustrated by the lack of applicable, modern technology competency by the CS grads they were interviewing. As only one piece of anecdotal evidence to this: we've had various CS grads take our programs because (as they described) they only learned languages that were not anywhere to be found in the companies they were interviewing with.

Companies are starting to recognize that those who apply themselves in a bootcamp are able to learn quickly and adapt to new technologies and projects easily. Employers are looking for someone to get the job done with the skill set that matches the technologies that they practice. Many employers don't care if employees have acquired that skill set in a garage when they were 12 years old, at MIT, or at a coding bootcamp.

But, bootcamps aren't for everyone, you really have to apply yourself and consume content quickly. But if those requirements are met, bootcamp attendees really can excel! I know because at ours we have had so many success stories just like the afore mentioned where a student truly applies themselves, lands an amazing job, or starts a hot tech company and truly changes the trajectory of their life. Plus it happens in a tenth of the time of a 4-year degree and at a fraction of the cost ;)

Bootcamps offer a more personalized mentoring. Being able to see delegates, resonate with students emotionally, pick up on subtle nuances of communication and respond appropriately is the very essence of education. I believe passionately that training and coaching are not about getting something from one head to another, but are an intimate dance that transforms both parties.

I hope that helps a bit.


Of course employers love bootcamps - they need business logic monkeys who lack the fundamentals and therefore don't increase in value over time as much as the people who actually put in the time with said fundamentals.

It's cheaper to have somebody who doesn't have a real education.


That's a remarkably cynical opinion. Why do you assume bootcamp grads learn and become more valuable at a lesser rate than CS degree grads? You're also making the assumption that bootcamp grads decided to forgo a CS degree in favor of an easier route, which in my experience is rarely the case - by and large bootcampers are there because they want to change careers, not as a way to cheat the system without learning "the fundamentals".


Obviously this isnt every case but quiet frankly it's bullshit if somebody who studied some "worthless" major like psychology or history then thinks they can do a 10 week coding bootcamp and be on par with a CS grad.

If anything the TIME alone that a CS grad has to put in to graduate puts them above coding bootcamps.


I don't think most people come out of bootcamps claiming they're "on par" with CS grads, but rather that they're good enough to be given a chance for some subset of programming jobs.

Also the time based argument strikes me as misleading - bootcamps are much more intensive than university curriculums. University students aren't studying 10-12 hours a day, 6 or 7 days a week every week; most Bootcamp students are. That said, I recognize that the University student undoubtedly takes in a greater volume of material, but the ratio is severely distorted by referring to it as 4 years.


Bootcamps certainly sell on the promise of an engineer salary. They preach it and let it get into your head. At the end of the day you have bootcamp grads feeling entitled to a six figure salary.

Personally, I work with some great bootcamp devs but as a 4 year college grad I don't enjoy seeing the time and energy I spent undervalued that way.


So would the best of both worlds be the combination? Four-year CS program for the fundamentals and the deep knowledge, then the summer after graduating (or really, senior spring, when the coasting sets in) a bootcamp-style training on practical development?

I don't think that a traditional CS degree makes you code enough to become a good software engineer. I certainly wouldn't have gotten enough practice actually writing code if I just did my coursework and didn't dabble in other things, like game development. Let alone other practical skills, like debugging/profiling (barely touched upon), source control (likewise), testing (completely ignored), project management/estimation (noop...).

I'm still amazed and horrified that I took a Data Structures and Algorithms course that required nothing beyond proofs and a little pseudocode - not a line of actual, working code. It could be tailor-made for really understanding memory-management or TDD.


> How to use an editor is something that a traditional CS degree program would never think of teaching.

Of course not. Why would they ever do that. It falls into the same bucket as version control. It's useful, but go learn it yourself because it's not that hard.


> Note: We are only accepting applications from programmers.

significant.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: