Yeah it seems finding a balance between new stuff and old is a good approach. That’s a good point about languages being inspired and adopting features from others. I have personally noticed in my limited experience that learning new languages/frameworks have broadened my perspective as a developer. For example, through JavaScript I found about .map(), .forEach(), .reduce(), and so on. Go taught me dynamic arrays (slices). Then I noticed Java also has functional concepts, and dynamic arrays (ArrayList). C++ taught me the zero-overhead principle and I realized functions such as .map() and .forEach() in JavaScript have significant overhead.
Thank you this is a good one. Clear writing is very important (more so in an increasingly remote world). Also clear writing reflects clear thinking and true understanding of a problem/solution. I read recently an important practice within Google (and I’m sure many other organizations) is to write design documents.
Thank you, I really like that idea of developing “meta-skills”, if you will. Learning how to learn, critical thinking, clear communication, evaluating ideas with incomplete information, first principles thinking, and so on.
Thank you, those are some nice suggestions. I particularly like the idea of staying true to the scientific method, showing up on time, being reliable, doing your best, and optimizing for the best outcome. It often seems like the simplest things are the most important.
> Are you asking about technologies or are you asking about knowledge?
I was trying to get at both. On the technology side, I was wondering if it is wise to focus on a particular technology/language consistently over a long period of time to compound my knowledge, or learn a new and promising framework/language every so often. For example, I assume Java and C++ will have a high likelihood of being relevant my entire career and so it could be valuable to become an “expert” in the language. However, Go and Rust seem promising going forward and could introduce me to new ways of programming. As I write this I get the feeling the answer is not so black and white as I make it out to be. Some combination of both seems like the right approach.
On the knowledge side, I was mainly wondering what are specific concepts that would be relevant years down the road. I was thinking if I could grasp these fundamental concepts well, then it could provide a solid foundation for any type of field I would like to work in. I realize it is was a very vague question and probably should have been more specific (I’m mainly interested in backend development). Nonetheless I found your answer very insightful, thanks.
> If you're looking for the answer to "what should I learn now so I don't need to learn anything else in the next 50 years?"
Sorry that wasn’t my intention. I was thinking more along the lines of compounding my knowledge for something by studying it consistently over a long period of time.