Technology doesn’t slow down. It moves at break neck pace and if you don’t stay with the wave, you’ll be lost in the surf. In my experience, you have two choices. You stay at the forefront and fresh, or you choose a technology and specialize and risk becoming stale. The latter does have it’s benefits and risks, but that’s not the topic of this post. What I’m going to discuss is staying in front in technology and in doing so, constantly learning and doing something that you might not have done before.
One of the strengths of any strong software developer is the ability to learn, develop and apply new technologies as the arise and are the correct solution for a problem. Overcoming intimidation associated with the unknown is a crucial trait that will accelerate any technologist into the upper tier in their field. As I moved through my career, I found myself thinking of a lesson my music teacher shared with me when I was very young. After I learned the basics of music and my instrument, we had a lesson about sight reading new music. This is when you get a piece of music that you’ve never seen before and most likely haven’t heard before and are asked to play it. When first asked to do this I was a bit overwhelmed and unsure of how to approach the problem. He laid it out simply:
“Dustin, you have played this before.” I looked at him perplexed. He said “You’ve played every note in this piece, you understand the language of the music on the page. You just haven’t played the notes in this order yet.” It started to dawn on me. The music started to come together in my head and my fingers instinctively knew what to do. I played the music I had never seen before.
Little did I know at the time how applicable this would be to my chosen carrer in computer science. In university, I learned the basics of logic and programming languages, but what I really learned was how to learn and stay in front of technology. Just as I had built a foundation in music that would allow me to understand and perform any piece put in front of me, I had built a foundation in technology that allowed me to move rapidly and learn new tools to solve the problems in front of me. So now my music are the technical problems I need to solve and my notes are the bits I’ve learned to manipulate along the way. I understand the underlying concepts of solid software, now I just have to arrange the bits using the tools available (or by creating my own) to compose a solution to the challenges I face.
So maybe this post name is a bit misleading. In software, there are many problems that will be solved for the first time and various technologies there to accomplish this goal, but the reality is that the foundation is the same to achieve these goals.