Advice to Subscribers, published in Le Charivari, April 1, 1840
Thirteen bits of advice for early-career programmers from the Computer Things newsletter.
- People listen to you because you're a good writer, not because you're a good programmer. Take any argument about "objective truth" with a grain of salt.
- Don't be worried about learning "the wrong thing", learning is all about trying new ideas and making mistakes, and iterating from them.
- Read Debugging: The 9 rules, it's an important skill that beginners lack
- At some point you'll discover the Right Way to program, it could be TDD, functional, OOP or a million other things, and be convinced this is the only way. You'll learn that programming is frustrating and messy regardless of which Right Way people use, and you can make great software without it. You'll learn that there are 50 other Right Ways and learn to mix and match with the problem at hand
- Don't hold it against the Right Way Guy who introduced you to the Right Way; most ideas need some modification from their purest form to integrate well with other ideas.
- "behind every best practice is a horror story." - Julie Evans. if you don't understand the best practice, look for the horror story that inspired it. it might be irrelevant to you, and you can do a different practice instead.
- A lot of best practices and conventions are "path dependent", arising from a mix of historical and cultural factors. retrace the whole path and see if the things everyone is doing that is not as relevant anymore.
- Take walks
- Almost every tool has a form of hidden depth, from Python to git to Jira. Don't feel like you have to become an expert in all of them, but spend 5-10 minutes learning a bi more about what they can do.
- Talk to people in other parts of the company: support, sales, finance, etc. shadow them if you have the time.
- Try different types of programming earlier in your career. Most companies are doing several different kinds of programming, if you're starting in web dev, try some frontend, backend, ops, some data stuff. This helps you learn, and more importantly increases your chances of finding software work you actually like.
- Don't get swept up in framework treadmill, focus on learning fundamental skills. Why? information in software propagates really quickly due to (internet, OSS, conferences), and overall there's a lower barrier to sharing ideas in software. If you're excited about something, go ahead and be an early adopter, otherwise, wait a few years for it to grow legs.
- No one can predict the future. Do the best you can, live according to your values, and enjoy the ride.