Live data from Hacker News

What every computer science major should know (2011)

matt.might.net

171–180 of 187 posts

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

#171

It's a good list, and I always recommend these: 1. Public Speaking. If you can't talk coherently in front of a group of people and sell your ideas, your career will be stunted. 2. Accounting. Accounting is the language of business. If you don't understand double entry bookkeeping, you can't be a manager. You can't run a startup. You can't talk to investors. If you misuse terms like "gross margin" you'll be overlooked…

9 to 5 engineers don't need to deal with accounting. Really, who the hell cares about double entry bookkeeping? It's frustrating stuff that gets into the way of engineering. > And worst of all, your feathers will get plucked by people who do, and you may never even realize it. As someone who has little clue about accounting, what does this even mean? You mean I can be easily ticked by a shady partner? By the way you…

> You mean I can be easily ticked by a shady partner?

Yup. And everyone else you engage in financial transactions with, such as getting loans, negotiating a financial settlement, negotiating an employment benefits deal, dealing with your investments, even dealing with your credit card, etc.

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

#172
CTRL-F "ethics".

Not found.

:-(

I guess another generation of developers dark-patterning their users into giving up their personal info, and then exploiting them for stock options, a WRX (or Tesla if they've been around for a couple of years) and a Bay Area condo they can barely afford is upon us.

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

#173

Earlier quoted context omitted.

This is a great list. I would add estimating , although it's implied in a few of your points. As an engineering manager I find that a consistent difference between good engineers and great engineers is that great engineers can tell me how long something will take even when they haven't done something just like it before. That doesn't mean they can perfectly forecast how the hours will be spent -- no one could do that…

It’s funny that in your narrative good to great means scoring well on the one metric that helps you personally. I’m not picking on you. But I guess it highlights how hard this list is. Estimation would by no means be the distinguishing factor to call a programmer great in my book

Well, I don’t think it’s just about what helps me. I think it’s about the craft of Engineering, which is fundamentally about shipping things.

You can be a good coder but struggle to deliver because you get distracted or rabbit hole, over or under engineer, etc.

The engineers who have really mastered their craft have mastered not just the coding, the infra, operations, etc. they’ve mastered putting it all together and getting it out to the world.

The ones who have mastered all that can usually give pretty good estimates. The ones who haven’t usually find estimating to be difficult.

So it’s not so much that estimating is the single critical skill, but rather that estimating comes from a synthesis of all the other skills, and as a result it’s a good indicator for how much someone has mastered the craft.

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

#174

One thing that surprises me that Python wasn't mentioned as a language of interest. It's used in a lot of scientific computing, financial spaces and others. Ive been using it in finance for 15 years. 15 years ago, there was little traction, but now the quants I work with only want to use it. The quants aren't really programmers, but numpy, scipy and pandas make them productive without a lot of dev experience.

I'm a huge Python fan, and introduced it to my workplace, where it is now heavily used by about a half dozen scientists and engineers. But... I think a person who has mastered the other languages and general concepts of computer science can pick up Python in a jiffy. And they will probably pick it up by osmosis, if it's used in their vicinity. I'm saying this as a physicist who has not studied CS formally, but worked…

I totally agree.

I think what really helps is Python has really great documentation. Probably best I've seen in a large community project. Also, the great standard lib (batteries included).

Doesn't help either that Python has a great tutorial at the main project site with loads of examples, and it starts slow. Very helpful for non programmers to get started. Using it to get my 10 year old daughter into programming. I used the same tutorial around the v2.2 days to get accustomed with it. I already had a number of years of programming experience and had the help of knowledgeable coworkers to learn, but it quickly became apparent to me the value of the language.

I actually found out yesterday I'm being partially transferred to my companies quant team to help mentor and develop best practices. I'm really excited about it, given the opportunity to share my knowledge but also absorb knowledge from the; finally learn what all the data Ive been pushing around actually means (and maybe dusting off my rusty math skills from college that ive barely used since).

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

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

If you covered all this in a 4-5 year program, you either worked 90 hours a week and didn't take any other courses ("major" doesn't mean full time) or each of these courses was covered in an "edited highlights" fashion. It's a preposterous list.

Agreed. My program had 9 different tracks you could focus on [0] with many of his titles having their own dedicated track.

[0]: https://www.cs.purdue.edu/undergraduate/curriculum/bachelor....

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

#176

These kind of lists are always hilariously overstuffed, like a big comfortable rhetorical couch. It's not all that hard to make up a giant list of 8-10 years worth of material, which if anyone took seriously would also lead to a monoculture i.e. we didn't have any time to do anything aside from computer science and this giant-ass list of requirements like "physics up to electromagnetism". I'd say I was close to hitti…

This list was surprisingly sane and almost exactly the programme of my 5-year degree.

Then either you're a genius who has worked exceptionally hard, or you don't know all that much about most of the items on the list beyond a 'whirlwind tour' type intro.

I don't doubt that someone could touch on most of this stuff, especially in a degree that is heavily specialized to turn out someone exactly like the author or the author's idea of a 'computer science major'. But I'm very sceptical that this enormous list constitutes a reasonable knowledge base for a "computer science major" who is also meant to know some other subjects; we're talking "major", not "quadruple super-specialized CS major". One might even know subjects that aren't just existing as early feed-in service courses for the CS (i.e. the way he discusses physics, maths and statistics).

I certainly can't imagine someone meeting this guys list and uttering the phrase "I majored in CS and biology" or "I majored in CS and economics" or something like that.

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

#177

Earlier quoted context omitted.

Junior developers get hired on their technical skills. Mid-career developers get hired on their communications, interpersonal, and domain understanding skills. Founders and executives get "hired" on their strategic skills. If it's your first job out of college, don't worry too much about the communications skills yet . Your technical abilities will be your differentiator, and your daily job will largely consist of im…

Too young to know for sure...but seems right. Can you help me understand what strategic skills are? Resource management?

Strategic skills are understanding the context and constraints that you operate under and acting to maximize the advantage that things you do not control give you. Things like positioning yourself in the right market within the right industry; understanding how the market will change and how you can capitalize on that change; knowing who the other players are; predicting what they're likely to do based on their incentives; building alliances; making trade-offs; and identifying underutilized resources that you can capitalize on.
Post reply on HN