Hacker News new | ask | show | jobs
by mattnedrich 3685 days ago
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?

2 comments

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