On avoiding getting distracted by squirrels
Tags: career, productivity, motivation
Published: 2020-01-19 19:49:03

---
title: On avoiding getting distracted by squirrels
published: true
description: When it comes to your learning goals, maybe you've ended up over-investing in some areas that you don't particularly need right now. All of these things are *squirrels*.
cover_image: https://i.imgur.com/YcOsglo.jpg
tags: #career, #productivity, #motivation
---

> My master made me this collar. He is a good and smart master and he made me this collar so that I may tal--SQUIRREL! - *Dug*

At the start of 2019 I wrote a list of self-learning goals which I then proceeded to largely ignore and abandon for the year because other stuff got in the way. It's not that I wasn't spending time *working* on learning some skills, it's more that I was getting distracted by little bits all of the time.

To contextualise this, consider Redux; you've got to do a bit of Redux work on a codebase. Perhaps start with Dan Abramov's quintessential [Egghead course](https://egghead.io/courses/getting-started-with-redux), but then you've got to move on to all the middleware because the internet says so. So you've gone through Redux Sagas, or Thunks, or a weird mix of both of them in the case of one codebase I was working last year. Then you ship some shabby Redux, so then you've just **got** to read up on design patterns and architecture for peace of mind. Someone will mention Elm, which is worth looking into. And then someone who is trying to be helpful will tell you not to bother because of React Hooks, which is great advice other than the fact you really do have to use Redux anyway because *the codebase you are already working on is using it*.

This is all well and good, but what if learning all of that context *around* Redux doesn't actually progress you any further to the goals you're looking to pursue? It all feels a bit, well, unstructured. While I'm sure there's plenty of benefit from doing such things, in the short-term maybe you've ended up over-investing in areas you don't particularly need right now. These are all *squirrels*.

A relatively common bit of advice I've heard and read is that you should focus your learning time on starting and finishing actual projects, and I think there's some sound logic to that. Outside of the other benefits of actually getting something done, which might also lead to something down the line, it also gives you an educational tether. Once you've invested a couple of months in building an awesome Django project it's perhaps more likely that you'll continue forward with it, rather than dipping your toes into any number of web frameworks - which I often find quite tempting. I am really good at *starting* a bunch of projects and *much less* accomplished at finishing them. 

The internet is a magnificent tool and there is an embarrassment of riches when it comes to affordable courses, tutorials and guides, but actually working out how to navigate a path through all of it can be massively challenging. 

I'd love to learn more about understand and map out a full pedagogic journey, but that's a problem for another day - right now I actually need to do some deeper (rather than wider) learning.

With that in mind, these are the resources I'm looking to go through in 2020: 

- [Test-Driven Development With Python](https://www.obeythetestinggoat.com/)
- [Working Effectively With Legacy Code](https://www.amazon.co.uk/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)
- [CS50's Introduction To Game Development](https://cs50.harvard.edu/games/)
- [Math Overboard](https://www.amazon.co.uk/Math-Overboard-Basic-Adults-Part/dp/1457514818/ref=sr_1_3?keywords=math%20overboard&qid=1579461369&sr=8-3)
- [A Curious Moon](https://bigmachine.io/products/a-curious-moon/)
- [Structure and Interpretation of Computer Programs](https://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871)