Part 1 — Defining your personal development goals

Everyone's got 'em

The balance you choose to strike between shut-in rockstar open source programmer and irregular contributing social butterfly is a personal one, and I can't advise one way or the other.

If you do choose to develop code in your spare time, prioritising is the tough part.

For me the process begins with having an overactive imagination that chugs away generating ideas for new software or enhancements to existing ideas.

Once you've ideated enough, you have to prioritise. I've heard this likened to refining your palate. Prioritising 'well' is whatever leads to self-actualisation (the psychological notion of realising your potential).

What and why?

Who?

Consider your audience, i.e. who are you doing this for?

When?

You're not prioritising abstract concepts in computer science, you're prioritising your time.

How

Dump your portfolio out onto a whiteboard, starting with the projects you've worked on recently.

Software is more often than not a living beast, growing and evolving, not so much a finished product.

Juggling multiple projects is therefore a big support task, and while you shouldn't spread yourself too thinly, jugglers is definitely a skill that can be mastered.

Next to each item in your list, write the defining feature(s) about them that might differentiate them (e.g. if you care about the technology stack enough to prioritise based on that, note that).

Rate the items in your list according to whichever of the goals outlined earlier you identified with:

Be ruthless, are they "strong", "mid", "meh", or "weak"? Try whatever works for you. Maybe they're all solid ideas: if you can't pick a least favourite, pick a favourite, and so on.

Maybe in your head consider multiple dimensions, but just give a simple rating.

Hopefully this exercise will identify a few strong ones and some that can be deprioritised. Conversely, if you disagree with the ratings, and really care about some of the projects you don't rate highly, you can brainstorm ways to boost their rating.


This post is part of Supporting and structuring personal development and open source contributions with GitHub Projects, a series covering how I began using the GitHub Projects tool for tracking my personal development and shipping outside of work. Read on for part 2, discussing how to create a GitHub Project to support your personal development goals