Live data from Hacker News

What every computer science major should know (2011)

matt.might.net

21–30 of 101 posts

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

#21
post #15

Earlier quoted context omitted.

I would agree that four years is an optimistic timetable to learn everything here to the degree that you would want to. I also disagree on the relative ranking and importance of the items, but I don't feel experienced enough to really argue with them on the basis of my knowing better. Maybe in a few years. I think a few of the points could be expanded. For example 'Robotics' gives the wrong impression and I'd say tha…

I dislike how these articles make it seem like you need to be a super-human coming out of college. You don't. As long as you are perceptive, intelligent and can learn on the fly you'll be fine going into most entry level jobs in the industry. As far as the list itself, it is highly debatable. Depending on your job you won't ever need to know most of this.

Yeah. My general objection to this article would be that for the dedicated autodidact you'll be better off taking this advice on a longer timescale and as a guide instead of a checklist you need to cross off before you're Minimally Qualified. In particular be sure to optimize the curriculum towards your interests and goals instead of prioritizing somebody elses recommendation by fiat.

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

#22
post #20

What is a good book for C++11 and beyond? I took a lot of C++ before '11 was implemented, but have been focused on other languages recently, so I feel like I'm a bit behind the modern development. The references he points to are all 10+ years old, so I strongly doubt I'll find any C++11/14 in them.

The C++ primer (latest edition) covers C++11 concepts pretty well. http://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/032171...

Once you learn the fundamentals, read Scott Myers. (effective c++, effective modern c++)

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

#23

Prefacing this I am only 20 years old so I have some time to figure it all out but I feel like I am missing out a fair bit on not pursuing a degree in computer science. A lot of the content, especially the focus on algorithms, seems really interesting to me. Straight out of high school I did not have the math grades for CS so I went to the American equivalent of community college and am on track to get a diploma from…

You will regret not going later. If you have the interest, computer science can offer staggering amounts of enlightenment.

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

#24

Prefacing this I am only 20 years old so I have some time to figure it all out but I feel like I am missing out a fair bit on not pursuing a degree in computer science. A lot of the content, especially the focus on algorithms, seems really interesting to me. Straight out of high school I did not have the math grades for CS so I went to the American equivalent of community college and am on track to get a diploma from…

You do not need to be in college to study CS. If that is really what you want to do, you should make a point to start now.

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

#26
post #2

I couldn't get past "Computer science is not quite engineering."

It's not. It also is not quite not engineering too.

A lot of terminology and philosophy from engineering carries over to CS, but for most applications, the quality and thoroughness of real engineering does not, nor is it needed.

Computer science, or software engineering if you prefer, is a strange hybrid of a lot of things. On the pure development side, there is a lot of engineering-like stuff going on. In academia and research, there's a lot of science. And everyone is doing heaps of math. Unfortunately, English doesn't have a good word that encompasses all this, so we end up with poor terms that each only describe parts of the whole.

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

#27
post #15

Earlier quoted context omitted.

I would agree that four years is an optimistic timetable to learn everything here to the degree that you would want to. I also disagree on the relative ranking and importance of the items, but I don't feel experienced enough to really argue with them on the basis of my knowing better. Maybe in a few years. I think a few of the points could be expanded. For example 'Robotics' gives the wrong impression and I'd say tha…

I dislike how these articles make it seem like you need to be a super-human coming out of college. You don't. As long as you are perceptive, intelligent and can learn on the fly you'll be fine going into most entry level jobs in the industry. As far as the list itself, it is highly debatable. Depending on your job you won't ever need to know most of this.

As far as the list itself, it is highly debatable. Depending on your job you won't ever need to know most of this.

Any comprehensive list of "things to know" will include things that not everyone needs to know, but it's still important to know "of" a lot of things. That way, when you encounter a new problem, you'll be reminded of something you heard about, but don't really know, and can look it up on Wikipedia.

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

#28
I can see how a list like this could develop, but unfortunately it seems to have become the academic version of a job ad that wants 20 years of experience in every tool and technology ever invented. No-one would stand a chance of coping with such a broad and deep syllabus within the time frame of a degree course, but I worry that the target audience for this list won't necessarily realise that and so the current presentation could actually discourage people from studying CS.

I think part of the problem is having so much emphasis on specific tools and standards rather than general principles and theory. Hopefully CS students do pick up some familiarity with practical examples along the way, but I don't think that should be the priority for undergraduate level CS teaching. I'm particularly wary of putting so much emphasis on "old school" tools that aren't necessarily very good by modern standards but remain popular because of momentum and ecosystem effects.

As a result of that emphasis on tools, I'd say sound theoretical foundations seem to be given less weight than they deserve. Some examples of terms that I would have liked to see on any modern undergraduate CS syllabus or reading list are "comparison sort", "halting problem", "ACID", "transaction", "distributed system", "CAP theorem", "concurrency", "deadlock", and "lock-free", as well as a lot more specifics on basic data structures and algorithms.

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

#29

Suggested revisions: - More on databases (including non-relational). We all need to know a lot of this for day-to-day work yet it but it barely made the list. - More on writing clean, readable code (this isn't on anyone's list, damn it!) How to name variables appropriately, how to comment, how to not write 150-character lines, etc. Fail them if they can't produce code that other students can quickly read. - Corporate…

No machine learning? Really?

It seems like for every problem out there - at least some tiny bit can be solved by machine learning.

General pattern recognition (identifying peaks, predicting disk outages, etc) at the minimum seems like a requirement that will show up in the next few years.

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

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

Post reply on HN