Dear new developer,
Read books about software development.
Seriously.
Now, you won’t learn the latest techniques from books. Those will live online in blogs or videos (or in papers, if you work in an area like machine learning influenced by academia).
Nor will you learn a lot that you can put to immediate use to solve the problem right in front of you (that will probably be found in online docs, github issues, or stackoverflow).
What you’ll learn from the great books of software engineering are timeless practices. You’ll also learn how to dig in to a topic deeply, and how to take what is in the book and discern what can be applied to your work (and what should be ignored). I’ve had discussion groups about software books, which can be a fun way for people to bring their own experience (and be accountable; sometimes great books can be hard to get through).
There are a number of great books out there, but here are three:
- The Mythical Man Month
- Covers a major software project from the 1960s, including how hard it is to build good software and the fact that when a project is late, adding more developers will increase communication needs, which will delay it further.
- The Pragmatic Programmer
- Discusses software best practices and ways to level up your software development. Has a great set of checklists.
- Refactoring
- Talks about the practice of refactoring, which can be thought of as software maintenance (in the same way that you need to take care of your car, you need to take care of software). How to do it, when to do it, how to talk about it–these are all covered.
As a bonus, here’s a great software essay on the essential complexity of building software, There’s No Silver Bullet.
I suggest asking engineers you respect what books they’d recommend you read to deepen your understanding of your craft.
Sincerely,
Dan