Continuous Learning as a Software Engineer

The world of software is growing, especially in the ares with the most in-demand specializations.

New technologies that are adapting to business needs are coming out with increasing velocity.

The thought of continuous learning should excite you, because as a Software Engineer, it is an absolute must.

There are three keys to success with your learning:

  1. Topic
  2. Learning style
  3. Routine

Topic

Most importantly, find the topics that interest you.  If you're not interested in learning them, you won't put in the time.

Be sure that you're spending time learning something that will benefit you and your career.

Consider learning something that will also benefit your employer.  This is especially important if you are using working hours for your learning time.

As an aspiring or early-career Software Engineer, I'd recommend doing some quick research on the industry standard technology/tooling for your area of interest - then, spending some time going deep on that technology.  This way, you'll have a concrete example that will allow you to learn the main concepts.

If you're not sure what to be learning, I'd highly recommend learning about the development tools that are likely to be portable across industries and the sub-disciplines of Software Engineering.

For example, source code version control, of which, git is the most widely accepted in the industry today.

Another example would be a text editor of your choice - my personal favorite is vim - but there are a lot of great options available.

The console (or "shell") is another portable, but sometimes platform-specific, option.  On Mac, Linux, or Unix-based operating systems, consider learning bash or zsh (I absolutely love oh-my-zsh).  On Windows, Powershell.

If you're interested in learning a broader topic, consider one of the sub-disciplines of Software Engineering.  My recommendation would be focusing on one of the areas that are geared toward big data - Data Engineering, Machine Learning, and Data Science.

Learning Style

Experiment with different types of learning content to find those that best suit your learning style or your learning environment.

You may even prefer to have multiple sources of learning so you can learn whenever and wherever you are able.

I almost always have multiple learning tracks with multiple media types so I can spend time learning whenever opportunity strikes.

For me, I've found that if I'm learning at my computer, I prefer video courses or e-books.  My all-time favorite video-based learning system is Pluralsight, but there are many platforms out there.  You can even find high-quality indie content, such as Wes Bos' courses.

If I'm riding the train, I like to read e-books on my phone or iPad.  My favorite tech publisher is Manning Publications.  You can find anything on Amazon and most of it is available on Kindle.

If I'm driving or walking, I prefer audio books or podcasts.  For audio books, I generally use Amazon's Audible, which has a nice monthly subscription available.  I personally use Apple's Podcasts app, but there are plenty of platforms available to discover and consume podcasts.

Routine

Dedicate a minimum of 4-5 hours per week to learning.  Build that time into your routine.

Ideally, you can do this during your working hours.  Often, this means that you're learning something that directly benefits your employer.

To supercharge your learning, put in even more time.  Some of the most talented Engineers that I've met dedicate as much as 30-40 hours of learning outside of working hours, especially if they need to learn a new skill or technology quickly.