<story><title>What every computer science major should know (2011)</title><url>http://matt.might.net/articles/what-cs-majors-should-know/</url></story><parent_chain><item><author>stiff</author><text>There is more harm in the notion that there is anything at all that absolutely everyone needs to know to succeed than there is benefit from the contents of such lists themselves (which boil down to &amp;quot;everyone needs to know what I know&amp;quot;).&lt;p&gt;To succeed, all you &lt;i&gt;really&lt;/i&gt; need to know is enough to be able to do meaningful contributions to society in any way whatsoever. This is all there is to it and there are thousands of individual paths that lead to this. In fact, many of the most successful people specialize early, devote themselves to a single project or group of projects and spent the rest of their professional lives on it. Do you think John Carmack knows much about visualization, databases or cryptography? Does Linus Torvalds care about Scala, Haskell or Prolog? People love what those guys have created, so they have succeeded, it is as simple as that - nobody examined them for knowledge of 25 unrelated areas, instead they have built for themselves a useful toolkit of skills for their particular goals. It is not worth it to spend your life chasing some abstract platonic ideal of an uberprogrammer who knows everything about anything - in fact such attitude is detrimental to success.</text></item></parent_chain><comment><author>collyw</author><text>As someone with a useless line manager I would say all you need is to bullshit your way through the interview enough to get the job.</text></comment>
<story><title>What every computer science major should know (2011)</title><url>http://matt.might.net/articles/what-cs-majors-should-know/</url></story><parent_chain><item><author>stiff</author><text>There is more harm in the notion that there is anything at all that absolutely everyone needs to know to succeed than there is benefit from the contents of such lists themselves (which boil down to &amp;quot;everyone needs to know what I know&amp;quot;).&lt;p&gt;To succeed, all you &lt;i&gt;really&lt;/i&gt; need to know is enough to be able to do meaningful contributions to society in any way whatsoever. This is all there is to it and there are thousands of individual paths that lead to this. In fact, many of the most successful people specialize early, devote themselves to a single project or group of projects and spent the rest of their professional lives on it. Do you think John Carmack knows much about visualization, databases or cryptography? Does Linus Torvalds care about Scala, Haskell or Prolog? People love what those guys have created, so they have succeeded, it is as simple as that - nobody examined them for knowledge of 25 unrelated areas, instead they have built for themselves a useful toolkit of skills for their particular goals. It is not worth it to spend your life chasing some abstract platonic ideal of an uberprogrammer who knows everything about anything - in fact such attitude is detrimental to success.</text></item></parent_chain><comment><author>kelnos</author><text>Ooof, very much agreed.  I studied electrical &amp;amp; computer engineering in college, and went on to work in software instead.  I was a bit overwhelmed by most of this list, even though I consider myself a fairly successful software developer.&lt;p&gt;And then I got to the computer architecture section.  Given my background and my time away from ECE, I&amp;#x27;ve &lt;i&gt;forgotten&lt;/i&gt; more about comp arch, semiconductor physics, and microprocessor design than most CS graduates I know have ever learned.  And I think that&amp;#x27;s completely ok.  Even most people I know (including past-me) who work on software for embedded systems don&amp;#x27;t really need &lt;i&gt;all&lt;/i&gt; of that, though a healthy dose is helpful.</text></comment>