"Keep learning." It's one of those things you will read on every guide on how to become a good developer. But how can one keep learning every day? It's easy in the beginning you are starting, there is so much to learn. But now, you have a good-paying job, you know everything well enough to keep you and your employers happy. Sure from time to time, there will be some challenges that will enable you to learn new stuff. But it's not enough. I think that I need to learn at least one new thing each day, otherwise I do not count that day as a good productive day.
OK, but what can we do? In this article, I will go over a list of possible solutions to this problem.
Side projects
Side projects are the obvious solution to this problem. You do not need to aim for the best-looking, startup-ready project out there. The goal (at least for me) is to learn something new. So If your day job is mostly writing backend Java your side project should not be a backend Java. I recently redid my blog with Next.JS as a way to force myself to keep current with modern front-end technologies. In the past, I did a lot of side projects that were more of a joke.
To learn machine learning I tried to do something call Putin Emoji. I was image search, that searched through photos of Vladimir Putin that matched the desired emoji. He surprisingly has almost a full range of expressions.
You can even deploy it somewhere for people to see, the DevOps part can be a learning experience as well. I was running Putin emoji live for a month or so, but as you imagine it's hard to monetize such a thing (based on a stolen image of one of the world leaders) and it was not very cheap to run so I decided to take it down. Plus you know it was not perfect anyway but I learned a ton.
Reading
Another obvious solution is to read. You can read books, blogs, Twitter, etc... You can learn a ton through reading but I would count that as a piece of theoretical knowledge, I need to touch stuff to learn. Maybe you can code alongside the reading, etc...
Do not confuse reading through your Twitter wall with learning. Sure there may be tons of tweets describing a concept, etc.. but how hard a concept can be if it could be explained in the form of a Tweet?
Great sources you can use are:
Writing
Writing is a great tool that can help you learn new stuff. I try to document everything that I learn. This way I have notes to almost everything. For this, I use a folder full of markdown files that I edit in VS Code (the most overkill note-taking app). Sometimes some of my notes will make it as a blog post. Or Stackoverflow answer.
Videos
You can also watch video courses (or YT videos) where someone is explanting the stuff to you. To be honest I do not like watching videos, as I much prefer written tutorials. You need to keep up with the video, rarely do people code alongside, as the video keeps rolling, and I hate pausing it. You cannot copy-paste from a video either.
But hey some people use videos as their main learning source and do not complain. That is why it's on this list.
Speaking
I always found that the topics I know the best are the topics I used to teach to others. In my previous job, I was doing a lot of company-wide workshops about clean code and testing. I used a lot of time preparing those presentations and keeping those up to date (yes mainly changing meme images in the slides to the current memes) this kept in the loop, I was perceived as an expert on the topic and I kept learning new stuff. You can do the same as a speaker in your local meetups and or any conference.
For more tips like this, you can follow me on Twitter.