I spent 10 years sharing my keyboard with a brilliant software engineer.
Here are 9 lessons I learned from him:
1. Fast is better than good.
Waiting too long, overthinking, and trying to get things right from the get-go is a mistake. Most of the time, "good enough" is all you need.
2. Enough technical debt is a good thing.
Hating technical debt is nonsense. People just don't know how to take advantage of it. Technical debt means working on what truly matters and deferring anything that can wait.
3. There aren't stupid questions.
"He who asks a question is a fool for five minutes; he who does not ask a question remains a fool forever." Chinese Proverb
4. Communication outweighs technical skills.
Spend twice as much learning how to tell stories than building technical skills. The ability to clearly communicate your ideas is a superpower.
5. Just because you can doesn't mean you should.
Maximize the things you don't work on, learn to say no, prioritize, and delegate. You can only see what matters when you tune out the noise.
6. Share like there's no tomorrow.
People want to be around those who lift them, so share your knowledge indiscriminately. The quickest way to become a linchpin is making those around you successful.
7. Take full responsibility.
Finding justifications is easy. Look inward instead. Learn your lesson, and do better next time.
8. The best code is the one nobody wrote.
Code is a liability. Learn to solve problems by writing as little code as possible. No-code solutions are an underappreciated superpower.
9. If you don't test it, it doesn't work.
Any code that can break will eventually break. If you don’t have automated tests, you are doing it wrong.