Even if you are lucky enough to have the time and energy to devote to your personal development, making the best use of that time can feel like a burden. What should you focus on?
With so many types of new tech and resources available, creating a personal technology portfolio can be a useful approach to managing your learning goals.
One of the challenges of being a software developer is the never-ending amount of learning to be done. Books to read, new technologies to try, catching up on tools and practices that it feels like others have been doing successfully for years. Then there are pet projects and open source contributions, all this without even considering the challenge of trying to improve at your day job.
You shouldn’t feel a burden of course. There is a lot to be said for doing a great job in the working day, forgetting about tech and coming in fresh, ready to go at it the next day. But for many, it is a hobby as well as a career. And whether you are allocated learning time as part of your working hours or invest your own time, how can you best decide what to focus on?
Manage your learning goals
Developers are often said to be easily distracted by the next shiny thing. Maybe that’s you and you like jumping from topic to topic. If however, you want a more structured approach, here are two ways you can organise your learning:
1. Create a learning backlog
Prioritise your learning goals as you would an agile product backlog. Just like a backlog, items nearer the top should be specific, actionable tasks (eg. Complete this online tutorial, read that book, tackle a PR from this open source project list), whereas those lower down the list can be vague, higher-level objectives to be broken down at a later date (eg. learn Haskell, get into Machine Learning, talk at a meet-up).
Set yourself a medium-term target for how far down the list you expect to get in the next six or twelve months. Keeping in mind that like any agile backlog, you will want to adjust priorities as new information comes to light or as things change over time. Be prepared to revise your aims as you go.
2. Categorise learning targets
Another approach is to group learning goals into categories – for example, new tech or tools that you simply want to explore out of interest is a different kind of goal to getting deeper into a topic that you already know well and use regularly.
One of the ways you can do this is to create your own Technology Radar. ThoughtWorks publish a Technology Radar on a regular basis in order to capture a snapshot of their combined view on software development tools and tech. One of the contributors – Neal Ford, recommends creating your own version to manage your personal development.
You can take this approach as far as you want. You can simply use the categories as inspiration to help define your own groupings, or create a fully blown radar and update it on a regular basis. Either way, grouping can help you to allocate different types of learning at a time and place that is most appropriate.
Like a financial portfolio, time invested in your career development should balance out risk and reward.
A tech portfolio
Regardless of how you organise, I would recommend following Neal’s advice to think of your personal development as managing your personal technology portfolio. Consider your learning exercises as a series of investments. Similar to a financial portfolio, you should build a combination of investments that diversify your interests in a way that balances out risk and reward. Some kinds of learning will have more value than others, some will be speculative and possibly not get a return at all.
Speculate in new tech or tools that widen your perspective and keep your interests current.
Types of learning
Go back to basics
Want to improve on something you think you know well? Go back to basics. Similar to teaching, this has the effect of challenging your own level of expertise on a topic. Pore over introductory material and question yourself – do I really know what this means? Question, read around the key concepts and dig deeper than you did when you were first learning the topic.
Looking at other code, Open Source contribution
Conferences can be a great way of broadening your interests and understanding as well as giving you some time in new surroundings to think about what you can do better when you get back to base. Getting together in person to discuss ideas with other people in the industry is a great way to expand your knowledge and build a network.
Be part of an online community
Blogs, newsletters, forums, slack groups, coding challenge sites and social media all offer a chance to learn from people online doing similar things to you. Some kind folks even offer remote mentoring sessions.
There is no right or wrong way
How you manage your own career is up to you. There is no right or wrong way, but sometimes a small amount of planning ahead can help make the best of that valuable time.