This is an archive version of issue 1 of The Green Coder, a short experiment which has since morphed into The Fresh Engineer Podcast. Check it out for a continuation of these thoughts!
Back in my final year of University I was one of the first GitHub Campus Experts. Last week I joined Juan Pa on the weekly GitHub Education live stream to catch up with him and the current campus experts. We took questions from the current community of experts and talked through our experience and advice around those topics. Over the next couple of weeks I'll be taking some of those questions and diving deeper into them.
This week we're going to look at one of the questions Juan asked which peaked my interest in particular.
One of the biggest constraints we've seen students experience is time management. You need time to build a community, create your own side projects, and also go through college and graduate. How did you manage everything that you did? I know you learned a lot of your stuff on your.
Time management is something I've personally struggled with massively, and continue to every day. It's specifically something that was called out by a lot of my school teachers along side other areas of my dyslexia.
I'm not one for heavy process and I struggle to stick to cumbersome systems, so my time management approach is pretty simple. You can listen to the VOD above for a brief overview first if you like, and then come back for more detail.
I learned pretty early on in my career that the root of a lot of time management issues come from unclear priorities. That's true both in work, and in life.
Unclear priorities show themselves in tons of different ways. For me, it usually results in either faffing around doing nothing of any value, getting stressed because I'm doing too many things at once. This is comes from my mind not knowing what I should be doing, so it either struggles to do everything or gets stuck and does nothing.
Having a clearly defined and well ordered set of priorities solves the question of "what should I spend time on?"
You will probably know your priorities at home, but do you know what your piorities are at work or university?
However you manager your work vs life separation, you need to ensure you can always answer the question of "what is my top priority right now?" This may shift during the day, week, month, and year but you need to be aware of it.
In a software team the priorities are often set by the Product Manager or Engineering Manager. If you're stuck wondering what your focus should be, ask them! They should give you an answer that aligns you quickly with the team, and with the business. If you're in college / unviersity then the question is probably one for you to answer by reviewing your grades and what your current grade predictions are.
Your time is your own, and everyone is going to want some of it. Only you get to choose if they get that time.
Defend your time
Now that you know what your priorities are, it's up to you to ensure you have ample time to work on them. Here's something people won't tell.
Your time is your own, and everyone is going to want some of it. Only you get to choose if they get that time. What's more, there are only 24 hours in a day, and probably only 6-8 where you'll have the energy to use them well.
To get work done you need time, and the only way you get time for your priorities is by guarding your calendar. If you know your priorities, a biproduct is knowing that anything else is unlikely to be something you want to spend time on. Sometimes you don't get a choice, but 90-99% of the time it is up to you.
When other people want a piece of your time, it may not always feel optional but it is. There are good ways to communicate "no" but we'll talk about that another time. Be gracious and kind, but also defend your time.
Allocate your time up front
You've got an idea of what you want to do, and you've now got the time to do it. The final piece of the puzzle is breaking down the work and allocating it out. Often priorities aren't as clear cut as 1 -> 2 -> 3, so you'll need to do a bit of juggling.
It's completely okay to tackle small pieces of all your priorities across the day, just make sure you're achieving something at the end of a portion of time. If it's a bug, it might just be "I've spent 2 hours working on this, and I've come out with a long list of what definetely is not causing the bug" - even that can be progress!
If you've got two projects you're working on that are your joint top priorities, just pick one to work on first. Roll a dice, flip a coin, it doesn't matter how you choose which to start on. Break down the work into a collection of small tasks, order them so you know what order you'll do them in, and then block that time out in your calendar.
Now you've got the magic combination! You have an understanding of your top priorities, free time to work on work on them, and an ordered list of small tasks to work through.
From there it's a case of getting started. I find it's much easier to get started when I know I have a start and end time for my session of deep work. I can set an alarm for a few hours time get started on the first item. My goal isn't to do the entire list, but just to spend that entire chunk of time working my way through the list I've created for myself.
Some days you'll finished feeling pumped and on a high of productivity, other days you'll drag yourself to the sofa after getting nothing ticked off the list. No amount of planning is going to change that, it's part of the ups and downs of life. So before you charge off into the sunset to subdue your priorities and decline all your managers meeting invites, just remember to have grace with yourself and with those around you.