DEV Community

Cover image for On avoiding getting distracted by squirrels
Martin Gaston
Martin Gaston

Posted on

On avoiding getting distracted by squirrels

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, 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:

Top comments (3)

markerikson profile image
Mark Erikson • Edited

FWIW, we do have a new Redux Style Guide docs page that lists our recommended practices and patterns. Hopefully this will provide some useful guidance so that folks aren't having to make as many decisions up front.

In addition, our new official Redux Toolkit package includes utilities to simplify several common Redux use cases, including store setup, defining reducers, immutable update logic, and even creating entire "slices" of state at once:

martingaston profile image
Martin Gaston

Thanks Mark! I should have linked to that from the beginning - it's a great resource and I've been using it loads over the past few months.

I don't mean to single out Redux, it was just the first example that came to mind (after spending first few months of 2019 working with some great clients on unpacking some interesting technical debt 👍)

Thanks for all the great work 😊

markerikson profile image
Mark Erikson

Sure, and you're very right that the number of terms and concepts related to Redux can definitely lead to that "SQUIRREL!" feeling.