I am writing this as a reference to my future self and so it is highly biased.

May be someone else finds this helpful too.

These are some things I found helpful when deciding on a new language or framework or module.

Deciding to learn

I pick something to learn only when the language/framework…

  • has been around for at-least a few year
  • is under active development and is likely to stay
  • has good community support/tools

I find it easier to learn something by category like:

  • Frontend: Angular
  • Backend: Spring Boot (Currently with Java)
  • Database: SQL (pretty much all SQL are same)
  • Deep Learning: PyTorch
  • Containerizing: Docker
  • Hardware: Ardruino (C++)
  • Game Development: Yet to be decided

The benefit of learning by category is that same skills can apply to other categories.

Like: My pandas (python) skills helped me a lot during new SQL problems.

Photo by Markus Winkler on Unsplash

Deciding not to learn

I hate learning “new” languages/framework/technology especially when

  • it does the exact same thing that I can do now
  • does not add any new benefit
  • it’s old/outdated
  • if I’ll likely never use it
  • proprietary technology

So,

  • no AngularJS after learning Angular.
  • nothing less than Spring Boot when doing Java.
  • Typescript > Javascript.
  • PyTorch is probably enough. Don’t need Tensorflow.
  • SQL is enough. No need of NoSQL yet.

Exceptions

There have always existed exceptions and cases where I just needed to learn something.

  • Old but need it: Had to learn excel to reverse engineering and build same feature in Spring Boot
  • Learning a good framework: Had learned Django before. After joining worked I learned Spring Boot and realized it much better.
  • Made life easy: My application UI was crap. Easiest way was to learn CSS myself without using Bootstrap. It was easier than I expected. Thanks Fireship.
  • For Future: I may learn a little Firebase just to see how fast I can develop applications in it. Hopefully transferring some of that knowledge to my daily coding.

But most exceptions occur where I either had to do it or see a benefit that is transferrable to what I do.


I try not to learn something just to add to resume or to list of things that just sound cool (sometimes I do).

I usually spend months deciding.

YouTube videos and written articles have been great help when deciding.

DRAFT topics:

When copying code/command line comments, know the meaning fo each and every word.

subscribe to git notifications for repo you want to master