Keeping up with Software
Tags: software, career, learning, tips
Published: 2021-03-22 04:46:31

While lifelong learning is something that we all strive for, it is often put on the back burner as soon as things get busy. Life gets in the way of our learning, and we often forget that the world around us continues to adapt and innovate. Recently I’ve been pondering about how this is especially true for software and the implications it has on us who try to succeed within its bounds. There is a quote from [The Clean Coders book](https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073) that is especially applicable:

> It is not your employer’s responsibility to make sure you are marketable. It is not your employer’s responsibility to train you, or send you to conferences, or buy your books. These things are your responsibility. You should plan on working 60 hours a week. The first 40 are for your employer. The remaining 20 are for you. During this remaining 20 hours you should be reading, practicing, learning, and otherwise enhancing your career.

With that in mind, I thought about writing how I approach continuous learning, with an understanding that if I can devote 5 hours a week to it, I’m doing good.

# Explore
This is arguably the hardest step in this process because the world of software is so vast. It’s easy to get sucked into that movement and lose your direction. There are two criteria I look at when trying to decide if a technology is worth investing my time in.
1. Is it being used in [industry today](https://insights.stackoverflow.com/survey/2020)? i.e. is it applicable to anything outside of my current workflow
2. Does it make me uncomfortable? i.e. if it’s too easy it’s not a good side project.

# Map Your Plan

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pkxvesjjo3q1t0bksglf.png)
*Source: Notion*

The biggest thing is setting aside time when you can be productive to learn that is outside of work. It is so easy to look at the rate at which things change and get swept up in the hype of trying to learn and master things. Just like when you are trying to engineer something, it is best to build each component and use them as building blocks going forward. It is important to put together a plan and set up an action trigger. This trigger tells you that everyday when I do X I need to start Y. For me, it’s every night, I finish my school work, eat dinner, and then watch YouTube focus on improving my craft. There are tons of tools to help you stay organized, and honestly I just use the notes app on my phone because it’s easy. If you wanted to get official with it you could try a scrum board, or any of the following:
* Trello
* Google Keep
* Evernote
* Miro
* Notion
* Notability

# Practice Your Craft
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n9wj2xabki5n8ssz7x2m.jpeg)
*Credit: Nick Karvounis*

Practice is probably the hardest part of staying consistent with software. Here’s the thing, when you code all day, you don’t want to code more later unless you have some motivator. When I first started with consistent practice, I would just solve Leetcode problems everyday. And while those can be fun, they lack any purpose or real motivators. Having a passion for building something that you can show off is what drives all of us to refine our craft. So I try to approach the problem from a different perspective. Rather than look at it as something I have to do, I look at it as something I get to do. It’s a slight shift, but actually a really impactful one. I get to spend the next hour working on anything that I want. After all technology is cool, right?

# Types of projects
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ssgumh65qeepprthw50s.jpg)
*Source: Raspberry pi*
* Build a portfolio website. Check out mine for inspiration
* Build a platformer game in any 3D engine.
* Use an embedded device for a hardware project. I highly recommend raspberry pi.
* Explore big data with Hadoop
* Try to learn a new programming language. I’ve always wanted to try Rust
* Or anything else you can think of that gets you excited.

The world of technology is changing regularly and it’s our job to try to stay relevant. Sometimes it’s not just about solving the problem, but how you were able to get there. Keeping that growth mindset is what will continue to drive you forward.
Tweet me what side projects you’ve been working on.🖥