Live data from Hacker News

What every computer science major should know (2011)

matt.might.net

31–40 of 187 posts

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

#31
post #27

Is there anyone who ever knew all of this when they graduated? I think maybe the top student through my five years at university might have known all of this. I sure as hell did not check all the boxes when I graduated two years ago. If you're nervous after reading this, just know that the "should" probably means "in an ideal world".

Students at good programs will check all the technical boxes just by attending required classes. Those schools tend to also have enough project based courses and career prep coaching that the portfolio box is also checked.

The intersection of that and communication skills is rarer, but it happens often enough, especially for people who pick up a second major in the humanities or did a lot of public speaking prior to/during college. Again, not the average case, but not terribly uncommon.

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

#32
Eh, skimming through this list, I see what's essentially a bunch of courses. While all of the listed topics are fairly important, it's highly unlikely there exists a curriculum that covers all of them. I'd even venture that no matter which school, which curriculum, which professors, there will be something absolutely and obviously essential omitted from one's education. There's certainly topics left out from this list that are undeniably crucial. In some schools there will be far more than one thing omitted (reading the list, I'd say my school teaches maybe half of this to the good students, and less than a quarter to the mediocre students). in others, it'll be one or two topics. Regardless, the answer is not to cram more into the curriculum.

The answer, as trite as it is, is to teach a man to fish. If you want people to learn a wide breadth of topics, provide them with a set of qualities like curiosity, determination, problem solving skills, etc. Don't just give them what you deem to be a wide breadth of topics. I see far too many fellow students who just want a list, a guide such as this to follow so that they can be the best student and get the best job and live the best life (not that that's a bad goal). But in their attempt to live by a list, they ignore anything and everything else. I find it really sad when I talk about using OCaml or the fun of playing with Emacs, they shrug and insist that it's not "useful", that it's not on the list.

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

#33
To me, this sounds more like what a good CS Ph.D who spent his free time filling in every general CS knowledge gap he could come up with would know.

I don’t know why he says learn real analysis and linear algebra to talk to engineers when I doubt 90% of engineers took one analysis course unless they’re Ph.Ds.

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

#34

Earlier quoted context omitted.

> focus on technical ability, that’s a hell of a lot harder to come by than “powerpoint skills”. I'll agree and disagree: Yes, the target audience here SHOULD focus on technical ability. Not because it's "harder", but because that will be the primary decider in getting hired. That said, I'd say my communication skills have been a central part of my success. Not "powerpoint", so much as being able to distill down idea…

> learning how to examine other people's ideas without coming across as I'm attacking them. This is an extremely valuable skill to learn as well as a difficult one. Unless you work in a vacuum this will help you work better as a team. It is one of the differences between a fantastic manager and a bad manager. People will value your opinion and it will help you learn more (because you will see more code and how others…

The real pain is that most of us think we ARE good at it. We think about our intentions, and not what comes across. Intent rather than impact.

But it's the impact that matters.

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

#35

> must practice persuasively and clearly communicating their ideas to non-programmers If you’re a CS major, panicking over this sort of “technical skills aren’t enough, you have to be a persuasive public speaker and effectively do management’s job for them”, people have been saying this since at least I started coding 30 years ago, and I don’t see any evidence that it’s actually true any more than it was back then -…

It may not be any more true today than it was back then, but it was hella true back then. (Crap! Almost 30 years?! Geeze.) Not being able to convince other people that a) you know what you're doing and b) they should do what you suggest will hamstring your career. Just like it did back then.

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

#36
post #27

Is there anyone who ever knew all of this when they graduated? I think maybe the top student through my five years at university might have known all of this. I sure as hell did not check all the boxes when I graduated two years ago. If you're nervous after reading this, just know that the "should" probably means "in an ideal world".

Technically, "should" means "if you don't have some familiarity with this, you have a weak spot that you might want to work on."

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

#37
post #26

Earlier quoted context omitted.

Isn't modern ML based on differential equations?

Sure, but only a handful of people really employ advanced calculus for building ML, while the vast majority of Data Scientist only use the ML algorithms implementations as a black box, without diving into its inner workings.

I realize that there is a certain conflict here, since I'm happy to program computers without understanding the physics of transistors, but your comment makes me nervous.

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

#38

Earlier quoted context omitted.

> learning how to examine other people's ideas without coming across as I'm attacking them. This is an extremely valuable skill to learn as well as a difficult one. Unless you work in a vacuum this will help you work better as a team. It is one of the differences between a fantastic manager and a bad manager. People will value your opinion and it will help you learn more (because you will see more code and how others…

The real pain is that most of us think we ARE good at it. We think about our intentions, and not what comes across. Intent rather than impact. But it's the impact that matters.

This is very true. But once you start learning this I think people start to realize others intent and that changes impact. At the end of the day we all kinda suck at communicating with one another and I believe that you should try to see intent too(I've found that this makes my life substantially less stressful as things that used to impact me negatively don't do so as much anymore). I'm not trying to give people an excuse for being a jerk but it helps with impact if you realize that they're not trying to be or that they're just stressed (I've also found that by doing this and being calm generally results in people apologizing after they've destressed).

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

#39

Earlier quoted context omitted.

> learning how to examine other people's ideas without coming across as I'm attacking them. This is an extremely valuable skill to learn as well as a difficult one. Unless you work in a vacuum this will help you work better as a team. It is one of the differences between a fantastic manager and a bad manager. People will value your opinion and it will help you learn more (because you will see more code and how others…

The real pain is that most of us think we ARE good at it. We think about our intentions, and not what comes across. Intent rather than impact. But it's the impact that matters.

One thing that is hard is that you cannon control the impact of your words. You can influence it. With skill and perceptiveness you can strongly influence it. But you cannot 100% prevent someone from interpreting your words as an attack any more than the driver of a car can 100% guarantee he’ll never fatally collide with anyone.

Good resources for understanding how to control the impact of your words include the book Difficult Conversations and others from the Harvard Negotiation Project.

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

#40
A small point on your portfolio:

Your portfolio should show products rather than projects. Not everything needs to be complete, but you should be able to show that it does something.

Ideally, your resume is linking straight to a live demo, and that page links back to the repository. Besides the fact that many devs will be too busy/lazy to read your source, everyone will be more impressed and interested in an actual thing they can play with.

If you wrote a library that doesn't do much by itself, at least give it a README and documentation, and publish it to a repository. I'd rather see a link to a package repository than a git repo. (And, of course, fill in the metadata so I can get back to your git repo.)

(And, really, if you set up a lambda in AWS running your library, your page can just have some input fields and a button to call the functions and show what your code does.)

The point of all this is to take the time to put in some extra polish that shows that you not only have ideas, but execute on them.

Post reply on HN