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:

  1. Working extensively on challenging problems
  2. 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.