Staying up-to-date as a software developer with a daily learning routine

How I study and practice to keep my skills current in the fast-moving field of software development.

General

Learning to learn

I'm passionate about learning. Knowledge is priceless. It can be fun. It can help you earn more money at your job. It can help you hold on to your job.

But it does take time and work to learn new things and to retain what you have learned.

There are some practical things you can do to make the time you spend learning more effective. In this article, I'll be showing specifically what I do to stay on top of the ever-changing information in the world of software developers. But these principles apply to any field or area that you want to learn, not specific to programming.

My daily process for learning

I have a daily recurring task for learning that includes three things:

  1. Learning new things with a feed reader
  2. Solidifying what I learn with dedicated practice
  3. Remembering what I learn with spaced repetition

Let's go through each of these.

Learning new things with a feed reader

I'm currently using a feed reader to stay on top of new information in my field and areas that are interesting to me. I use Feedly but any feed reader will work.

How it works

The way it works is you add "feeds" of information that is important to you. Then when new items get added to those feeds, they show up in your feed reader for you to review. It's a similar concept to using email, but instead of messages from people, you are getting items of content to learn.

Add anything that is important to you

Choosing what to subscribe to will depend on your field. There are a lot of options:

  • Newsletters
  • Blogs
  • YouTube channels
  • Twitter accounts
  • Facebook pages
  • Subreddits
  • Hacker News
  • Google alerts
  • etc.

For example, here are some of the feeds I have in my feed reader for my interests and field of software development:

A warning about adding too many feeds

Having a feed reader is only valuable if you actually review it. If you subscribe to too many things where it is overwhelming and you stop using it, it loses its value. So I'd recommend only subscribing to the most important feeds to you - so that you can get through them all each day.

So for example, I currently get about 5-10 new feed items a day. If it starts getting noisier than this, I unsubscribe from feeds so that it stays manageable.

Why not just check Twitter/Facebook/Reddit/email like everyone else?

To be clear, I still use some Twitter accounts and subreddits etc. under the hood of my feed reader (you can subscribe to these things via RSS). But instead of going to all those sites/apps manually I aggregate them in a feed reader. I like doing this for a few reasons:

  • All my learning input is in one place (videos, articles, social feeds, email newsletters etc.)
  • There are fewer distractions (no logging into different accounts, no notifications bugging you on your phone, no social features begging for your attention, fewer advertisements, etc.)
  • There is less data tracking - I'm in complete control of what I see and share without having to log in to sites and give them my information.

What if what I want to learn doesn't have an RSS feed?

The system behind feed readers (RSS) is an old technology that is available almost everywhere. And even if something you want to get in your feeds doesn't have an RSS feed (rare), you can generate one with tools like FetchRSS, TwitRSS.me, hnrss etc.

Solidifying what I learn with dedicated practice

Once you hear about something, you have to actually use it for it to stick and be helpful for you.

The way you go about this will vary depending on your field. So for me, as a software developer, as I read through my feed reader I often have things I want to try out. So I open up my code editor and try out some of what I'm reading. I'll tinker with new libraries, syntax, and algorithms until I get it and it sticks.

Remembering what I learn with spaced repetition

Once I've read through my feed reader and practiced what I'm learning, I'll write down what I learned in Spaced Repetition Software and review items that were previously written down. This ensures I retain new knowledge in long-term memory.

I wrote more about this in the Retaining what I learn through Spaced Repetition Software article.

Conclusion

These are some of the things I do to learn. They work well for me. They may work for you or you may learn differently! No matter what process you use for learning, I would encourage all of us to do something to always be learning. Becoming a lifelong learner is a skill that is worth mastering.