A basic attribute of being a skilled coder is being language agnostic: being freely able to write in a new language, and having roughly equal difficulty and skill in whatever la guage you encounter. Nowadays I mostly know python, and mostly remember C and C++ . Languages seem to stick around only if I use them, roughly. I’m thinking a good idea could be to practice having skill at many languages. I came up with a list of ideas: - go - rust - c++ - lisp/scheme - typescript/javascript - julia maybe also: - haskell - erlang C++ is because I used to know it best and staying up on it involves a lot of reading. Go and Rust are because they seem popular and normative nowadays. Typescript/javascript for both of those reasons. Scheme/Erlang/Haskell because they are significantly different to learn, and are also useful for major projects. Julia is also significantly different, and has utility for building skills around machine learning. It seems it could be useful to break the skills of language learning and language changing into parts, and see if they can be considered for different languages. In machine learning, there’s an idea that some data is way more useful to study than other data: such as disparate parts of unfamiliar languages with common attributes maybe. That seems to apply here, although I also have much less skilled memory than a large language model, so breaking things consciously into useful generalizations seems to have higher return. There are lists on the internet of hundreds and hundreds of random programming languages. These could be drawn from to practice speed of learning a new language.