Undergraduation
Paul Graham’s essay Undergraduation advises computer science undergraduates to prioritize becoming skilled hackers and learning about compelling problems.
Hacking
The path to programming excellence involves:
- Working extensively on challenging problems
- Learning from accomplished programmers around you
Pursue personal projects rather than relying solely on coursework—they allow complete creative freedom.
Mathematics
While most programming doesn’t strictly require advanced math, study it for its conceptual value as a metaphor source for problem-solving.
Choosing Academic Subjects
Prioritize departments with intellectual rigor: math, hard sciences, engineering, history, architecture, and classics. Be cautious about social sciences and philosophy.
Practical Considerations
Open-source contributions and personal projects impress employers more than grades. Skill selection depends on career goals—big companies, startups, and entrepreneurship require different toolsets.
Graduate School
While grad school offers intellectual community, the dissertation requirement is genuinely unpleasant. Success requires impressing professors through genuine intellectual interest.
My Takeaway
“The only way forward is through doing what you love.” Authenticity matters most.
What advice do you wish you’d gotten in college? I’d love to hear at persdre@gmail.com.