10 More Lessons Learned in 30 Years of Development
Programming for me has always been enjoyable as a career, hobby, and business. In this post, I talk about additional lessons I've learned over the years of coding.
After writing my 20 lessons learned in 20 years of programming, I really didn't expect the huge amount of traffic from that post (> 300,000 hits over a 2 month period). Now, as I'm getting older, I'm finding out even more things as I continue through my career.
So I need to add a couple more lessons learned since 2005.
Let me know if any of these resonate with you as well. :-)
By the way, if you are looking for the previous post, it's located in the archives called 20/20: Top 20 Programming Lessons I've Learned in 20 Years.
- Become active ("Jump Around!")
Apple's CEO Tim Cook recently said that sitting is the new cancer. If you have a career in development, you will no doubt have moments of inspiration where you sit at your desk for 3-8 hours at a time. Make sure you get up once in a while and move around. Get up, go out, exercise...JUST MOVE! A couple of suggestions: Use the Pomodoro technique; Walk or hit the gym during lunch.
- Leverage your code
While I was building my CMS from scratch in .NET, I was pulling tested code from other projects because I didn't want to write any new code that I already wrote. Write your code, partition your code into similar areas of code, make a library, use the library. Rinse and Repeat!
- Automate, automate, automate!
I can't stress this one enough. While DevOps is continuing to gain traction, terms like Continuous Integration and the Cloud are becoming common skills to have in the long-term. I, for one, am grateful for our automated builds and deploys at work with the click of a button (aside from production). The more systems you can automate, the more time you'll have in a day to work on other tasks.
- Code Katas
Code Katas are similar to martial arts katas. You are given a particular piece of code and your task is to refactor it into something manageable. Do at least 1 or 2 code katas a month to keep your skills up to date. For more experienced developers, some code katas aren't necessary at all because you should be practicing your katas every day...with code reviews and writing code.
- Refactor Mercilessly!
I've seen a number of developers write a piece of code, make sure it works, and walk away from it. Some developers don't see the big picture of a project...you know, "forest through the trees" thing? Writing code is similar to writing a book. Your first pass is a draft. After you come back to it, you need to massage it and make it work even better. I've always had the idea of "Write the Test. Make it Functional. Refactor the code. Repeat." The old red and green game. How do you know when you are done refactoring? When the refactoring follows the Single Responsibility Principle (SRP).
- Always be learning a new technology
This goes along with number 19. I have always been of the mindset that you need to master two (or more) technologies to stay ahead of the curve (or descent) during a dry period. The more technologies you know, the more valuable you become to others.
- Always be working on a side project!
You should always have a side project that you are building on your own time. Why? Three reasons: It keeps your skills up to date; if it's good enough, you can open-source it (or even better...sell it!); and you will have experience! For example, build a simple to-do list. It will be something that you built yourself and can be proud to show it off to others. Look at Any.do, Google Keep, or even Todoist! Simple To-Do lists extended to do more.
- Avoid the Imposter Syndrome!
Everyone has had that moment in programming. You hear a voice whispering "I'm not that good enough to be a programmer." The imposter syndrome is described as a psychological phenomenon in which people are unable to internalize their own accomplishments. Don't fall into this trap. Of everyone in this world, you may have a different perspective on how you look at things and could change programming forever! Learn from developers and senior engineers who have "been there, done that." And remember...we have all been there.
- Enjoy what you do!
If you are in the IT industry and you hate your work, do me a favor! Get Out...Get Out Now! There are too many unhappy people in IT who don't like going to work. Personally, I enjoy what I do. I love to code and teach others how to make their code better. Life is too short to go through it feeling unhappy. Find something you love to do and learn everything there is to know about it! You'll feel better in the long run.
Did I miss any lessons that you may have thought of over your coding career? Post them below in the comments!