A windmill on a hill

How I Stay Productive as a Software Developer

Share This with your Geeky Friends!

Imagine getting more stuff done, more effectively, in less time. That is how I will define productivity for the rest of this piece.

I’ve been reading a lot of productivity articles, tips, tricks and Twitter threads. In a way, doing so is the worst kind of procrastination, entropy for entropy’s sake. But every once in a while you’ll glean some gold nugget among the rubble, and it will all be worth it.

This is my attempt at recollecting what nuggets I found. On each section I will:

  • Cite sources I found interesting or relevant.
  • Mention whether the methods have worked for me and what exact impact they’ve had.

I will add a big caveat though: I think every person’s optimal productivity engine should be different. Thus, all of this advice should be taken, tested, and left to rot if it doesn’t work for you. And that pretty much applies to all other posts of this kind, in any blog ever, in my opinion.

Without further ado, here are the things I’ve seen actually work to make me get more stuff done, or stay less stressed.

Reduce cognitive load

Cognitive load is a beautiful term. It roughly means “How full is your mind’s RAM?”.

Whenever you’re thinking of the next 5 things you have to do, your groceries list, and whether you left the stove on, you’re carrying cognitive load.

It should be evident, but cognitive load stresses you out. Reducing it can help you better focus on your task.

Here’s what has worked for me on this account:

  • Keep a clean room, office and desk1. You shouldn’t have trouble finding anything you use often, and the things you use the most often should be very easy to reach. This also applies to your filesystem, bookmarks system, etc. If you know you’ll want to check a certain link again in the future, bookmark it under an intuitive path. Don’t find yourself looking for it through your twitter feed.
  • If something’s on your mind and it’s not useful to keep thinking of it, write it down and forget it. You can look it up later.

Take this article, for instance: instead of pestering myself thinking ‘You have to write that article!’ I just added an item on my Trello backlog that said ‘article on productivity’ and forgot about it until I had free time again and checked.

My own setup for task tracking is a combination of Trello for daily/weekly tasks and a Google sheet for long term stuff -like a deferred backlog- but really, every person has their own perfect combination of tools and processes. Find your own.

I know many people who prefer physical post-its, or a board. I’d rather get the portability of a browser app and the tracking for future reference. This is especially good if you also practice journaling, because then it’s just “What did I do today? Oh ok I’ll check today’s cards”. Still, your mileage will vary, so try many things and see what works best for you.

Keep productive habits

…Watch your actions, they become your habits; watch your habits, they become your character; watch your character, it becomes your destiny.”

― Lao Tzu

Some people recommend this book called “Atomic Habits”. I won’t lie, I haven’t read it. But I read a good summary on reddit and agree with most of it, thought I was already kind of doing most of what it talks about.

The gist of it is: don’t try to build productivity on its own, build systems that incentivize you to be productive.

Some people use pomodoros, others prefer to put on noise-blocking headphones; I personally prefer to hide my cell phone until I have got enough stuff done.

My technique for this is simple: every month, (or use whatever time frame works for you), I decide which routines I will keep.

Right now for instance, my routines are:

  • Exercise 4 times a week.
  • Do everything I have to for work and school, obviously.
  • Journal every night
  • 2 hours of Japanese study every day

The painful side of having a very clear set of goals and habits is: you’re extremely accountable to them. Is the day ending and you haven’t done your daily study session? You better get down to it right now.

In my case, my own conscience is a harsh enough mistress, but if you are not that hard on yourself when your to-do lists have uncrossed items, you may want to try something like

  • Asking your SO to make passive aggressive remarks to you if you don’t finish your tasks.
  • Reward yourself with something sweet.
  • Going full monk-mode and forfeiting cell phone time until everything is done.

Now for the flip side: you’re accountable for your tasks, yes, but you also set them. So whenever you define what your habits will be, don’t overestimate yourself. It’s better to have realistic, achievable goals that fall a bit short of your maximum effort, than it is to overstep, burn out or just not build the habits because you can’t keep up with them.

Did you underestimate your time management skills and now you’re doing everything you planned for and then get a lot of free time anyway? Cool! You get to feel productive and have free time.

You definitely don’t want to optimize for minimum free time. It sounds obvious, but I’ve caught myself and others doing this without realizing it.

The devil doesn’t always make work with idle hands.

Another thing about incentives: this ties to the “unclutter” rule I mentioned earlier, but do try to turn everything around you into a big habit-keeping engine.

For instance, if your goal is to read a book every week, have your book on sight and within arm’s reach at all times. Carry it on your suitcase/backpack, take it out instead of your cell phone when you want to procrastinate, etc.

You’ll be surprised by how much stuff you get done when everything around you is making you do it.

For a small guide on creating habits that I found interesting (though maybe more complicated than necessary) see creating habits.

Don’t use your head for things a PC was made for

Really though, remember what I said about cognitive load? Defining daily goals is not cool if you end up spending 5 minutes every hour thinking “ok what comes next? I already crossed my Chinese practice and my Economics lecture, what was the next item?”.

You want whatever system you build to be maintainable in the long run, so you should make it as easy to consult as possible, and not depend on a very fallible piece of architecture (your head).

So keep everything written down, on a nice .txt file, a Google doc, a sheet, etc. Use whatever you like, but not your head. Really it’s that simple, and it works.

(Aside: I am not going into detail into different tools or task tracking systems because honestly? There are like 20 different articles on this topic posted on HackerNews every week, and they’re all the same).

Effective Note Taking

This is all I have to say about note taking.

I am not a very note taking inclined person. I started this particular habit this year, and even though it feels productive, I don’t feel like I can quite say it has actually made me perform better yet.

So my first tip on this will be: don’t take notes if you don’t think it will be worth it. Some people retain information better when they take notes, I am not one of those people but if you are, then that piece of advice doesn’t apply to you. Remember when I said systems needed to be custom?

I also say this because I see there’s this trend in the internet of “write everything down, take all the notes!” and I think we’re tending towards an excessive “pro-notes-taking” bias, which may be unwarranted.

Secondly: if you are not writing everything down, how do you decide what should be kept? Well, I’m open to better ideas, but in my case I optimize for (estimated) future searchability: is what I just read, heard or watched something I am likely to think of in the future? And maybe I will want to recall it exactly and won’t be able to? Well then, into the notes it goes.

Note that it doesn’t need to be a relevant piece of information per se. I take notes about interesting history facts, anime trivia and weird Japanese words, not because they’ll come up in my final exams (fingers crossed) or, gods forbid, my job. I keep those quotes and facts around because they may come up in conversation.

Generally though, I think the category that makes the best notes is “things that I am likely to forget and look up again in the future, but I don’t care to learn by heart right now”.

This includes things like very specific facts about a domain, convoluted bash commands that you put into a script to not have to remember again (but want to persist somewhere else in case you want them on a different pc), or syntax details in a programming language.

I will be reading an article and think “oh, $FRIEND_X surely would find this very funny” and just write it down. And then I may send it to them through IM, but let’s be honest I could forget… until I reread my notes in the future.

Oh, the topic of rereading notes. This one is a tricky bit I haven’t mastered yet, and I am also open to suggestions in this area. Personally, I only reread notes on technical topics whenever they come up and I want to refresh my memory, and any other topic if I am thinking of it.

I know some people like to go through all of their notes every X time and they say it improves their creativity and gets the writing juices flowing. I am not super concerned about my creativity or writing right now (in case my one year posting-gap didn’t make that clear), but I will definitely experiment with that in the future (and write about it if I get any relevant results).

Lastly, I’ve recently been using a personal wiki for some of my notes (only the polished, public-facing ones), and it’s really cool, but it just reinforces point one: I feel like part of why I use a personal wiki is just that it feels nice, and I haven’t yet seen a lot of improvement over a simple Evernote or Google Docs. Maybe it’s a matter of scale and the effects won’t be apparent until a few years in? We will see.

Anki and SRS for studying and productivity.

Anki makes memory a choice, rather than a haphazard event, to be left to chance.

Michal Nielsen, Augmenting Cognition

I’ve been using Anki for language study (specifically Japanese) for about 4 years now. However, I’ve recently spent a longer than necessary amount of hours reading about people who use Anki for everything.

I have thoughts on the matter that I haven’t written down yet, but I also have my notes (see what I did there?) on the matter on my personal wiki, and you can read them here. They’re just quotes from different articles on Anki and SRS for studying.

Here are the best links if you want to start using SRS for your studies:

“Helping Develop Virtuoso Skills with Personal Memory Systems”
Michael A. Nielsen, Augmenting Cognition (My favorite take on Spaced Repetition Systems)

Gwern‘s Spaced Repetition Systems Article (Everything you need to know and more, a very good starting point. Also a general shoutout to Gwern’s blog, I love it)

senrigan.io‘s take. (It’s a lot more technical and anki-specific, but if you derive pleasure from being a power user then that article will be your jam)

The very basic gist of Spaced Repetition is this:

  • Make flashcards with a visible and a hidden side (usually a question and answer, or a -typically foreign- word and meaning).
  • Review them at increasingly spaced time intervals, which cognitive science says is optimal for long term retention (it’s more complicated and well cited than that, see Gwern’s post).
  • You gain more control over what stays on your long term memory and what doesn’t.

I can guarantee this works, because it has worked wonders for my Japanese vocabulary/kanji studies. As a sort of A/B testing, I tried this for one subject in college (and not the other) and I definitely am getting better retention of the topics I put into my Anki sessions. Take that with a grain of salt however, because maybe the extra time of filling in the cards and sitting down for reviews is what made it (unlikely, since I also take notes on the other subject and review them, just probably less religiously).

Other things that, once added to Anki, have saved me a very sizable chunk of time are shortcuts:

I must have seen about 5 videos on terminal shortcuts, for instance, and I think I never internalized them. But after I made a small deck with them (it only has about 6 commands that I knew I would use a lot), I retained them all, and now my terminal typing experience is a lot happier (for reference: ctrl+W deletes a word, and alt+arrows moves the cursor one whole word aside).

A lot of this boils down to: write your own cards. Iterate until it works. It may feel useless at first, but if you keep at it I promise you’ll see results in a few weeks at most.

Closing notes

This is all good funny reading, but let us not confuse productivity-related reading with actual productivity. The real fun starts when you get things done. So go hug your loved ones, and tell them you’re embarking on a productivity adventure! Or don’t.

Instead of reading your other 5 open tabs on productivity and good habits, here’s my advice. Pick one or two items, from this guide or another. Actually try them out, see if they work, iterate your processes. Then come back in a month to try different thing. If you try to get into 5 different techniques at the same time, you’ll just leave them all after a while2.

Here’s some more general advice that will definitely help on the “squeeze every hour as much as possible” side.

These are some of those things where everyone knows they work, everyone keeps saying they should do them –and then the habit is never built. I hope with what you saw on the habits making section, you can actually work on these.

  • Do regular exercise. Lift weights, or start running. It will do wonders to your focus and general well-being, besides the obvious health/aesthetic effects. Sometimes splitting your study session in half and going for a one-hour run can end up getting you better retention and focus than if you had pushed through without stopping.
  • If possible, get your 8 hours of sleep every night. There are millions of posts everywhere about biohacking and whatnot, and they will give you more tips for being well rested than you need. I won’t even link to them, you can google into that rabbit hole yourself. Just sleep well and plenty, in a dark, silent, cool place.

I hope some of you have found this guide useful, and if you did please let me know! If a single person changes their habits because of this post, I will already consider it successful (I know, I don’t set high bars to my writing).

Please consider tweeting this article if you found it useful or funny. Every time someone tweets my stuff it makes me smile.

1 : This goes doubly if you’re clumsy like me, and prone to topple things with your hands if they’re close on the desk.

2 : And you know which word we learned today to explain that? Cognitive load!

Was this post useful?

Click to rate!

I am sorry that this post was not useful for you!

Let us improve this post!

Would you tell me how I can improve this post?

Share This with your Geeky Friends!

1 thought on “How I Stay Productive as a Software Developer”

  1. Pingback: What Helped me be more Productive as a Software Developer - GistTree

Leave a Comment

shares