Live data from Hacker News

What every computer science major should know (2011)

matt.might.net

121–130 of 187 posts

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

#121

I come from a CS background and learned a lot from studying CS, it definitely gave me a strong foundation and changed the way I view and understand computing. I learned most of the topics mentioned in this document while in school, and although they are all valid, they are not enough for real world needs. ~90% of CS undergraduates will end working as or with engineers, and in 2019 here are the skills that are indispe…

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…

I think the concepts I would add are understanding the differences between an estimate, a commitment, a plan and what role risk plays in all of these.

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

#122
post #105

Earlier quoted context omitted.

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/…

Could you point me to the website of a school which makes you check all the boxes just by attending?

Mine[0] did the vast majority of them.

[0] https://sigarra.up.pt/feup/en/CUR_GERAL.CUR_PLANOS_ESTUDOS_V...

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

#123

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…

Don't you think estimation is a management job? What if Engineer decides to over estimate and enjoy the freetime?

Only the person who does the job can do the estimate. Estimation by third-party is no better than rolling a dice.

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

#124

I come from a CS background and learned a lot from studying CS, it definitely gave me a strong foundation and changed the way I view and understand computing. I learned most of the topics mentioned in this document while in school, and although they are all valid, they are not enough for real world needs. ~90% of CS undergraduates will end working as or with engineers, and in 2019 here are the skills that are indispe…

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…

Providing an estimate isnt impossibly hard, I've found there is much more forgiveness for putting a long estimate in, and then coming in early, than putting a short one in, and coming in late.

Stuff I've not done before can be a real challenge, I just add a 50% slop factor, but I won't even give a guess until I can at least have a modicum of understanding of the complexity of the problem, technologies and people involved.

Generally for stuff I'm familiar with - I take how long I think its going to take, then double it, and thats what I give to my management. For stuff I'm not familiar with, I guess based on like-like work, and then add 30-50% more time in, then double that. For some of our customers however, working with them incurs a time penalty, so I add another 20-40% on top to their estimates.

The feedback I've been given is that my time scopings are reasonably accurate however. So while I feel silly turning in an estimate for 24 hours for a task that I think ought to take 8, time and time again, it takes closer to 18-20 hours rather than the 8 I feel it ought to (usually because of external factors outside of my control).

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

#125

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…

> 2. Accounting.

Any resources you would recommend that are worth looking at to help with this? I think I understand the basics, but particularly for larger companies things get much more complex.

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

#126
post #115

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…

And I've spent far too much of my time in my last project explaining double entry bookkeeping to coworkers to little effect. I had to watch has they re-invented the wheel. Sadly I'm not that good point 1 (actually terrible at it).

> Sadly I'm not that good point 1

It gets better each time you do it. Taking a class in public speaking helps a lot. I've seen engineers stand with their back to the audience and mumble - it's not hard to do better than that.

> And I've spent far too much of my time in my last project explaining double entry bookkeeping to coworkers to little effect. I had to watch has they re-invented the wheel.

Yah, reinventing that is certainly cringe-worthy.

I took a 2 week class in it at the local community college one summer. It's paid off well for me ever since. A very high return on time invested.

The other huge ROI for me was I took a 2 week summer school in 8th grade on touch typing. Considering how much typing I've done since, that had a heluva huge return.

I sometimes shake my head in astonishment at professional programmers hunt-peck with just their forefingers as they resolutely refuse to learn touch typing. What a waste of time.

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

#127
post #125

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…

> 2. Accounting. Any resources you would recommend that are worth looking at to help with this? I think I understand the basics, but particularly for larger companies things get much more complex.

Just get any entry-level textbook on it, and you'll be fine. Larger companies will need professional CPAs, but at least you'll be able to talk to them.

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

#128

I come from a CS background and learned a lot from studying CS, it definitely gave me a strong foundation and changed the way I view and understand computing. I learned most of the topics mentioned in this document while in school, and although they are all valid, they are not enough for real world needs. ~90% of CS undergraduates will end working as or with engineers, and in 2019 here are the skills that are indispe…

11) Learn proper research skills so you can continually be finding better solutions to problems encountered in your work/projects.

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

#129

In my experience no one cares about the portfolio. They want your CV, some references and to pass some coding tests. Now to be fair I am not going for the highest paid jobs or jobs required deep computer science knowledge, but for the ordinary job I have found that recruiters and employers alike look at CV. They might look at github if you are lucky.

I couldn't agree more, and this list pretty much lost me right from the start.

If you're fresh out of university, GitHub is useful because it demonstrates relevant non-academic code you've written outside of your studies.

After you've got your first job, I don't care about your GitHub profile unless you've got some impressive stuff on there. As an employer, I care about your ability to work on non-trivial problems in a team, and unless you're contributing to OSS (which few CS grads do) you'll never have this on your "portfolio".

In my experience, your GitHub profile is only noteworthy if you have:

* Breadth of work. Loads of projects in a load of languages that demonstrates you're a tinkerer * Depth of work. At least one project with 5+ stars that solves a non-trivial problem.

Otherwise, that profile is usually some boilerplate code for a MOOC course or to try a language for the first time, and when hiring that's not an indication of anything.

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

#130
post #115

Earlier quoted context omitted.

And I've spent far too much of my time in my last project explaining double entry bookkeeping to coworkers to little effect. I had to watch has they re-invented the wheel. Sadly I'm not that good point 1 (actually terrible at it).

> Sadly I'm not that good point 1 It gets better each time you do it. Taking a class in public speaking helps a lot. I've seen engineers stand with their back to the audience and mumble - it's not hard to do better than that. > And I've spent far too much of my time in my last project explaining double entry bookkeeping to coworkers to little effect. I had to watch has they re-invented the wheel. Yah, reinventing tha…

BTW, I've looked for a voice coach to improve my public speaking. All I could find was people who'd teach singing. Sigh. Most people could enunciate better, and that makes it easier for your audience to understand you and hence they're more likely to pay attention.

It's especially important in the modern world where a large part of your audience will be non-native English speakers.

Post reply on HN