I frequently get asked what books helped me grow the most. What would you recommend that I read to get superpowers? How did you learn about that one algorithm or data structure? How did you learn so much about something for work?
The truth is, the books and experiences that I feel like helped me the most, have nothing to do with my job. I’ll recommend those below, in a stack-ranked list and I’ll also recommend the books I think helped me learn to be technical.
Everyone struggles at different aspects of life. Some people need to read a ton about a domain before it clicks, others need to learn about leadership, discipline, psychology, stress, anxiety, and more. You need to identify your weaknesses and formulate a plan to improve it slowly every day. More importantly, you need to understand what areas you’re amazing at and accelerate your growth in those areas. Go all in on what works for you and let it define you. Embrace it. Don’t worry about people judging you.
Incremental progress, even if it is 0.0001% each day is progress. Overnight success is not a thing; it appears like that to other people after countless days of small progressions.
Computer science
The best way to learn how to write perfect code is to read a lot of it. Read the source code of Go, C#, Java, Python, etc. I read the entire C# and Go source code libraries and made contributions to both. Don’t just use frameworks to build different things, read them and write them. There’s no shortcut here, it takes a lot of time and effort. Find something you’re interested in and make incremental progress each day. Don’t be frustrated if you are slow, remember the 0.0001% rule.
Nowadays, I exclusively read source code and white papers. Books are generally not useful because they are published too late, or published by people who are not the original authors of the code. Here are a few recommendations, but they are more related to design/code quality/interviewing. If you want to get seriously good at coding, go as deep as you possibly can and make contributions to core projects. Read white papers 10+ times until you understand them. You can choose those papers based on your interests (i.e., Lamport logical clocks, HDFS, Map Reduce, Linux file systems, etc.).
Interviewing:
- Leetcode. Complete all the problems.
- Introduction to Algorithms
- Cracking the Coding Interview
- System Design Interview
Code quality:
- Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition
- The Pragmatic Programmer: From Journeyman to Master
- Design Patterns: Elements of Reusable Object-Oriented Software
- Mythical Man-Month, The: Essays on Software Engineering
- Code Complete: A Practical Handbook of Software Construction
- Code: The Hidden Language of Computer Hardware and Software
- The Art of Computer Programming
Niche reads:
- Compilers: Principles, Techniques, and Tools
- Superintelligence
- Artificial Intelligence: A Modern Approach
- JavaScript: The Good Parts
- Range: Why Generalists Triumph in a Specialized World
- Algorithms to Live By: The Computer Science of Human Decisions
Neuroscience
- The Secret Pulse of Time: Making Sense of Life’s Scarcest Commodity
- The Expectation Effect: How Your Mindset Can Change Your World
Psychology
- Anything by Dr. David Burns. For example, Feeling Good: The New Mood Therapy and Feeling Great. I listened to the entire Feeling Good Podcast.
- Anything by Thich Nhat Hanh. For example, No Mud, No Lotus: The Art of Transforming Suffering.
- Metacognitive Therapy for Anxiety and Depression
- Man’s Search for Meaning
- The Power of Now: A Guide to Spiritual Enlightenment
- Enlightenment Now: The Case for Reason, Science, Humanism, and Progress
- The Power of Now
Leadership, Discipline, Exercise
- Born to Run: A Hidden Tribe, Superathletes, and the Greatest Race the World Has Never Seen
- Running with the Mind of Meditation: Lessons for Training Body and Mind
- Can’t Hurt Me: Master Your Mind and Defy the Odds
- Embrace the Suck: The Navy SEAL Way to an Extraordinary Life
- Extreme Ownership: How U.S. Navy SEALs Lead and Win
- The Power of Habit: Why We Do What We Do in Life and Business