2024 Link to heading
As I approach my 20th year as a professional software engineer—and my 35th year of programming—I’ve been looking back on everything I’ve learned along the way. It’s a natural moment to pause, reflect on my journey, and think about where I’m headed in the coming year.
I started programming with GWBasic on a Tandy 1000. Throughout the years I have learned many programming languages many of which I don’t even remember anymore. Basic, PHP, Python, Perl, Assembly, Java, C++, Visual Basic, JavaScript, Lua C#, and Go.
This year I picked up Go, and have been using it for all of my personal projects. I really like Go and I plan to continue having it be the main language I use. I love Go because it’s both straightforward and powerful. I rewrote an old API and improved its performance over the previous Typescript implementation by over 80%. Moving into 2025 I plan to start learning Rust.
The chart above is interactive, and as of my writing this my number 1 language is currently Go
making up 51.36% of my GitHub. Rust
currently comes in at number 9 with 0.25%.
I finally read the Pragmatic Programmer this last year and really love their knowledge portfolio concept. I realize that I have been doing many of the things they suggest already. I try to learn a new language every year or two even if I never plan to use them. I also have been trying to read one technical book a month starting last year.
2024 Reading List Link to heading
- The Pragmatic Programmer: From Journeyman to Master
- Clean Code: A Handbook of Agile Software Craftsmanship
- The Clean Coder: A Code of Conduct for Professional Programmers
- Clean Architecture: A Craftsman’s Guide to Software Structure and Design
- Working Effectively with Legacy Code
- Refactoring: Improving the Design of Existing Code
- Code Complete: A Practical Handbook of Software Construction
- Design Patterns: Elements of Reusable Object-Oriented Software
- Software Architecture: The Hard Parts
- Learning Domain-Driven Design
- Domain-Driven Design: Tackling Complexity in the Heart of Software
2025 Link to heading
Goals Link to heading
Coming into the new year I have a new list of goals.
- Learn Rust
- Read 1 book on system architecture per month
- Get my AWS Solutions Architect Associate Certification
- Looking into getting my CSSLP
- Switching from VSCode to NeoVim. You can check out my config here
Learning Schedule Link to heading
I try to dedicate 90 minutes every single day to continuing education. I used to be a huge fan of the Pomodoro technique. However, as time has moved on I often find 25 minute increments to short to get anything meaningful done in. I adjusted my Pomodoro time to run in 90 minute blocks with 30 minute breaks. During those 90 minutes I will work in 30 minute segments. Usually I will dedicate 1 hour to coding, and 30 minutes to courses such as the AWS Course material. Reading I do in the evening depending on the book. I try to divide each book up into 30 section and then read one section each evening while I am relaxing before bed.
2025 Book List Link to heading
- January: Fundamentals of Software Architect by Mark Richards and Neal Ford
- February: Clean Architecture by Robert C. Martin
- March: Software Architecture Patterns by Mark Richards
- April: Learning Domain-Driven Design by Vlad Khononov
- May: The Software Architecture Elevator by Gregor Hohpe
- June: Learning Systems Thinking by Diana Montalion
- July: Software Architecture: The Hard Parts by Neal Ford, March Richards, Pramod Sadalge, Zhamak Dehghani
- August: Foundations of Scalable Systems: Designing Distributed Architectures by Ian Gorton
- September: Flow Architecture: The Future of Streaming and Event-Driven Integration by James Urquhart
- October: Communication Patterns: A Guide for Developers and Architects by Jacqui Read
- November: Technology Strategy Patterns: Architecture as Strategy by Eben Hewitt
- December: Designing Data-Intensive Applications: The Big Ideas Behind Reliable Scalable, and Maintainable Systems by Martin Kleppmann
Looking to the future I am excited about the new things I will learn, and excited to use these new things in projects. I encourage anyone who reads this to follow the suggestions in the Pragmatic Programmer and create your own knowledge portfolio. If you are new to software engineering, or even in a different profession completely I highly recommend the Pragmatic Programmer as THE book to read if you only read one. It will introduce you to a variety of concepts and new way to think about software.