I have been prominently python/backend developer for majority of my career, and I feel I need to pick up some new tech/tool and update myself.<p>I explored frontend technologies, Android and nodejs/express in the last 12 months, but none of them resonated with me much.<p>What would you recommend picking up next?
It's been done to death, but Common lisp. If you're looking for a new magic shiny you will find it here.<p>You develop in a parsed environment, not raw text. Tooling will allow you to make structural edits instead of traditional text edits.<p>Everything is an expression and can be used as a value. Even loops and if-statements are expressions that can be assigned to a variable.<p>Macros. You can create languages. Change rules and syntax. Do performance optimizations moving processing to compile time instead of run time. To process matrices you create an intuitive language to handle them, rather than shoe-horning into a general purpose language missing low hanging optimization-fruit.<p>You develop against a running program. Other langs can do this but they are missing the first rate tooling or the community doesn't do things that way. While you develop the 4 times become 1. Thinking time, Typing time, Compile time, Run time. Try an idea, get immediate feedback. Your design medium is play-doh so design by making something tangible you can feel. In other langs your medium is marble so you plan it out ahead of time before you mess up your expensive marble block, then waste hours/days before you realize all your unit tests were made against a flawed API.<p>So much time and energy is wasted protecting marble. Play-doh is better.
Understanding why you want to "update" yourself is the key to finding something that will resonate deeply enough to support a long term commitment. Then again, there's nothing wrong with trying out interesting tech for a time and later deciding it's not for you.<p>For me, the important distinction has become: Is my interest in X as a professional or as a hobbyist? Treating X as a hobby takes the pressure off...and lets me make sense of why the overhead of something like Android development creates enough friction that it doesn't feel sustainable. YMMV.<p>Good luck.
Haskell resonates well with me, although it is hard/almost impossible to get a job as a Haskell dev. I also like the idea of the Haskell-like languages that even enahnce some of the features, PureScript, Elm for example.<p>Even if you only ever do basic Haskell it is very useful to have that mindset when using lambda expression and functional programming features embedded in other languages. Or to use the FP languages tied to a platform, like Scala and F#
I'm in similar situation and rust worked well for me, also having practical benefit of nicely complementing python.
Otherwise you may try something functional: f#, scala or haskell.
i see nothing wrong with staying in python and just continuing to broaden your capabilities within that language....big data, statistics, machine learning, all that 'new' hip stuff, unless of course you already know all that in which case don't mind me =)