We programmers face a pitfall: there are always new things to learn. like nodejs, swift, programming languages, development tools, machine learning, statistics, UI design, etc…
Time is scare, life can be wasted by learn new things. The more you spend on learning, the more time you are wasting.
New knowledge may has those porperties:
Unstable: With limited man power and usecase, you may face lots of unneccessary challenges.
Limited Domain: Those knowledge are limited under some special case, learned but never used.
Homogenization: Another dynamic typing, functional, script programming language.
Too much for an human Brain: A dev team have frontend, backend, designer is for good reason. those knowledge are not fit for one man’s brain.
Because of those properties, I recommand learn old things other then new one:
Tested by time: Like C, shell, even English, those are the things you will eventually use.
Fundamantal: tcp/ip protocol, Operation System, Database, Baisc Algorithm, maybe you are not using them everyday, that will bring great value when time comes.
The thing you are using: Level up is better than learn a new skill.
Also, there are cases I think we can learn new things:
Take Small Step: You can take an overview, but deside before further learning.
Expend current domain: You can learn things which is supplement for your current knowledge domain, like you are a web developer, learn async web frameworks.
Better replacement of current ones: If you are PHP programmer, try to learn Rails.
Next step abour your career: If you want to be an data scientist, you need learn lots about statistic.
Most of the time, investment on an old knowledge is better then the new one. An jack-of-all-trades programmer is cheaper than a domain expert.