Being a software consultant requires a constant growth mindset. This means having a thirst for knowledge, in both technical and interpersonal skills. With a plethora of topics and resources available, making a choice can be a daunting task. These are a few questions I ask myself when deciding on my next topic to research.
Does My Workplace Need Me to Learn Something New?
If I am not familiar with a technology at work, I will make learning that my first priority. By spending some time familiarizing myself with workplace tools, I can become more confident in my actions and decisions, reducing my stress at work. I will also spend less time researching and more time crushing features and bugs, which will make my coworkers and project leads happy. This kind of learning is also convenient because there will probably be a braintrust of knowledge available from coworkers.
How Does This Benefit Me?
There are a lot of subjects to learn and only so much time, so anything I decide to research should benefit me in some way. Will this allow me to work on more interesting projects at my job? Will it increase my productivity? Will my communication skills with friends, colleagues, and clients improve? The more personal improvement I can get from a topic, the better.
Where Are My Weaknesses?
Another goal in learning might be going back and sharpening underused skills. My knowledge in a subject may have dulled after being away from it for a while, or I might want to deepen my knowledge of a tool that I only understand on the surface layer. If I only know a little bit about a build configuration, it will be useful to gain a better understanding so the next time a build error occurs, I will know how to solve the problem independently.
Will This Be Fun or Interesting?
While there is much to be said about learning solely for self-improvement, it can be beneficial to learn things for leisure. Will learning about Bitcoin and cryptocurrency help me at work or on future side projects? Probably not, but the challenge of an interesting subject breaks the monotony of learning web frameworks or mobile platforms.