We all have that friend who has a full-time job, completed a part-time postgrad degree, and built an income-generating side business. Also, she exercises, reads, and writes.
How do they accomplish so much with the same amount of time?
I don’t know. But I had to find out when I started the Georgia Tech Masters in CS while working full-time. Four years later, I’m happy to share a system that worked well for me. It helped me to graduate, and now, it’s helping me to write weekly.
While this is humble compared to those superhumans, I do get questions about it from time to time. So here’s a write-up about the tools and routines that make up my system. Perhaps it’ll be useful for you. I’m also curious about your productivity systems and would love to hear about them.
Tools help us accomplish more by automating the details and extending our abilities. My tools mainly fall into two buckets:
A scheduler is essential for planning and tracking my time. Without it, I spend too much time thinking what to do next, and sometimes the week passes with nothing accomplished. My weekly schedule is organized around the ideas of two great thinkers.
First, Cal Newport and his ideas of autopilot scheduling and time-blocking. Recurring tasks are put on autopilot so I don’t have to think about them. This includes my weekly writing process (outlining, drafting, rewriting) and chores. Assigning tasks to blocks of time helps reduce procrastination and overestimation of how much I can achieve in a week.
Tasks are organized around Steven Covey’s First Things First. First Things First also talks about prioritizing tasks via the Eisenhower Decision Matrix; frankly speaking, I don’t use that matrix much. Instead, I find it useful to organize tasks around my roles, such as being an individual contributor, leader, student, friend, husband, and son. Thinking about these roles ensure I allocate time to each of them.
“It is not enough to be busy… The question is: What are we busy about?” – Henry David Thoreau
I use WeekPlan to schedule my tasks around these roles. (Previously it was pen and paper; more below). Here’s how a typical week looks. Different roles have different colours: light blue - technical tasks (at work), green - leadership tasks (at work), dark-blue - self-study, yellow - social, pink - family, self - red.
When planning my schedule, I often find more tasks than I have time for. This makes it clear that I’m trying to do too much and some tasks have to be delegated or deprioritized. (I would not have realized this without time-blocking). Assigning tasks to (colour-coded) roles helps track which roles get my time. In this example, I was in the OMSCS program. Thus, there were more self-study tasks and fewer friend/family/self tasks.
Before discovering WeekPlan, I built this tracker sheet. When planning my week, I start on the left where I indicate my key principles or roles. Then, I list out the important tasks for each role. Finally, I schedule tasks in order of importance—this ensures that I make time for the important tasks each week.
To organize my thoughts and think better, I need a notebook. Doodling and writing things down improves my thinking. Taking notes of what I’ve learned helps with remembering (and future reference). It also lets me restructure my ideas, and spot and fill the gaps.
“Notes aren’t a record of my thinking process. They are my thinking process.” – Richard Feynman
I use Roam as my main note-taking app. While I only use very basic features such as bidirectional links and reference blocks, it works well enough for me. I use it as both a tool for organization and creation. Multiple outlines of this write-up were iterated in Roam.
What about work-related notes that shouldn’t be online? For those, I use the free version of Bear; it doesn’t allow online syncing. This ensures I’ll never make the mistake of putting work-related stuff online. The user interface is pretty sweet too.
For the longest time, Evernote was my main note-taking app. Back then, it was revolutionary to be able to organize notes by notebooks and sync them in the cloud. This eventually grew to around 3,000 notes.
Nonetheless, at the start of this year, I tried adopting Lukmann’s Zettelkasten for note-taking and implemented it in Roam. So far, I’m liking it and will probably stick with it for a while. Here’s more on why I made the switch and my approach to reading papers and taking notes.
At work, I create value through writing code. While great engineers can write code with pen and paper, having a good IDE augments our skills. My productivity would be very different if I coded in Vim instead of an IDE.
After trying several IDEs and text editors (e.g., Eclipse, VSCode, Sublime), I settled on the JetBrains IDEs. I’ve found its IntelliSense to be faster and more comprehensive. It’s also a big plus that the hotkeys are similar across IDEs for different languages (e.g., IDEA, PyCharm, CLion).
While JetBrains IDEs are notorious for being resource hogs (i.e., they consume more memory and take longer to start), I’ve not found this to be an issue on my Mac. And once it boots up, the development experience is second to none.
(Over the past few years, VSCode has surged in popularity. Its remote development feature is a game-changer. Unfortunately, it doesn’t seem to work well for me. For example, I’ve found code completion and linting sluggish, and syncing files seems slow. Perhaps I’m doing it wrong? Suggestions on how to set up VSCode properly welcome!)
For 2020, my sole resolution is to write useful content weekly. Given that this site is based on Jekyll, my main writing tool is a Markdown editor. (Jekyll then converts the Markdown into a static site which is hosted on GitHub Pages.)
For a free Markdown editor (on Mac), I can’t recommend MacDown highly enough. It has a simple interface with an editor and preview pane and it just works. I use it to edit the
READMEs for my projects as well as other one-off documents.
For my weekly writing, I splurged on an annual subscription of Ulysses. The writing experience has been great so far. Typewriter Mode has helped me push out my first drafts (instead of endlessly tweaking prior paragraphs). But is it worth the price? For most people, probably not. Fundamentally, it’s a Markdown editor with an awesome user interface, cloud syncing, and other nice features—nothing you can’t do without.
To work and write well, I find it necessary to read well. While reading, I find it useful to highlight important sections and have it sync across devices. Thus, the reader tools I use must have this ability.
To read books, I use the Kindle. For the longest time, I was skeptical about it. I mean, how could it be better than an actual book? I then had the chance to try it at an Amazon store and it didn’t seem that bad. While I wasn’t convinced, I decided to indulge in getting one (my rationale: since I was joining the team, it’s user experience research).
Now, it’s one of my favourite devices (together with noise-cancelling headphones and robot vacuums). The Kindle is so light that I can read for hours without straining my arms. Though I initially had doubts about reading on a digital screen, there was no eye strain after bingeing on a sci-fi novel for 8+ hours. And the ability to make (digital!) highlights, and sync and review them in a browser (when taking notes) is a big plus. Also,
CMD + F. Now, reading physical books seems like a lesser experience.
To read papers, I use Adobe Acrobat Reader and sync them in the cloud. This lets me read, highlight, and sync my papers across devices (work laptop, personal laptop, iPad). Instapaper does the same for online articles.
Routines reduce (unnecessary) thinking and decision-making in our day-to-day (e.g., what to eat, when to exercise). This frees up time and energy for productive work. (Nonetheless, bad routines can limit us.) My mornings and evenings run on autopilot. Work hours are organized around a Maker’s schedule.
“Routine, in an intelligent man, is a sign of ambition.” – W.H. Auden
Mornings are for things that would otherwise get lost in the day:
Work hours are organized for deep work:
If I’m waiting for a (Spark or SQL) job to complete, I squeeze in micro-batches of work that don’t require too much context (e.g., clearing email, updating Jira tasks, etc.). I try to avoid morning meetings—that’s when I’m most productive. Meetings after lunch are okay, though preferably after 1500 when I’m tapped out. Now that we’re working from home, I squeeze in exercise over lunch.
On weekends, the hours just blend together as I hammer out each week’s writing, chores, reading and learning, and family and social gatherings.
Evenings are minimal and free-for-all. If I’m behind schedule, I might squeeze in more writing here. Otherwise, I’m usually reading or playing some mobile game. The day ends around 2230.
I wish my time was used as productively as I described. Nonetheless, I find myself getting distracted more often than I would like. (I comfort myself with the 85% rule.)
Some games are too addictive—I can easily sink 10 - 20 hours a week in them. (Years ago, I was so obsessed with an MMORPG that I couldn’t study for my O Levels. Eventually, I resorted to cutting my PC’s power cable to snap myself out of it.) When I start a new mobile game, it can wipe out two hours on weeknights, and a shameful amount of time on weekends. Thankfully, it usually subsides after a month or so when I complete it.
I also have too much fun messing with my site. Too often, I’m tweaking things and adding little features here and there. Recently, I migrated comments to utterances, added feedback buttons, and lexical search. I don’t think it helps readers much. And it’s not as productive as building an app or writing. Nonetheless, I learn a lot and it’s play for me.
Social media is a time sink. I check Twitter and LinkedIn too often. For some reason, I get a dopamine hit checking notifications and seeing conversations happen in real-time. This unnecessarily fragments my attention and drains energy from productive work and quality time with loved ones. This bad habit needs to be eliminated.
I hope this has been helpful for how you think about productivity. If you’re not organising your life around a schedule, I recommend this simple planner (pdf, excel)—I’m confident it’ll help you find more hours in your week. Also, try autopilot scheduling to minimize the hassle around recurring tasks.
Next week, we’ll have our first guest: Susan Shu. She’s that friend who has a full-time job (as a data scientist), completed a part-time masters, and built and manages a game studio on the side. I’m excited to have her share about her routines and habits.
What tools, habits, or routines have you found helpful in your life? I would love to hear from you via replying to this tweet, or in the comments below.
How do some people work full-time, study part-time, start a side business, and still find time to exercise, read, and write?— Eugene Yan (@eugeneyan) September 16, 2020
I don't know but I had to figure it out when I started the Georgia Tech OMSCS.
Here's the tools and routines that helped. https://t.co/g5aOeT1jrj
Thanks to Yang Xinyi and Susan Shu for reading drafts of this.
Join 1,800+ readers getting updates on data science, data/ML systems, and career.
Welcome gift: 5-day email course on How to be an Effective Data Scientist 🚀