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…
What every computer science major should know (2011)
121–130 of 187 posts
Re: What every computer science major should know (2011)
#122Earlier 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?
[0] https://sigarra.up.pt/feup/en/CUR_GERAL.CUR_PLANOS_ESTUDOS_V...
Re: What every computer science major should know (2011)
#123Earlier 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?
Re: What every computer science major should know (2011)
#124I 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…
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)
#125It'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…
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)
#126It'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).
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)
#127It'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)
#128I 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…
Re: What every computer science major should know (2011)
#129In 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.
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)
#130Earlier 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…
It's especially important in the modern world where a large part of your audience will be non-native English speakers.