Live data from Hacker News

What every computer science major should know (2011)

matt.might.net

81–90 of 101 posts

Re: What every computer science major should know (2011)

#81

Earlier quoted context omitted.

This is the reason language wars are looked down upon on HN - someones going to feel offended. Its pointless. But be reminded that ad hominem is not welcome here either. You are welcome to add to the discussion, in case you are knowledgeable in the subject. You have not done much to factually counter any arguments brought up so far, and in case your goal is to persuade anyone of your contrary position, you have done…

This is not about being "offended". This is me being bored to death by the umpteenth dude – you – thinking that repeating random stuff written on the internet adds anything to the debate. It has made people shake their heads 5 years ago, and it hasn't changed since then. There is no need for persuasion. Those who are motivated enough try the language can discard non-sense on their own, and those who keep spewing the…

5 years ago, Paul Phillips was still a core contributor to Scala. Anyone seriously considering Scala should listen to his talk, titled “We’re doing it all wrong”, and take a look at Policy, his fork of the Scala compiler.

https://www.youtube.com/watch?v=TS1lpKBMkgg

https://github.com/paulp/policy

Previous discussion:

https://news.ycombinator.com/item?id=8276565

Re: What every computer science major should know (2011)

#82
post #30

I graduated 10 years ago and never used calculus, differential equations, linear algebra, or physics in my job. I'm not saying this to say they aren't useful. But does anyone find them generally useful for their job? If so, what for? I'd like to know what I'm missing here, if anything. I don't want to go through a refresher just to forget it in another couple of years.

Math and physics are beautiful and tasteful. So there's a liberal arts-ish component of you'd take a fine arts class as part of your liberal arts component of education to develop at least some minimal aspect of good taste and common sense as part of your education.

Its a very vocational list in general and needs some liberal arts, not just to make life worth living, but to develop good taste as a workers tool. There is a slight glimmer in the list where its advised to learn a little technical communication. However learning a little graphics arts wouldn't hurt. Or a little political history might help navigate corporate structures. Or a little persuasive public speaking for those presentations. Or some art so your diagrams and whiteboard talks don't look awful.

Yet going the opposite direction, if we're currently graduating degree holders with a very small minimum of liberal arts who none the less can't fizzbuzz, then this hyper vocational extremely large curriculum isn't going to fit, or we're going to graduate people who can't fizzbuzz and fail to integrate e to the x and also fail to appreciate Hamlet in its original Klingon. Not sure failing even more generalist stuff is better overall outcome. Maybe it could be a 6 or so year long vocational apprenticeship. Or maybe if high school education didn't generally suck. Maybe.

Re: What every computer science major should know (2011)

#83

Fail article...no you don't have to know all these things... Mathematics for 3D Game Programming and Computer Graphics??? OMG!! Thats totally not what everyone should know, thats a very "narrow" field of software engineering that it's suitable for those who really like it...jesus just don't read it.

That's a very solid book that deals with things not just restricted to 3D programming. It covers vectors, matrices and linear transformations, which are useful in other areas of Computer Science. Although an excellent book that covers these things is The Manga Guide to Linear Algebra , by O'Reilley.

> Although an excellent book that covers these things is The Manga Guide to Linear Algebra, by O'Reilley.

Thanks for that recommendation! I'm reading the sample chapter now, and it's a great review. I'm not a huge manga fan but this is a nice way to break up complex ideas.

Re: What every computer science major should know (2011)

#84
post #52
post #35

There is more harm in the notion that there is anything at all that absolutely everyone needs to know to succeed than there is benefit from the contents of such lists themselves (which boil down to "everyone needs to know what I know"). To succeed, all you really need to know is enough to be able to do meaningful contributions to society in any way whatsoever. This is all there is to it and there are thousands of ind…

Ooof, very much agreed. I studied electrical & computer engineering in college, and went on to work in software instead. I was a bit overwhelmed by most of this list, even though I consider myself a fairly successful software developer. And then I got to the computer architecture section. Given my background and my time away from ECE, I've forgotten more about comp arch, semiconductor physics, and microprocessor desi…

> Given my background and my time away from ECE, I've forgotten more about comp arch, semiconductor physics, and microprocessor design than most CS graduates I know have ever learned.

I feel you on that one man. I bombed a lot of interviews because I didn't memorize all the trivia. I've implemented a basic CPU in VHDL and wired up a whole computer out of a single microcontroller and I know all about the cache and TLB and ILP and all kinds of low-level stuff. But those questions never seem to come up in interviews.

Re: What every computer science major should know (2011)

#85
post #35

There is more harm in the notion that there is anything at all that absolutely everyone needs to know to succeed than there is benefit from the contents of such lists themselves (which boil down to "everyone needs to know what I know"). To succeed, all you really need to know is enough to be able to do meaningful contributions to society in any way whatsoever. This is all there is to it and there are thousands of ind…

I agree, this list is way overboard. It is far too broad and too deep in too many areas. You need to implement RSA? But then just a couple vague paragraphs on databases?

Re: What every computer science major should know (2011)

#86
post #30

I graduated 10 years ago and never used calculus, differential equations, linear algebra, or physics in my job. I'm not saying this to say they aren't useful. But does anyone find them generally useful for their job? If so, what for? I'd like to know what I'm missing here, if anything. I don't want to go through a refresher just to forget it in another couple of years.

I write 3D animation software, so linear algebra all the time, and physics very occasionally.

Re: What every computer science major should know (2011)

#87

Earlier quoted context omitted.

Any book to recommend to learn Corporate survival skills, and writing clean code?

The rules of work. http://www.amazon.com/The-Rules-Work-Expanded-Edition/dp/013... For writing clean code, at least maybe start with the Python style guide. https://www.python.org/dev/peps/pep-0008/

Nice recommendations.

Re: What every computer science major should know (2011)

#88
Having produced a laundry list of skills ranging from implementing cryptography protocols through being an expert UX/UI designer, skilled in robotics, AI, data visualization, and having proficiency in 11 programming languages across 3 paradigms (not counting the 12th, which one should implement themselves), the author humbly notes that "My suggestions are limited by blind spots in my own knowledge."

Re: What every computer science major should know (2011)

#89
post #52

Earlier quoted context omitted.

Ooof, very much agreed. I studied electrical & computer engineering in college, and went on to work in software instead. I was a bit overwhelmed by most of this list, even though I consider myself a fairly successful software developer. And then I got to the computer architecture section. Given my background and my time away from ECE, I've forgotten more about comp arch, semiconductor physics, and microprocessor desi…

> Given my background and my time away from ECE, I've forgotten more about comp arch, semiconductor physics, and microprocessor design than most CS graduates I know have ever learned. I feel you on that one man. I bombed a lot of interviews because I didn't memorize all the trivia. I've implemented a basic CPU in VHDL and wired up a whole computer out of a single microcontroller and I know all about the cache and TLB…

I expect they come up all the time, in interviews for sufficiently low level positions.

There are far more relevant things to ask in the vast majority of software interviews, though. Ignorance of the existence of memory cache or its impact isn't a good thing in an application developer, of course, but known VHDL or semiconductor physics isn't a good predictor of success in that.

Re: What every computer science major should know (2011)

#90
post #89

Earlier quoted context omitted.

> Given my background and my time away from ECE, I've forgotten more about comp arch, semiconductor physics, and microprocessor design than most CS graduates I know have ever learned. I feel you on that one man. I bombed a lot of interviews because I didn't memorize all the trivia. I've implemented a basic CPU in VHDL and wired up a whole computer out of a single microcontroller and I know all about the cache and TLB…

I expect they come up all the time, in interviews for sufficiently low level positions. There are far more relevant things to ask in the vast majority of software interviews, though. Ignorance of the existence of memory cache or its impact isn't a good thing in an application developer, of course, but known VHDL or semiconductor physics isn't a good predictor of success in that.

If you're writing a web-app knowing how the TLB works is just as relevant as knowing how a red-black tree works. Which is to say, not very.

> but known VHDL or semiconductor physics isn't a good predictor of success in that

Sure, I'll grant that. But I would also argue that a lot of what people are doing to interview isn't a great predictor of success either. Data structures and algorithms are important in some jobs, but knowing how to use git, automated deployment, testing, and shipping products or features seems a lot more relevant to job success than the "how to tell if there's a loop in a linked list in linear time with constant space" question that everyone seemed to love 5-10 years ago.

Post reply on HN