Choosing What to Learn Next

In the first years of my career, I was mostly focussed on catching up with the requirements of my assignments. So I always know what to learn next, it was all mapped out for me in the project I am working in.

As I get more seniority, I started to have more time to branch out and learn new technologies that aren’t currently being used in any of my projects. That brought up a new kind of problem.

WHAT IS NEXT? How to choose what I will learn?

As a frontend developer, I decided to extend my knowledge about backend technologies. So far I had some familiarity with Node.js and I wanted to add some Python to my skillset.

While I was looking into some frameworks of Python, another question has arisen. What is the most important in a framework?

If you ask me this question couple years ago, I would probably say: “only thing that matters is performance”. But now I have a different opinion about it. There are some other factors that can be just as important.

These factors are:
  • Maturity of the framework. Longer the framework stays active and used, problems are pinpointed and solved.
  • Community that uses the framework. Bigger the community, better support you can find for more edge cases.
  • Stability. If there are often breaking changes and shifting dependencies between versions, it can cause more problems than it is solving during migrations.
  • Learning curve is also considered an important factor, mainly because it affects the community size and time (which is the most precious concept for every developer) spent.
  • Demands in market. Nobody wants to waste their time on a skill that won’t worth. 

If you are wondering which framework I chose, I went with something relatively old. There are faster, better performing frameworks exist and probably in the future I will get a chance to look into them more as well. But for now, considering the factors I mentioned above, I decided to go with Django.

Thank you for reading this post!

Posts by Oz

Leave a Reply

Your email address will not be published. Required fields are marked *