Live data from Hacker News

What every computer science major should know (2011)

matt.might.net

31–40 of 101 posts

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

#31
I am really happy that, with industrial Engineering background and thanks to all the resources I have been able to find online (stackoverflow and blogs like this), I have been able to follow all of these steps independently to be a programmer.

The things I'm still missing (and trying to improve) have to do with managing servers and parallelism. This is highly advisable but maybe too daunting in such a list for sharing with a beginner...

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

#32
Interesting that the list includes "not being a lone wolf" and that goes on to state you should be capable of doing pretty much everything necessary to complete a project on your own. If you're capable of working well in a team you don't need to be able to do all the things in this list. You can hand off things to people who are better at those things. That's a good skill to have. That makes you very employable.

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

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

For the first 10 years of my job, I never used them. In my current job (working on hydrologically modelling software), every now and then I wish I could remember highschool maths.

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

#34
post #32

Interesting that the list includes "not being a lone wolf" and that goes on to state you should be capable of doing pretty much everything necessary to complete a project on your own. If you're capable of working well in a team you don't need to be able to do all the things in this list. You can hand off things to people who are better at those things. That's a good skill to have. That makes you very employable.

A good team member plays to his strengths, but a wide breadth of ability is still valuable. It means you can understand what your teammates are doing. It's not requisite and sometimes is unreasonable to expect in multi-domain projects, but that doesn't mean it isn't valuable.

Similar to philosophies on management. A good manager does little hands-on work himself, but he will generally make for a better manager if he could hypothetically fill the shoes of each of his reports. Not that he should ever actually do that, but it means he understands what they are doing.

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

#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 individual paths that lead to this. In fact, many of the most successful people specialize early, devote themselves to a single project or group of projects and spent the rest of their professional lives on it. Do you think John Carmack knows much about visualization, databases or cryptography? Does Linus Torvalds care about Scala, Haskell or Prolog? People love what those guys have created, so they have succeeded, it is as simple as that - nobody examined them for knowledge of 25 unrelated areas, instead they have built for themselves a useful toolkit of skills for their particular goals. It is not worth it to spend your life chasing some abstract platonic ideal of an uberprogrammer who knows everything about anything - in fact such attitude is detrimental to success.

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

#37
A lot of this stuff isn't strictly necessary for many people. But there is a very distinct change in the quality of your thoughts and approaches to solutions after learning advanced mathematics and the theoretical concepts that inform modern systems and abstractions. For instance, Haskell is far easier to someone with prior experience with discrete structures, category theory, and recursion than to someone coming from a purely object-oriented background. Both will be able to write effective code, but it's no question that the mathematically-inclined individual will write more elegant, more concise, and qualitatively better code than the other.

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

#38
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…

That's great, but who said anything about success? The article is about how to be a well-informed computer scientist.

This guide will put a graduate in a great position and open up a lot of opportunities. Whatever "success" means is only loosely related.

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

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

My two latest research projects required all of those things. More specific, I tried (and failed) to model movement in an environment as a particle in an electric field. Defining this model required physics of a particle, and optimizing the parameters required differential equations. A sub-section of the project (not done by me) defined a grammar, which required some properties over a semi-ring, which I remember from Algebra.

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

#40
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…

That's great, but who said anything about success? The article is about how to be a well-informed computer scientist. This guide will put a graduate in a great position and open up a lot of opportunities. Whatever "success" means is only loosely related.

From the article:

I've tried to answer this question as the conjunction of four concerns:

    What should every student know to get a good job?
    What should every student know to maintain lifelong employment?
    What should every student know to enter graduate school?
    What should every student know to benefit society?

For all the four points listed the attitude of focusing on some checklist covering everything is not really the optimal strategy. For graduate school you may need to pass some broad exam, but afterwards in turning towards research you also want to be much more picky about what you choose to learn and stick to learning mainly (but not necessarily exclusively) things that are likely to help your particular goals.

You should think of learning as of investing and learn things that you are likely to have some use for in the future or ones that you simply like learning. Things that you learn but that you have no long term use for or passion for you will promptly almost completely forget and the time and effort you spent learning them will simply be lost.

Post reply on HN