Hacker News new | past | comments | ask | show | jobs | submit login
Bootcamps vs. College (2016) (triplebyte.com)
77 points by amerf1 on March 31, 2019 | hide | past | favorite | 102 comments



I've worked as a bootcamp instructor, I've hired people from bootcamps, and I worked as self-taught programmer for years before going back to get my CS degree.

From my experience, the very top tier bootcamps basically function as an extended job interview. They select for people who either already have most of the skills needed, or who possess an extreme natural aptitude. Graduates from these programs can be effective programmers out of the gate. However, the pool of people who can pass these programs is extremely limited. The failure of many top tier bootcamps to scale points to this.

As for graduates from other programs, I place them in 2 buckets. The first is people who have substantial additional experience--they’ve been programming as a hobby for years, they learned python to automate work in their old career, they have a related career or degree etc... These candidates can also be extremely effective.

The second is candidates who have little to no experience beyond the bootcamp. These candidates from what I’ve seen are almost never a good fit. They generally come in below the level of a 2nd year college intern. 12 weeks just isn't enough time--barring extreme outliers.

The problem is that people who fall into the first set of candidates tend to be effective with or without bootcamp. My advice is that if you want to be a programmer, don’t pay thousands of dollars for bootcamp. Either take the time to go to school and learn the theory, or learn on your own through free or lower cost materials if you’re happy with CRUD jobs.

There are other ways to level up into more interesting work, but most people won’t learn the boring parts without external motivation and structure, and a CS degree is the easiest way to provide that.


I think this fits my understanding as well, though I think you could say the same thing about a lot of things e.g. don’t hire an expensive personal trainer when you can just watch YouTube videos and learn to work out on your own. For me, I see benefit from structured learning and accountability. They are expensive, but going back to school for a 1 or 2 year CS masters is way more expensive than a bootcamp in both time and money.


>For me, I see benefit from structured learning and accountability.

I definitely do as well. The problem I see is that the ROI just isn't worth it with the common 12 week bootcamps. It's not that you couldn't come up with a bootcamp program that was worth it, it's that I don't think 12 weeks is long enough. Look at skilled trade apprenticeships--they all take much longer. Even something like cosmetology school is a year long program.

If you had a program that was a year long and was priced similarly to community college, I think that could be worth paying for.

>They are expensive, but going back to school for a 1 or 2 year CS masters is way more expensive than a bootcamp in both time and money.

The problem is that those things aren't remotely comparable. I think the problem is that bootcamps are what for-profit education ends up looking like. 12 weeks isn’t based on how long it takes someone to become proficient, it’s based on how long people are willing to go with no income.


There are multiple companies founded around your observation that 12 weeks doesn’t cut it. Lambda School takes nine months and Turing School takes seven months. Both are much more expensive than community college but they also provide far more support and instructional hours than you’d get in the equivalent time at a community college and Lambda School’s programme integrates the job hunt.

Turing School can arrange loans for tuition ($20,000) and Lambda School’s students almost all pay via an income share agreement, where once they’re earning over $50,000 a year they pay 17% of pre-tax salary up to a maximum of $30,000 over two years.

Neither of their programmes are comparable to a Master’s in CS but they're roughly comparable to a graduate diploma or an assiciate’s degree.

Lambda School’ Front End curriculum

https://lambdaschool.com/courses/cs/web/

Turing School’s

https://www.turing.io/programs/front-end-engineering/


Actually looking through Lambda school’s curriculum...besides the networking section the rest is comparable to the curriculum covered in a shorter bootcamp.

Again, I probably agree with the hypothesis that the best grads of a short bootcamp probably had the skills to get good jobs regardless of attending or not...probably starting with some informal experience and the bootcamp took them from a 3-4 to a 7, or enough to get a pretty decent job.


For unaccredited online programs, I think both of those options are far too expensive.

Edit: a comment below pointed out that Turing isn't online.


Lambda is online, Turing is in person in Denver.


I also noticed that they are a non-profit, which gives me a bit more confidence. I'd still be uncomfortable advising someone to pay $20k for an unaccredited program.


You do realize there are millions of college students who pay $200k over 4 years to attend accredited programs that graduate with no discernible skills, right?


There are barely millions of students paying $200k, much less millions paying that much for "no discernable skills". That's at the upper end of people paying full sticker price for private schools. And it's unlikely someone makes it through a 4 year program with no skills whatsoever.

And I wouldn't recommend a $200k degree to anyone either unless it's from an elite university where the signaling and networking is worth it. Also top tier universities almost universally offer income based financial aid.


You’re placing faaaar too much weight in accreditation


It's a minimum standard that enforces some level of transparency and accountability, and it means that you can generally find somewhere else to transfer to that will accept your credits.

You also might want to disclose that you are the founder of Lambda School.


Turing must be accredited in some fashion. You can use GI Bill to pay and get student loans to pay tuition and living expenses.


What matters for most people is not accreditation, but rather how much the program can boost the student's income.


What matters is people's perception of how much a program can boost their income.

Perception and reality often diverge--particularly when there is significant information asymmetry. Accreditation doesn't fix this problem, but it alleviates it by providing minimum standards and consistent metrics to allow more comparison.


Wouldn't the metrics here be things like conversion rates, median/average incomes, average time to employment, etc, from previous cohorts?

Accreditation still feels to me to be in the perception category for the parties who are new to the process, just a basic gating... the hard stats for real-world performance indicate the industry perception and are going to align with actual expectations bar a shift in industry hiring practices or program quality.


Right, but if 12 weeks was too short to get a job then how are people getting jobs...? You’re saying that the people who do get jobs would’ve gotten them had they gone through the program or not?

Looks like Lambda school is 9 months now (I though it was 6 but perhaps they increased it). That is equivalent to a full academic year...whats your experience with Lambda school grads and are they objectively much better than one graduating from an in person one?


>You’re saying that the people who do get jobs would’ve gotten them had they gone through the program or not?

Yes that's what I'm saying. Except for the very top tier programs, no one cares that you have bootcamp on your resume.

>Looks like Lambda school is 9 months now (I though it was 6 but perhaps they increased it). That is equivalent to a full academic year...whats your experience with Lambda school grads and are they objectively much better than one graduating from an in person one?

I’ve never hired anyone from Lambda school. I did spend some time looking into it when I’ve seen it pop up on a few resumes. The threshold for repaying tuition is 50k a year and it’s 17% per year for 2 years (capped at $30k). That’s about 3x more than what the OMSCS at Georgia Tech costs. And since you can get federal loans for GA Tech, you can have a similar income based repayment plan (capped at 10% of income above 1.5x the poverty level).

For an online course, that is way too much.

I also found that there’s a guy claiming to be the co-founder who spends his time on reddit arguing with ex-students.

https://www.reddit.com/r/learnprogramming/comments/8qopsz/if...

Also other threads with people claiming to be employees arguing with former students. Doesn’t exactly inspire confidence.


> Except for the very top tier programs, no one cares that you have bootcamp on your resume.

Couldn't Lambda School be one of those top tier programs?

> For an online course, that is way too much.

Lambda's co-founder recently tweeted that the number of applicants as grown six-fold in the last 3 months [0]. If their offering is such poor value for money, why is there such a huge demand?

[0] https://twitter.com/Austen/status/1111324507715690496?s=19


>Couldn't Lambda School be one of those top tier programs?

It's not. It's nowhere near selective enough to have a high enough percentage of their applicants end up at a FAANG company.

>Lambda's co-founder recently tweeted that the number of applicants as grown six-fold in the last 3 months [0]. If their offering is such poor value for money, why is there such a huge demand?

I have no idea whether Lambda school is effective, but number of applicants to a program with no upfront costs that makes big claims about return on investment doesn’t imply anything other than good marketing.


You seem to be saying that unless a significant fraction of their students end up at FAANG companies then recruiters will not care whether "Lambda School" is on a resume. Is there anything Lambda could do to change your mind on this point? For example, suppose they submitted their graduates' CVs to 100 job ads, but for 50 randomly chosen ads removed any reference to Lambda from the CV, then reported a significant difference in response rate...?

> I have no idea whether Lambda school is effective

Similarly, might an A/B test persuade you on this point? Suppose Lambda identified 100 applicants who met their admission criteria, but 50 were rejected at random, then Lambda reported a significant difference in the median income of each group over the next two years...?


>You seem to be saying that unless a significant fraction of their students end up at FAANG companies then recruiters will not care whether "Lambda School" is on a resume.

To be a top tier bootcamp, a significant amount of your students would need to end up at FAANG companies because that's what top tier means, but you could run an effective bootcamp that wasn't top tier.

However bootcamps have a bad reputation because there are too many terrible bootcamps. Therefore to cut through that noise, as of right now, your bootcamp needs to be top tier.

>Is there anything Lambda could do to change your mind on this point? For example, suppose they submitted their graduates' CVs to 100 job ads, but for 50 randomly chosen ads removed any reference to Lambda from the CV, then reported a significant difference in response rate...?

Sure, assuming an outside independent group did the test, and you replaced 9 months at Lambda School with 9 months of equivalent experience, but that's not going to happen anytime soon. Reputation is just people's perception, and right now outside of a few elite bootcamps, the perception is that bootcamps in general are mostly a neutral to negative signal.

>Similarly, might an A/B test persuade you on this point? Suppose Lambda identified 100 applicants who met their admission criteria, but 50 were rejected at random, then Lambda reported a significant difference in the median income of each group over the next two years...?

Sure again assuming an independent group conducted this test, so I wasn't just taking Lambda's word that the recruits were rejected at random.

But what's the point of this? No test like that is ever going to happen.


Hour for hour 9 months of a Lambda School schedule is actually closer to two academic years.


Yea but this is sort of akin to cramming. Some of the deeper stuff in CS and engineering, at least for me, took time to ponder and spaced repetition. I don't think 1500 hours or whatever it is over 9 months is quite the same as 1500 over 2 years.


But most companies don’t care about the “deeper stuff”. Most development isn’t rocket science.

You don’t need deep understanding of computer science writing yet another software as a service CRUD app or most bespoke internal corporate tools that will never see the light of day outside of the company.


I'd argue that most companies do care about theory based on the kinds of questions that come up in job interviews. A lot of this is cargo culting sure, and maybe some of them care about it for the wrong reasons, but they do.

>You don’t need deep understanding of computer science writing yet another software as a service CRUD app or most bespoke internal corporate tools that will never see the light of day outside of the company.

Sure provided you’re having your hand held by someone on your team who does have a deeper understanding--basically acting as an apprentice. There's nothing wrong with apprenticeship, but you also don't need a bootcamp to prepare your for that.

And if you ever want to move beyond writing CRUD apps, you’re going to need to make your way into much more complex territory at some point.


Let’s take TurboTax as something I would call a complex piece of software. I’ve never worked on TurboTax, but I have had to develop software with a more complex set of business requirements.

The complexity in much of software engineering comes from understanding the business requirements translating that to code and making a system usable.

Most development is not about leetCode and DS&A.

The most we can expect from a junior developer who just graduated from college with a CS degree is for them “not to eat the chalk.” At least the boot camp grad can hit the ground running and add features.

The type of theory companies care about isn’t how to invert a binary tree and whether you know how to write a merge sort. Heck even C had the built in qsort that was good enough.


>The most we can expect from a junior developer who just graduated from college with a CS degree is for them “not to eat the chalk.” At least the boot camp grad can hit the ground running and add features.

This is the exact opposite of my experience. Bootcamp grads tend to come in well below early college interns.

>The type of theory companies care about isn’t how to invert a binary tree and whether you know how to write a merge sort. Heck even C had the built in qsort that was good enough.

I don't really care whether you can implement merge sort from memory. But, I've been on both sides. And understanding the relational model, graph theory, set theory, computer architecture etc... has made translating business requirements to code a hell of a lot easier.


I did C bit twiddling for the first 12 years of my career and I worked in assembly a little bit as a professional and a lot as a hobbyists growing up. I had to understand simple data structures but the most complicated algorithm I had to implement was the “shunting yard algorithm” for a preprocessor I wrote.

I’ve even had to maintain a bespoke development environment/IDE/compiler/VM for Windows CE written in C when I was transitioning to an “enterprise developer”.

But, for the last 10 years, I can honestly say that nothing I have done takes any level of advanced computer science understanding that you would learn in school.

Schools don’t teach what I consider “computer engineering” - how to build a maintain complex system within a team that translate business requirements to working maintainable systems.

Most developers aren’t doing anything new or complicated, they are just taking preexisting tools, frameworks, packages and putting them together. They aren’t even working in non memory managed languages anymore.


>But, for the last 10 years, I can honestly say that nothing I have done takes any level of advanced computer science understanding that you would learn in school.

I don't work at a FAANG company. We mostly work on boring line of business apps, but I use CS theory every single day. If I take what you say literally, my experience is so different from yours that we might as well be working in different industries.

My guess is that we have different definitions of "advanced" computer science theory, and that you've internalized a lot of what I'd consider computer science theory to the point where it seems like common knowledge to you.

When I went back to school, the programming classes weren't super helpful because I'd already been programming for professionally for 7 years or so. But in every single theory class I constantly discovered much better solutions to problems I'd had in the past, or in many cases I realized that I'd spent a day or 2 rediscovering a solution to a problem that was solved 50 years ago.

There were so many holes in my knowledge that I didn't know were there, and if you'd told me just how valuable having a more complete understanding of CS theory (and hardware) I wouldn't have believed you, but it has been immensely helpful.

>Schools don’t teach what I consider “computer engineering” - how to build a maintain complex system within a team that translate business requirements to working maintainable systems.

They do. I had several software engineering classes that focused on building large projects in a team--estimation strategies, design patterns, how to gather requirements and talk to business people etc...


I’ll give you that. I did graduate from college with a CS degree over 20 years ago. When I think of “advanced computer science”, I’m thinking of the leetCode, hackerRank, DS&A type of topics or even how different gossip and consensus protocols work.

I’m not considering design patterns, continuous integration and deployment, or something like the “Well Architected Framework” https://d1.awsstatic.com/whitepapers/architecture/AWS_Well-A... (not too AWS specific) as the stereotypical whiteboard algorithm type of questions that I keep hearing about but I have never had to endure.

If the typical school is teaching software engineering and not just theory, I find it amazing that graduates have never heard of unit testing, automated deployments, or even how to use git for source control. I end up having to come in as adult supervision for both types of developers - boot camp or recent graduates.


> leetCode, hackerRank

I think that broad knowledge of CS theory is useful, but I agree that being able to replicate specific algorithms from memory is not particularly helpful.

In fact I think that FAANG style whiteboard interviews are one of the worst interview systems ever devised.

>If the typical school is teaching software engineering and not just theory, I find it amazing that graduates have never heard of unit testing, automated deployments, or even how to use git for source control. I end up having to come in as adult supervision for both types of developers - boot camp or recent graduates.

Almost every class I had required us to submit projects using github (they wanted to teach source control, but they also wanted to see version history to discourage cheating). This was at both a middle tier state university for undergrad, and a top 5 university for grad school.

I've also hired plenty of people who were bad at unit testing, but I can't recall ever working with a junior who hadn't at least heard of the concept.


Don't you think it appropriate that you disclose your relationship to Lambda in such a comment?


I can say that personally, a bootcamp worked for me as I needed some kind of environment where I had some kind of obligations, real or not. I needed some kind of structure to put it simply. That being said, my success only came after the fact where a genuine interest and passion allowed me to further develop my skills for many months after "graduating"

And I totally agree with the advice to just skip the bootcamp and learn online for free. It's basically the same advice I give people who ask me about my experience. Therefore, I think the best solution would be to organize something within your community to engage with free resources together. Perhaps even pitch in small amounts of money to get a professional to review/mentor/help out on weekends or something like that.


Thanks for the insightful comment. I’ve been considering changing careers in about 4 years. MS is computer forensics. When I retire from law enforcement (as a computer forensic examiner) I will be about 45. I can program lightly in Python and other languages — enough to automate my job. If I want to do software development is it plausible to teach myself in 4 years? Am I hirable at 45?


>If I want to do software development is it plausible to teach myself in 4 years? Am I hirable at 45?

As always, it depends.

Assuming retire means you’re going to get some kind of pension, you could definitely be in a nice position to take contract jobs and let the pension smooth out any income fluctuations. Also if you can start trying to pick up contract work on the side now, you’d be a very good position in 4 years.

If you want to find a full time, entry level job, that’s doable as well assuming the economy is doing relatively ok in 4 years.

You could also try to find a programming job where your existing experience would be relevant so you're not starting out at the bottom. Maybe a programming job with a company that makes forensic software or just a company that works with law enforcement in general. Domain expertise is the big differentiator once you have a few years of programming experience.


Really depends, getting into programming from bootcamps isn't super easy and can be a bit of a crapshoot. One of the biggest pluses is if you have authored projects that you can show publicly - ideally open source. Try putting together projects on your side time. Even relatively simple ones can be impressive. For example, I whipped up a program that used selenium and ChromeDriver to automate exploration of YouTube recommendations [1]. Things like that can make your application stand out.

1. This is what inspired me to build this project. Hopefully I can build up some data and present my finding on HN: https://news.ycombinator.com/item?id=19524645


Works for TripleByte, doesn’t work for the rest of the companies who do white boarding interviews.

You don’t learn how to implement various sort algorithms by hand in boot camps (oh weird, I never had to implement or work with anyone who had to implement one yet we all had to pass that during whiteboarding).

I’ve hired boot camp grads with success and failure. I’ve also hired CS grads with success and failure.

The number one quality that determined their success in my opinion was grit and passion for programming. Programming is always evolving and really hard to master without dedication, time and so much trial/error that you’re so pissed off by the 18th time of trying to solve something that they 19th time when you do solve it the high is so intoxicating you’re ready to do it again on the next task.

None of that is taught in a classroom regardless of its a boot camp or CS degree.


Actually, you do implement sort algorithms in some bootcamps. Anecdotally have seen curriculum with merge sort, quick sort, bubble sort...also binary search and tree traversal (DFS, BFS) and Big O. Especially for the ones where you don’t pay until you find a job these bootcamps are going to optimize their curriculum to help you ace a typical engineering interview, hence a chunk of it will be spent on data structures, algorithms, time/space complexity etc.


Depends on the bootcamp. The one I went to spent a couple weeks on algorithms and data structures for the express purpose of interview prep.


Thats what I call the grind factor. Does the person grind it out until they succeed? Very important in programming.


Not all companies do white board algorithm interviews. I can honestly say that I have never had a whiteboard algorithm interview in 20 years. I have had to draw out architecture before.


I could see bootcamps working if they teach the process of learning and fixing one's own problems. Focusing too much on the actual content is a mistake imo. Programming is a constantly moving field and a good developer is always learning and self teaching. I suppose the total immersion and the sink or swim connotation of bootcamps could force students to learn on their own.

Meanwhile, at least in my case, schools don't appear to teach their students anything about figuring shit out. Students have to be hand held through a series of prepackaged projects that don't have any real context or motivation in the real world. Most importantly, they're never taught that programming is a skill. They don't understand that to get good at programming, they need to practice. Maybe most of them don't want to become world class programmers. But even a mediocre soccer player needs to practice dribbling. A CS student who just takes classes and doesn't write any more code than what is necessary is setting themselves up for failure, much like a fencer who only takes group classes and never practices.


I really dislike the comparisons between boot camps and college, as if they are substitutes for another. They’re not, and 100% depends on your goal.

If your goal is the fastest track to employment in any programming job, then web development/CRUD is probably the easiest route to get there, and a bootcamp is the most economical. However, you’re limited to only frontend web development or Rails or various js jobs. On the other hand hand, so many bootcamp grads have had astounding success transitioning from minimum wage jobs to 100k salaries in 4 months’ time.

A CS degree, on the other hand, is a long-term investment. Done properly, it sets you up for success for a wide variety of roles, and gives you hard earned understanding of the big picture that comes with years of studying. The blog post specifically advises you to hire CS grads (or grads with academic CS backgrounds) for anything remotely more specialized than javascript, like databases, etc. but, it involves 3-4 years of full time studying.

These are not substitutes each other: they are dependent on your goals! Each involves trade offs. Because I’m biased towards academic CS education, I’ll say this: tech is one the fastest changing industries, and I think it is crucial to be grounded in the fundamentals, not just for your future employability, but your overall understanding of CS and where your work fits in.


There’s absolutely no comparison to be made between a CS degree and a bootcamp program. One is vocational, the other almost purely academic. The main difference really is in mathematical training. There’s a wide gulf between the skills needed to succeed in CRUD web development, and the ability to succeed in a four year degree program that requires passing calculus, linear algebra, discrete math, and differential equations. I’d wager greater than 90% of working developers without a CS degree could not pass a test in any of these courses, or even discuss the topics at an intelligible level. If the role you are hiring for requires these skills, you need a CS or other hard engineering grad. The problem is that the vast majority of companies don’t need that, yet somehow feel like they are lowering their standards by accepting that fact.


> I’d wager greater than 90% of working developers without a CS degree could not pass a test in any of these courses, or even discuss the topics at an intelligible level.

I'd wager that 90% of working developers _with_ a CS degree would not pass any of these tests. The reality is that the vast majority of software developers use little to none of this math in their professional employment. We really need to stop forcing people to get science degrees to order to be employed in engineering, it makes little to no sense.


The fact that you don't use the knowledge gained in a particular course does not make that course worthless. The discipline in having to work your brain through the mental gymnastics required to understand the material stands you in good stead for solving different problems down the road.

I would far prefer to employ somebody who has a wide range of experience and knowledge over somebody who has churned out what is essentially the same CRUD web site anyday. Even if the job is to produce CRUD web sites.

One employee will just be able to produce what they have always done, the other will be able to look at the particulars of the problem, analysie it and potentially produce a product that is far more likely to meet the customers requirments.


> I would far prefer to employ somebody who has a wide range of experience and knowledge over somebody who has churned out what is essentially the same CRUD web site anyday. Even if the job is to produce CRUD web sites.

Do you also prefer to pay the premium price that someone with a wide range of experience and knowledge commands? There is an even higher premium to get them to accept doing CRUD work for any length of time, if you can convince them at all.

> One employee will just be able to produce what they have always done, the other will be able to look at the particulars of the problem, analysie it and potentially produce a product that is far more likely to meet the customers requirments.

It seems like you're conflating "once had this knowledge" with "currently has this knowledge", this is only true for recent graduates, after that you starting forgetting everything you don't use regularly. I'd encourage everyone to go an khan academy for a refresher on everything they've forgotten since middle school, I'd even forgotten things I was extensively drilled in like long division.

I'd also strongly disagree that a comp sci degree teaches you to break down problems and come up with optimal solutions.


The important question is: do employers care about CS degrees? My personal experience, having a (good) engineering diploma, tells me that the answer is a big NO.


> The fact that you don't use the knowledge gained in a particular course does not make that course worthless.

Thank you! It irritates me so much to see people refusing to learn just because it isn’t a sought-out skill listed in job descriptions.


For reference: I finished AP Calc AB (derivative calc) and BC (integral calc) my junior year in high school, audited multi-variable calc at a local college my senior year in high school (and tested out of it in real college freshman year). Also took AP Stats in high school. Took linear algebra and diff eq my freshman year in college at which point I was done with math classes for my major (electrical engineering /w CE emphasis). I'm certainly no math prodigy, but I'm not bad at math and find it pretty easy.

Yet...I don't use much of any of this in programming, it's mostly just not applicable. Calc is vaguely useful in the sense that understanding at a high level what derivatives/integrals are is a good thing to know, but if you tossed an AP calc exam in my face I would fail it. The most important ideas there (rates of change) are not hard to teach without the rigor of calculous. You don't have to pass calc 3 to have an idea of rates of change or gradient decent. These are pretty simple ideas you can explain to almost anyone as long as you avoid math jargon and get to the point.


Why is the thought that some people see software development as nothing more than a way to get money put in their account a couple of times a month so reprehensible to you?

Yeah I started out as a computer geek over thirty years ago in my bedroom doing assembly language. But anytime I spend learning anything at this stage in life is with the goal of making money.


Having a degree confirms you at least knew the math at one point, and could recall is quickly if needed.


They don't even need engineering degrees to be employed in engineering.


I’d wager 90% of working developers with a CS degree also could not pass a test in some random mathematical topic they studied X years ago in college either.

Also, while there are those that go from bartender to developer via bootcamps, a lot of people who do these camps have technical undergrad degees (other engineering, math, physics, etc.) and probably took as many math classes for their major as a typical CS grad.

And let’s be real...most developers, maybe especially at FAANGs, are frankly overqualified for their day to day job and aren’t doing much more than things they learned in a CS 102/103 class.


I think I understand what you're trying to say, but I don't think what you've actually said is correct. I'm a >senior engineer at a FAANG and have been in the software game for more than ten years now. I definitely do not feel overqualified for my job, and I don't know anyone else who does. Or, at least, I don't know anyone who actually is by their demonstrated skill at their work. I guess I can't know their internal feelings unless they tell me.

What I can agree to is that the job has significant challenges that a CS education does little to prepare you for. The interpersonal challenges. The challenges of designing large systems, forward and backward compatibility, the interaction of business and technical priorities, deployment, production safety, etc. And it makes little use of a number of skills that were very important to CS performance. I can tell you I've used zero graphics programming knowledge, little of my compilers course, very little of what I learned in my networks course (despite that I'm regularly called upon to write programs that communicate over the network). I've written exactly one proof since I started my professional career. In that sense, my CS program over-qualified me for the work. But I think it's more accurate to say that I'm differently-qualified, education-wise, from the field I'm actually working in.


Replied to the other comment, but I hear too many stories from angsty mid-career FAANG developers who do little more than write a bunch of Protocol Buffers all day, every day.


That isn't the type of work I do.


I wasn’t suggesting that you did, just saying anecdotally hear a lot of gripes from mid level FAANG developers whose day to day is that, hence the point that many, but not all, developers are probably overqualified for their day to day role.


I don't know about overqualified, it's more that the job is hard in a different way. I'm not a CS grad, but it's not as if I'm actually using my numerical analysis or computational fluid dynamics coursework either.

However, I do jump between discussing if a trie is the right way to implement something, discussing whether the "simple" model should be a SVM or boosted tree, trying to figure out if we've covered the major abuse angles in our product, coordinating with all the other teams we're collaborating with, analyzing the experiment results, etc, etc.

Having at least some actual CS certainly helps fill in the gaps, even if it's not what I'm doing most of the time.


Do CS grads study svm?


Yup! Senior computer engineering student, we covered SVMs in our machine learning 2 class!


Many CS programs have machine learning courses, but at least when I went to college they were not required.


> I’d wager 90% of working developers with a CS degree also could not pass a test in some random mathematical topic they studied X years ago in college either.

I wouldn't, either. But I've discovered that if I go about relearning it, it comes back very quickly. Having learned it before, I also recognize when I need to go relearn it, and what I need to know.

It's a lot better position to be in than having no idea how to go about figuring out how to solve the problem.


So true, it's the unknown unknowns that tripped me up before going back to get a Masters CS degree.


At FAANG most of the work is boring copying from one datastructure from another. The remaining 5% needs understanding on working on big data, which means statistics (as long as you're working on backend...I'm sure frontend needs less math).

I haven't seen differential equations, but sometimes calculus, probability theory and a basic understanding of machine learning and deep learning is needed to understand what other teams that you're working with are doing, or to analyze the statistical significance of an experiment that you ran.

At FAANG I often wished I knew probability theory and statistics better (instead of other things that we learned at my University).


> maybe especially at FAANGs

It's hard to say how it is in the large, but at Microsoft I do apply CS principles fairly regularly, use statistical tools, and think fairly regularly about different data structures and algorithms. A lot of this is due to working in performance-constrained environments. If that were not the case, then I would say the academic side of things would be less prominent.


When I was at Microsoft I didn't apply CS principles beyond occasionally thinking "This function is going to be O(n^2), maybe I should change it. Oh, we'll never have more than 100 or so items, so it's probably not worth fixing that."


I should say many, but not all.

I hear too many stories from angsty mid-career FAANG developers who do little more than write a bunch of Protocol Buffers all day, every day.


> I’d wager greater than 90% of working developers without a CS degree could not pass a test in any of these courses, or even discuss the topics at an intelligible level.

As someone who did not major in CS, and learned coding on the job, I find this particularly elitist and an awful attitude. I realise that I am behind the ball a bit on things like having memorised the space-time complexity of sorting algorithms, but I am filling these gaps quickly, especially when it applies to real world problems I face in my career.

I can't say for certain that I would be able to pass calculus, linear algebra, discrete math, and differential equations, but I think that I would. To throw some elitism back at you; I wound not consider any of those subjects to be anything except pretty basic in the realm of mathematics.


>I can't say for certain that I would be able to pass calculus, linear algebra, discrete math, and differential equations, but I think that I would. To throw some elitism back at you; I wound not consider any of those subjects to be anything except pretty basic in the realm of mathematics.

It's not elitism. I'm saying this as someone who tried (and failed) to get a CS degree after working in the industry for 4 years as a self taught developer. Math classes have a way of exposing deficiencies you never even knew you had. It takes years of study to gain the mathematical maturity needed to pass these classes for anyone with just a basic American high school level of education. And yes, they are quite basic in the realm of mathematics as a whole, which makes it all the more disheartening. It made me gain a whole new level of respect and understanding for the necessity of these skills, and how they simply cannot be picked up along the way in the same manner as coding.


These triplebyte posts are basically SEO spam. Even they don't believe what they write

I Interviewed with them about two years ago, mainly bc I was looking for interviewing ideas for the team I directed.

The interview was good, but they definitely asked about CS fundamentals, and funnily they rejected me because I did not know enough of them hehe.

I held no grudges, because I wasnt tried to get somewhere, but I find hard to believe that someone without a CS degree will pass their interviews.


You might be correct, but in my experience, the vast majority of people don't think about universities this way.

They value what the degree unlocks for their career.

I think what you're saying is true, but the problem is that people hear success stories of silicon valley technology startups being founded in a dorm room at MIT and decide they want to have the same opportunity.

Can't blame them.


I’d wager 99% of programming jobs do not (directly) deal in those maths.


This seems to fit my experience interviewing/hiring candidates over the last few years.

There's a certain type of "Bootcamp grad" that seems to fit well with my teams. Those people who got a degree and then found that they hated the field they worked in (biology, law, English teachers) have just come in and killed it for us.

I can't say, exactly, how that compares to CS grads, but I do know that every fresh Grad we've hired had to be hired on as an intern first to get them up to speed, while bootcamp grads were able to be productive from day 1.

Just my 2 cents.


I've hired both and the major limitations of bootcamp folks come out when you start doing things that are either:

1. Very hard, or...

2. So obscure that you can't find examples of doing it in the past

As an example I'm wrestling with now, I am trying to come up with a way to describe applications as finite state machines by evaluating their event streams and then evaluate with PCA across multiple of these state representations. That's something that doesn't really come out of anything but theoretical computer science.


It's not limited to theoretical computer science either. A math grad with basic programming knowledge could easily help with something like that.


Very true and in fact a lot of great hires, as most people have seen, are Physicists/Mathematicians who can code.


Or Electrical Engineering.


Or bioinformatics. Or bioengineering.


My experience with bootcamp graduates has been that they struggle with any non rudimentary problems and lack knowledge of any of the fundamentals required to do non CRUD applications.


My experience is the same with junior CS grads....


A lot of the bootcamp candidates I've met can code just fine, but often lack a deeper understanding of software development. Often do just fine on interviews that test the application of a specific skill, but struggle to answer more free-form questions.

One of my favorite interview questions is "how would you design a text editor?" Bootcamp candidates and recent grad candidates often struggle a bit. Recent grad candidates often jump into a straightforward solution like breaking characters into contiguous arrays by line. More experienced candidates take more effort to put the task into context. Is this a text editor for the web? Is it more geared towards editing plain text? Can we assume relatively frequent line breaks? The best candidates think of improvements on their own. One candidate suggested automatic saves every 10-15 seconds, and could explain the backend changes necessary to make it such that the saved copy was retrieved when the user navigated back to the page. Others talked about locality and caching when talking about optimization. This sort of question is more like a foundation, and the interviewer is looking to see what the candidate is building on top of that foundation.

Granted, this isn't to say that bootcamp candidates aren't good. Not being able to effectively answer those sorts of interview questions signals that the candidate is better fit for a junior role - which bootcamp candidates and new grads are probably looking for anyway. Realistically, probably only 20% of my university time was spent learning how to develop software - maybe 30-35% if we include club and personal projects and not just class assignments. A decent 40% on topics wholly unrelated to software development, and 40% was spent on more academic areas of tech not really related to writing code. The latter is useful and has given me a deeper understanding of a lot of topics (ML, Operating systems, compilers, network infrastructure) but probably doesn't add nearly as much value to my employer as coding ability. I can see how a bootcamp could teach someone to code as well as a new grad in 3-6 months.


Prob the best use of time if you’re trying to optimize for a career as a developer would be to go study CS for 2 years at a top school, then drop out and do a bootcamp for 3 months. Best of both worlds!


Frankly, the more I reflect on my University and High School education, the more I think it was poorly thought out. I've spent an enormous amount of time learning advanced Math, Sciences, or other such topics that are utterly irrelevant to my practical career. And I'm saying this as someone who's successful enough to be making mid-6-figures.

The only useful skill I've picked up from all those classes, is grit and hard work. I've learnt how to put my head down, and grind my way to success. Useful skills to be sure, but I could have learnt that by doing literally anything. "Build a Facebook clone" would have taught me grit just as well, while also teaching me practical skills relevant to my career.

I see a lot of posturing about how college education isn't meant to be "vocational" and should teach you how to think, but I don't buy it. The free time I've spent volunteering at my college newspaper, and reading/writing philosophy, taught me far more critical thinking skills than the majority of college classes that I've taken.

Looking back, 80% of the value that I got from my college classes, came from the 20% of courses that are "vocational" and relevant to my career. If not for the resume-padding benefits of going to college, I would have been better off going to a elite bootcamp and then spending another 6 months self-teaching myself anything that the bootcamp didn't.


There are exceptions abounding to the "rule", per se, but IME the biggest problem with bootcamp/self-taught engineers is that they tend to not recognize when they are in the lane of an "already-solved problem" from the CS space and try to address it with their own overengineered approach. Not the case with everyone, of course- the guy I report to now was self-taught and knows as much or more from CS as I do... but it's still a general trend I've noticed.


I've found HackerRank to be great at acing the algorithmic/data structures questions during interviews. You don't even need to finish Cracking the Coding Interview (which is incredibly hard to do with ruby as it's mostly performance based).


In my experience boot camp grads are way more likely to wash out on basic programming problems (not particularly algorithmic) than CS grads. I think the "has already passed the triplebyte quiz" factor is really doing a lot of work for this article.


I think community colleges are the dark horse of all this. Same (or better) education as at a four year for the first two years at a fraction of the cost. No need to go to a boot camp.


Assuming University is too expensive and bootcamps are too short or vocational, where is the best education found these days?

MOOCs are great but lack the physical contact which is so important.


I’m a fan of boot camp education not a fan of most boot camps. Not only do the graduates from good ones learn skills, but they are typically the kind of students who want to learn and then get something done. I see this in community college students too: little screwing around, lot of determination.

Unfortunately most bootcamos make outrageous claims as to the job opportunities post completion, and also the quality is uneven. Both are serious problems.


I'd really like to see a breakdown by bootcamp program.


I've had friends who 'graduated' from a bootcamp and ended up with jobs at Google, Uber, Facebook, etc. The quickest way to a good salary job (in the Bay Area at least) is just to take a 3-6month coding bootcamp and apply for a job at the big tech companies, who are really desperate in growing their workforce and hiring.


Don't forget everyone, people are just like the average of those in their demographic! It's good to talk about huge groups of people as having common properties. It's a convenient shortcut that helps you understand people faster.


This article is from 2016.



Most development work doesn't require CS knowledge at all, just programming ability. Open source libraries are also reducing the need for rolling your own implementations. Having me prove things about Turing machines to get a job making websites is almost like a slap in the face. I welcome boot camps for filling these types of roles because it's ridiculous to have someone so educated doing such rudimentary work.


> If you want to do hard algorithmic or low-level programming, you’re still better served by a traditional CS eduction.

or a bootcamp that focuses on these particular skills.

Universities imagine they are for people pursuing higher knowledge and not a job, and now this can be true again. Time to divorce universities from the corporate sector, there are enough programs to build now that enough tech companies don't gatekeep this way. On the culture side, technical leaders who hire also don't care because there is stuff to build.


Bootcamps will not get you to the same point of comfort with low level stuff because it requires a pretty substantial breadth of accumulated academic study plus hands on practice, and there aren't enough low level programming jobs that I'd ever recommend someone spend time on that in a bootcamp.

If low level is really where you want to go, you can get comfortable with typical frontend and back end programming, and then as you become more comfortable, it's a short hop to GPU stuff, C/C++, and taking the academic stuff in MOOC's.

As an example, I just spent several days last week chasing a bug in C# code all the way down into the native Windows stack inside optimized compiled C and C++ code. While I do not expect a boot camp grad to be able to do it, I think they're perfectly capable of picking it up with time. But to do what I was doing, you had to have spent substantial time working with C/C++ debugging and be comfortable staring at memory dumps.

That's just not a good ROI on bootcamp time because most jobs are app development, not troubleshooting low level stacks. But since 4 year programs teach low level stuff, it gives those grades more career flexibility.


sounds like an unfulfilled niche to me.

existing 6 month boot camps "can't" do it since they are just recruiters that create the pipeline instead of making excuses about it, 4 year university still probably not the most optimal either.


I think MOOC's fill that niche.

In some ways, 4-year university is actually the ideal place, because it allows you to to spend four years traversing a conceptual dependency graph in parallel without making it your life. Assuming you're not just partying it away, you're getting a bunch of other valuable skills, personal growth, network, etc. out of those 4 years.

I think MOOC's are the cheaper option. Bootcamps, even at 6 months, have an issue that it's really not enough time to cover basic algorithms, basic systems programming, basic circuit design, linear algebra and graph theory, advanced algorithms, then finally specialized topics. It's just too much and too subtle to blitz through. But MOOC's don't have that limitation.


>> If you want to do hard algorithmic or low-level programming, you’re still better served by a traditional CS eduction.

> or a bootcamp that focuses on these particular skills.

Do these exist yet? Low level C, Assembly, Rust, we’re going to finish Knuth’s Concrete Mathematics kind of boot camps?




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

Search: