Staying Up to Date as a Software Engineer

As software engineers, there is an overwhelming amount of technologies that we either want to or keep up with. Staying current is not only a competitive advantage but also essential for keeping our resumes relevant. I learned this the hard way. 

To address this challenge, I decided to design a structured methodology to effectively stay updated. The approach consists of the following steps:

  1. Gather Information
  2. Filter the Information
  3. Practice What I’ve Learned
  4. Reflect on the Knowledge
  5. Repeat the Process

On top of these five steps, I developed a strategy over the years and have shared it with coworkers and students. The feedback has always been positive. Here’s a detailed look at my approach:

Gathering Information

I like to gather information from diverse sources such as videos, articles, books, news, and newsletters. However, I prefer to consume information asynchronously, on my own schedule. For this, I use an RSS reader, specifically Miniflux. RSS stands for “Really Simple Syndication” and is a way to subscribe to periodically published content, which is perfect for my needs. I decided to manage the information gathering with RSS instead of email so I have everything in one place and avoid notifications. This provides me with a dedicated space for information gathering that is fed periodically and automatically with my topics of interest.

Filtering Information

Not all information is equally valuable. To avoid information overload, I filter the content I gather. This involves skimming through articles, reviewing videos, and checking book reviews before committing time to them. I focus on the sources and topics that are most relevant to my current projects and career goals.

Once a day, for 5-10 minutes, I review unread links and skim those that catch my attention. I use the Eisenhower Matrix to decide on each link. I either:

  • Add it to “starred” on Miniflux or to my Pocket.
  • Delete it.
  • Add it to my today’s TO DO list(a simple markdown file per day).

I usually quickly check the content and decide to add it to my reading list

by bookmarking it with a tag. I use Firefox bookmarks since it is my default browser on my devices. If I decide to read an article later, I will add it to Pocket.

 A P2K service automatically sends the content I save in Pocket to my Kindle every Friday, along with the 10 most recent links I’ve saved. This feature is fantastic because it allows me to focus on specific topics depending on the device I’m using.

  •  I may use my phone to quickly review my Pocket list.
  • My laptop if I’m doing some code or POCs.
  • My Kindle if I want to submerge in some reading.

Practicing What I’ve Learned

It’s not enough to just read or watch content; practical application is key. I make it a point to integrate new knowledge into my projects as soon as possible. This might mean implementing a new tool, trying out a new programming language feature, or following a new methodology. I introduced Golang and Typescript to different companies by learning and teaching what I have learned.

Every day, I dedicate 30 minutes to actively learning about specific technologies. This time helps me stay updated with the latest trends in the industry. I might spend this time:

  • Reading an article.
  • Working on a proof of concept (POC), or
  • Reading a chapter of a technical book.

 The choice of activity depends on my energy levels and current interest in a topic. I trust the content because it has already been gathered and filtered through a process. Putting this knowledge into practice is crucial. By working on POCs or coding exercises allows me to turn theoretical knowledge into practical skills. This hands-on experience reinforces my learning and helps me understand how to apply new concepts in real-world situations.

Consistently dedicating time to learning and practicing new skills builds on previous sessions, gradually increases my proficiency and depth of understanding. It is compound knowledge.

Reflecting on the Knowledge

Reflection is an often-overlooked step in the learning process. After applying new knowledge, I take the time to think about what worked, what didn’t, and why. This helps solidify the learning and allows me to make changes for future applications. I use my journal for this reflection process.

Repeating the Process

The final step is to repeat the process. Staying updated is an ongoing effort. Technology evolves rapidly, and there is always something new to learn. By consistently applying this method, I ensure I remain current in my field.

Conclusion

Keeping up to date as a software engineer requires a deliberate and structured approach. By gathering information from diverse sources, filtering it, practicing it, reflecting on it, and repeating the process, I stay ahead in my field. This method has been effective for me and has received positive feedback from those I’ve shared it with. I highly recommend trying these tools and methods to see how they work for you.

Bibliography

Written by:

Lester Angulo
Sr. FullStack Engineer
Country: Costa Rica