Today I am supposed to be demonstrating how to do aggregation efficiently through the use of Linq syntax. I am unable to complete that editorial today as promised, so am going to take a moment to share a little bit of personal conflict that applies to us all at some time or another.
I’ve been writing software for more than 30 years, sometimes as a sole responsibility in my role, others as a tool to accomplish my role. Either way, I have always been writing software professionally, even before graduating from college in 1985.
When I first graduated I really loved the deep dive into new things. I read the DOS manual from cover to cover. I used the DOS binary editor to peek into the operating system, or into the binary contents of files. I really wanted to know intimately how things worked. I had lots of free time, and this was my hobby.
Today I have a different life that is not conducive to that kind of in depth understanding. With a wife and kids, I can’t spend hours digging into new things. Needing to support my family, I can spend as much time that is not billable learning new technologies and procedures. And, there is a tendency, as you get older, to resist change.
As you all know, today’s world is very different than when I started writing software. We have new things coming out at a much quicker pace that we really need to evaluate, absorb, integrate or ignore. It’s tempting to just work on a project and ignore where the software is going until the project is done, especially if the project is long running. That’s where I get fulfillment from my work is in solving the problem of writing software to make someone else’s job easier or less tedious.
Personally, I have had to discipline myself to not fall into a pattern of self-imposed ignorance. If I wait to take a look at how software is migrating with big gaps in between, it makes it difficult to determine what is the leading edge of how things are done. Imagine the confusion to someone using Microsoft MVC. They watch training on how to write software using MVC, download a template and start a new project, and nothing matches the training they just observed.
I’m finding out that I simply have to set aside time daily to go see something new. Even if I don’t learn it to the point that I am able to write code using something, I can at least be able to follow the migration of change as it occurs over time.
I know I have written about this other times in similar ways. However, I think it is valuable to remind ourselves that we are our own best resource when it comes to keeping up with software trends and advances. We need to personally commit the time to keep learning, just as many other professions do. The difference is that we may not lose a license to practice our chosen profession. Maybe we should?