I am a firm believer that a continuous growth-mindset is essential for any developer (and any other person to be honest). We execute day-in and day-out and more often than not will find ourselves playing to our strengths and focusing on the mission need instead of poking at every new skill and programming language under the sun.

Devoting yourself - your time, energy, focus and grit towards the skills you know will be required for making the next big decision is a great way to continue to grow. You’ll often find yourself sitting in a position of holding subject-matter-expertise and providing that knowledge to help inform greater entities (team, company, etc) on how to execute well.

But there is also a lot to be said for those who find time to squeeze into other domains for sheer awareness - often which is incredibly valuable to wholistic context. There are many ways with which you can identify domains to explore and ways with which to explore them.

So I thought I would outline a few of my own - let me know what you think.

Mission-Aligned Education

This category would encompass learning that directly affects your ability to execute each day. A programming language, tools, frameworks and methodologies that you will find yourself crossing paths with each day OR that you wish to find yourself crossing paths with. I say that because maybe there are values streams tangential to the work you do now that you wish to explore. I was very much in these shoes - I devoted a lot of my time over the last 5 years to platform development - but my real draw had increasingly been to build product and be engaged in lower-level software programming.

This doesn’t disclude the very real potential that what you wish to be is very different from what you do now - you’ll just have to be all the more determined to learn from the material that is available in order to have an informed and relevant seat at the table.

Hobby Project Education

One of my favorites - as I can directly relate many hobby projects that I have worked on over the years to success in my work. Heck, some of it was early prototyping that I eventually pulled or converted to company code. This could come in the form of:

  • Solving a problem only relevant to you
  • Solving a challenging problem
  • Solving a work-related problem
  • Dogfooding tools you use/productize

as well as many other scenarios. This combined with my homelab has been many times a driver of dogfooding my own work or that of a tool/product that I intend to use. It has brought perspectives to the development of platforms that maybe testing has not easily surfaced in the way of functionality or user experience.

These can often be the most engaging but also the most time consuming if you run services persistently (like myself). For the sake of self-hosting, I run a variety of services on my homelab that I serve to my family (really just my wife and myself currently). These persistent services require maintenance, upgrades and general monitoring to ensure the availability of them is online.

Open Source Projects

Wouldn’t be right not to toss Open Source projects on here as an extremely valuable avenue for improving yourself as a developer. Making something community driven better can come in many forms. Evaluation of issues in the backlog that need work - reviewing current performance in the expected execution of the project, as well as simply reviewing the user experience and looking for additional ways to support.

Skills Education

Lastly is the kind of learning that can sometimes require the most grit. Choosing to exercise your brain in new and unique ways. Can be a new programming language - or maybe a language you know well but a challenge that strains the way you commonly use it.

To be honest - this is where I should be looking to allocate more of my time. I believe it is my responsibility to be challenging my skills in new and unique ways in order to be better positioned to solve more algorithmic functions. This can largely be argued widely - but still something worth striving to make myself uncomfortable doing.

Conclusion

These are a few ways with which I look to challenge myself on some regular and irregular cadences in search of being a more well-rounded and informed developer.

How do you find ways to explore grow skills that have made you a more informed individual?