Software engineering as a discipline is a lot more amorphous than other engineering disciplines. Being an effective software engineer requires having a solid foundation in computer science and engineering principles, plus the ability to stay up-to-date on the state of the art. Here are some ways I stay relevant and up-to-date.

Podcasts

Since starting my first internship in May 2015, I realized that I needed to use my new daily commute productively and to start gearing up my vocabulary and knowledge of professional software development. I created a station with some of these podcasts and started working through the backlog dating back to 2004! I’ve added some of these podcasts to the station later on and still enjoy it today.

Blogs and Articles

A classic source of information is HackerNews, but there are a multitude of great blogs to follow out there. Reading blogs and articles at breakfast or over lunch is a great way to stay up-to-date. I also extensively use the reading list in Safari to save things for later. I’m planning on building a page on my website to graph the topics I read about in a knowledge map or word cloud.

Reddit

On Reddit, I follow multiple software, computer science, and tech subreddits such as,

  • c_language, C_Programming
  • python
  • cellular_automata, genetic_algorithms, proceduralgeneration, processing
  • compsci, computerscience
  • Cplusplus, cpp
  • cscareerquestions, softwaredevelopment
  • embedded, raspberry_pi
  • javascript, typescript
  • programming, coding, programmingtools,
  • Python

Books

Reading the literature of your discipline is incredibly important and often ignored. You can see my post about software and computer science books here.