I've recently been thinking about this a lot. The single highest-leverage action I've found for myself has been to shift my goal from: A. (destination) I need to get a top-tier job at a FAANG company. to B. (process) I want to develop my ability to think structurally, so that I can enjoy spending time with code by honing an intuitive sense of the pattern language of code. The former is future-oriented, stressful, fee…
I like the mental shift that focusing on process entails. For your process goal, do you have a list of activities or tasks you do for that? Here are some of mine, although I’m unsure of relative ROI’s (maybe “return on investment” is antithetical to the process goal lol): - Read well-established repos and type the code, for example, I’m currently going through all of the React source and typing everything up as I rea…
(The absolute best way I've found to learn a language's conventions and best practices is to study all of the community solutions on CodeWars)
Then I have a list to which I add any "code tropes" (i.e. using a loop to search a collection and conditionally flip a flag outside of the loop, etc.) or useful patterns (favoring early returns, etc.). This turns into a dictionary of the vocabulary of code that I just keep adding to.
Mainly it's the act of careful, patient reading that unconsciously develops your sense of conventions and ability to visualize abstraction.