Of course all those skills are valuable for anyone, just like learning to play piano is. Doesn't mean you shouldn't hire people because they don't have those skills.
What every computer science major should know (2011)
131–140 of 187 posts
Re: What every computer science major should know (2011)
#132I 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 something most CS grads don't really grasp immediately, but in the real World business and time constraints normally trump perfection.
Technical debt is fine as long as it's fully understood and managed properly.
Re: What every computer science major should know (2011)
#133Earlier 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…
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…
I found this to be true outside of tech hubs (Silicon Valley, NYC, London, etc.) but in tech hubs mid career developers absolutely do get hired on tech skills.
Even outside of tech hubs, mid career developers might not be hired on their technical skills directly, but they'll definitely get hired for a work history that implies stellar technical skills (e.g. a 2 year stint at Google).
This happens not because tech skills aren't valued outside of hubs, but because there's a dearth of people to actually assess them properly. This is, I think, where the idea that domain knowledge/people skills are more important - from people working in, say, Oklahoma City rather than NYC.
Re: What every computer science major should know (2011)
#134Re: What every computer science major should know (2011)
#135> 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 -…
PowerPoint is one of the worst way of persuasively and clearly communicating ideas, be it to programmers or non-programmers.
Re: What every computer science major should know (2011)
#136I 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…
Sure, learn them, but make sure you don't apply them blindly. Let the problem/solution lead you to familiar designs, not the other way around. I have seen some truly hideous code done in the name of cargo-culting "design patterns".
Re: What every computer science major should know (2011)
#137Assuming this stuff is needed in the first place:
Spivak's calculus, while a fantastic read, was "difficult" for motivated honors students at institutions like Harvard. Great exposition, and great exercises, but it's mostly for aspiring math people who want to spend some time on the exercises. For example, within the first couple of chapters, readers will have to do epsilon-delta style of inequalities and basically learn the tricks, before reading about them in the "limit" chapter. For calculus, any lightweight calculus book would do. For analysis, Abbott's "Understanding analysis" is quite illuminating and if exercises are your thing and want to build up to real analysis from the natural numbers in an accessible way, then Tao's analysis volume 1 would be good.
"All of statistics" is a bad introduction to statistics because it contains too many things (Kullback-leibler?!) early on?! It's a great book for a reference or for a refresher, but not something to learn from. Wackerly is light enough introduction to statistics, and for probability, Bertsekas!
Re: What every computer science major should know (2011)
#138It'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 hitting, for about the year 1997 or so, these requirements or their equivalents as they existed then, after (a) a pretty decent prep at high school level (Australian high schools allowed a heavy math/science concentration), (b) 4 years of undergrad with - nominally CS as 1 subject in 4 in first year, 1 in 3 in second year, 1 in 2 in third year and full-time in honours (but actually way more focus on CS vs other subjects), and (c) completing the 8 graduate courses required to move on to the rest of the PhD at CMU.
Even then I'd have a long list of gaps in his definition. And that's off 7-8 years of prep, not 4, and an Australian honours CS degree allowed a lot more specialization than a lot of 4-year degrees in the US at the time.
It would be a more interesting approach to try to define a minimal set. Anyone can spam out 8-10 years of study and everyone will agree that, sure, someone who knew all that would be Pretty Good (better have 11 programming languages under your belt, hey). But a far more interesting task is - what do you need?
And, perhaps, in a class of 100 people, why should everyone come out with the same laundry list? Maybe it's good to have 20 really good statisticians there, as well as 20 people who could design the processor they are programming on, etc etc (obviously an overlapping set).
Re: What every computer science major should know (2011)
#139Is 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".