Hacker News new | past | comments | ask | show | jobs | submit login

Could you explain? How does not studying CS relate to being able to build a CPU/compiler/ray tracer? You don't need advanced CS to do so. Obviously the people who developed the main methods/algorithms knew their shit, academically speaking, but you can basically just engineer your way through all of this.

Source: I also don't have a CS degree.




> How does not studying CS relate to being able to build a CPU/compiler/ray tracer?

I think it directly relates. University or not, I’m pretty sure you’ll need to study some amount of computer science to do this.

And then slightly related- When I was in college, I was able to deep dive into subjects like higher-limit just intonation and schenkerian analysis (music theory).

So to what you’re saying, I think you’re right. When the parent of my original comment said “fail”, really that’s just “giving up”, whether it be lack of time, lack of interest, or a lack of creative problem solving.


When I went to college, most universities did not offer a CS degree. (Though the university I eventually went to had a "Computer Science and Engineering" degree that mixed bits of the Math Department's Computer Science concentration and the Engineering Department's Electrical Engineering curriculum.)

I started my software career as a "that guy who can write FORTRAN" and eventually became interested in more computer-sciencey topics and less interested in particle physics. I wound up learning scheme by reading SICP and algorithm analysis by reading Knuth. I also lucked into a job where I got to talk to Ron Rivest every couple weeks, so probably got more access to him than the average MIT undergraduate.

But mostly... getting a CS degree these days teaches you what to say during interviews. For instance, I stepped a kid through linked lists when I was interviewing for a position at Amazon. He had, of course, never heard of them and confidently informed me that hash-tables were the answer to every computer science interview question (I did not go to work for that team at Amazon.)

As best I can tell, CS programs do a mix of teaching kids useful analytic skills and how to answer questions in interviews. I've hired both CS and non-CS degree holders. CS grads come with a pre-set "context" or "meta-mental-model" for how to solve computing problems. It is often very useful and I don't think you get that with other degree programs.

However... in some corners of the world, that mental model is a detriment. I've had to untrain CS grads and get them to go back to first principals in some cases.

I think the question is... is your organization doing something that would benefit from the contextual meta-model embedded in the CS curriculum at a typical university? Are you using Java? Are you programming server software on a posix-like operating system? How ambiguous are your requirements? And the EE kids get a bit more systems stuff, it seems. Half of the CS kids I've hired couldn't tell me how a larger or smaller cache would affect performance of a particular algorithm. All of the EE kids could. Managing ambiguity of requirements through judicious application of Gemma-esque design patterns seemed second nature to CS grads. The same concepts seemed to flummox EE grads.

We are all victims of our training and the best thing you can say about someone who got an art history degree and then went into programming (assuming they can code) is they learned to analyze, design and implement software w/o the benefit of a conceptual scaffolding provided for them. They COULD be the best coders for certain types of ill-defined problems; they've demonstrated their ability to construct meta-models for evaluating real-world problems (again, assuming they can code.)


> But mostly... getting a CS degree these days teaches you what to say during interviews. For instance, I stepped a kid through linked lists when I was interviewing for a position at Amazon. He had, of course, never heard of them and confidently informed me that hash-tables were the answer to every computer science interview question (I did not go to work for that team at Amazon.)

My experience of comp sci and of FAANG questions lead me to believe that this is wrong (you do learn linked lists, even if you ignore them) and an outlier (FAANG interviews often have "implement a modified linked list" style questions.




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

Search: