Last updated: August 25, 2021

Here are the big lessons I learned in college. Some of them have to do with learning how to learn, while others were initially narrow but salient lessons I mentally tucked away for applying more broadly.

  • From differential equations: initial conditions matter. In biology/evolution, there’s also the founder effect.

  • Memory hierarchy: CPU registers, CPU cache, memory, disk.

  • Software engineering: 10x more expensive for a bug to make it to QA. 100x more when it makes it to customers. Fix your bugs as soon as you can find them.

  • To learn math, chemistry, and physics, read the concepts and do the problems. Doing the problems is more important.

  • To learn biology and history, read. Make a list of the main points. Read again.

  • Communication/rhetoric: the character of the speaker affects his credibility. Also, run through your speech or presentation at least ten times.

  • Panopticon: people will act different when they know they’re being observed.

  • Algorithms and data structures: use a hash table. Databases use B-trees.

  • Backward compatibility matters. AMD x86-64 won and Intel Itanium lost. Why? It was too much to ask everyone to rewrite their x86 apps, even for a cleaner, better architecture without baggage.

  • Network of enterprises: working on several projects at once makes them all better because insights feed into each other. Works only if you’re a genius. And works only if you don’t have too many projects going on.

I may revisit this list as I remember things or find better ways to explain them.