How do mid/late stage developers learn new languages/frameworks?
Recently came across two publications by ACM:
https://cacm.acm.org/magazines/2022/3/258914-technical-perspective-how-do-experts-learn-new-programming-languages/fulltext
https://cacm.acm.org/magazines/2022/3/258915-here-we-go-again/fulltext
(the first link references the second so one could start with the second link)
I have around 7 years or XP now, and have switched roles between the Java/Spring ecosystem to .NET and am now struggling with Ruby and Rails.
Before reading this article, I, too, thought that programming languages and frameworks are just tools, and that if you know the basics of one, you can easily switch between them. In practice, however, I have found that to not be true. Also, while learning new languages/frameworks is hard, it's twice as hard to do it on the job, where there is added pressure of delivering work items while paralleling learning things.
What are some techniques seasoned developers use to quickly pick up new languages and frameworks? And how do you juggle expectations with your bosses on delivery while you're doing this learning? If you are an extremely well experienced software engineer you only care about learning new capabilities. This could include learning new languages but will most certainly not include frameworks. Learning new capabilities implies things like transmission, storage, performance, distribution. New languages may unlock new capabilities your current language does not. To a far lesser extent this may include learning some new tool. Frameworks are something you learn on the job to gel with a team or something you learn to be hired. Typically frameworks are an abstraction so that groups of people can execute against a common API, but otherwise are things you could do without faster and leaner as an individual.