An Approach to Continuous Learning
Tags: productivity, discuss, beginners, career
Published: 2022-07-17 05:27:18

Being a successful developer requires continuous learning and skill improvement. But there are simply too many things to learn and too little time.

Let's see a few principles with which we can invest our learning efforts effectively and receive maximum gains.

## Small improvements everyday

First and foremost it's important to invest a little time and energy every (normal) day.

- Build a habit with a set time and place to try something new - learn, build, practice. 
- 1% better everyday makes you twice as good in 70 days. (probably has been said too many times)

Building this habit requires a little effort but everything seems effortless once we get there. 

A few things that help in the process:
- Making long-term and short-term to-do lists
- Setting learning reminders(on a calendar rather than in the mind)
- An environment that enables learning and avoids distraction

## Get Good Enough at Your Niche

Everyone needs to be good at the particular technologies they are working with. 

- If you work, the first target is to get good at your job. 
- If you're looking for work, focus on the role you want to land. 

Invest your learning time and efforts on the most essential skills needed for your job. This includes both technical skills and soft skills. 


## Then Diversify 

Once you're good at the necessary skill, it's time to look into more technologies.

There are two directions to explore:

### 1. Tools that go well with your niche.

My personal trick is to look at job descriptions corresponding to my current role and look for gaps in my knowledge. 

The execution strategy is to first master the essentials, then build and then go deeper. 

Getting good at what works well with your niche gets you those hikes, promotions, job switches. It makes the most sense to spend time on this.  

### 2. Tools that compete with your niche.

If something exists as a competition to your current tools, its worth knowing why it exists, what are the differences and how to choose between the two. 

A different database, framework, library and sometimes programming language comes into this category.

This makes you capable of taking informed decisions at work. It also makes you future-ready if you ever need to switch your tech stack or parts of it. 

## Keep an eye on shiny objects

Too much time spent into shiny objects or switching from one context to other can waste time and energy. However, it doesn't mean you ignore upcoming technologies. 

It is worth keeping an eye at promising things happening around you. Learning something that is still in the process of getting popular can be a head-start for you. If the thing has a good future, it can be highly rewarding for you.

Have a little FOMO when you see people hyping something. But at the same time, invest your time responsibly.

The first questions to ask are,
 
- What are the chances of this new thing being used at scale in the industry? 
- What are the chances of you using it as part of your job?

## Continuous retrospection and re-planning

To not get overwhelmed by the number of technologies to learn and also to stay on the right course, it's important to keep yourself in check.

Make time for reviewing your path once in a while. To check where you're investing time and if there are any changes you can make to make it more effective.

Questions to ask yourself during the review:
- what's urgent and needs to be prioritised, 
- what's outdated and needs to be cut down and 
- what needs to be revisited. 

---

Thanks for reading. Hopefully it gives you a few helpful points. If you want to connect with me, you can find me on [Twitter](https://www.twitter.com/abh1navv).