Work-Life Balance
There's a beauty and a curse to what we do for a living. The beauty of what we do for a living is that we can do our work anywhere and any time we want. It's the ability to work around-the-clock that can cause problems. When I started my consulting company, I spent nearly every waking hour writing code. This, along with writing articles and books, and speaking at conferences, took a toll on my personal life, ultimately resulting in a divorce. I can tell you right now, this pattern has drastically changed. I try to work a “normal” forty-hour week, make sure I'm home on weekends when I travel, and have pretty much curtailed speaking engagements. Trying to keep a normal schedule has allowed me to focus on priorities of true importance, like family, friends, and hobbies. I also notice that I have more time to scratch that learning itch we developers all seem to have.
Continuous Improvement
It seems that Continuous is the big word these days: Continuous Deployment, Continuous Integration, etc. Let's add a new one to the mix: Continuous Improvement. We all need to focus on improving our skills as developers. For this item, let's focus on the quality of our work. As developers, we need to be constantly trying to improve the quality of our code.
There are numerous ways to make our code better. The first that comes to mind is to do code reviews with other developers of equal or better skill. Walk them through sections of your code and see if they have any ideas about how to improve. On a recent project, I spent time reviewing some critical code with my friend (and frequent CODE Magazine contributor) Rick Strahl. It was refreshing to have him confirm some of the better ideas and recommend a simple set of changes that improved the quality and stability our application.
Another technique for improving code is to review other people's work. The beauty of Open Source Software is the ability to examine first-hand the work of other skilled developers. Just yesterday, I noticed on my Twitter feed that there was a new Postgres module for nServiceBus. I'm currently adapting some of my code to Postgres and loved having the opportunity to review someone else's work on this platform while trying to improve my code. There are other ways to improve your work: read articles, watch videos, attend conferences. Find what works for you and improve!
Always Be Learning
There is only one constant in this business and that's change. As you have probably surmised from reading my other editorials, it's important to at least have a minimal understanding of the new ideas and technologies currently in use or on the distant horizon.
How can you possibly stay current? Staying current with today's everchanging landscape is much like eating an elephant. How do you eat an elephant? One bite at a time! (For the record, I don't condone the eating of elephants. <g>
) Learning new tech can be done one bite or technology at a time.
I read a funny Tweet the other day. It went something like this. Q: How are you going to learn the newest C# language changes? A: I'm gonna wait for the next version of ReSharper to point out changes in my code and follow the squiggly green underline.
ReSharper is a tool that many developers to improve their coding process. One of its features is to make code recommendations. These recommendations generally align with new language features, and presto: the green underline tutorial.
Another learning technique is sitting in your hands right now. One of the many goals of CODE Magazine is to help you learn. In this issue, we spend time exploring Microservices and Continuous integration. Future issues will have articles on Docker and using “R” for data analysis.
One of my learning techniques is to buy and read the latest “<insert subject here>
For Dummies” books. These books do a decent job of covering the salient points for many technologies. I'm not going to kid you, keeping up on tech is difficult and gets more difficult every day. But you've gotta keep eating away at the elephant.
Focusing on what matters is a skill that all human beings need to focus on. Spending time on what matters versus what doesn't is a sure way to improve your life. I'd love to hear from you on what matters in your life as a developer. Maybe it can be the subject of an article in CODE Magazine.