Ask HN: Python developer for 8 years. What should I pick up next?
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.
I explored frontend technologies, Android and nodejs/express in the last 12 months, but none of them resonated with me much.
What would you recommend picking up next?
11 comments
[ 2.9 ms ] story [ 33.1 ms ] threadI think there's two main areas I'd be interested in, at least from my own perspective:
I've skipped over Agile process and C#, which is probably where the bulk of the career programmers are. If you avoid this, then I suspect you are guaranteed a more interesting life.Both 1) and 2) above are where I'd suspect the bulk of the intellectual firepower is deployed. Think D3.js, three.js, Rust, boost, CUDA, OpenCL, WebGL.
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.
Good luck.
*http://nim-lang.org/
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#
You develop in a parsed environment, not raw text. Tooling will allow you to make structural edits instead of traditional text edits.
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.
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.
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.
So much time and energy is wasted protecting marble. Play-doh is better.