What every computer science major should know

Matt Might:

Given the expansive growth in the field, it’s become challenging to discern what belongs in a modern computer science degree.
 
 My own faculty is engaging in this debate, so I’ve coalesced my thoughts as an answer to the question, “What should every computer science major know?”
 
 I’ve tried to answer this question as the conjunction of four concerns:
 
 What should every student know to get a good job?
 
 What should every student know to maintain lifelong employment?
 
 What should every student know to enter graduate school?
 
 What should every student know to benefit society?
 
 My thoughts below factor into both general principles and specific recommendations relevant to the modern computing landscape.
 
 Computer science majors: feel free to use this as a self-study guide.
 
 Please email or tweet with suggestions for addition and deletion.