| There's a lot of books written on this. In general, you have to follow the right order of things. 1. Follow rules rigidly, without understanding or judging, similar to how a baby imitates her parents by putting on clothes or drawing on paper. Don't try to be clever. Just copy and pay attention. 2. Be able to treat parts as a step. Bundle together chunks of work - this is how I filter an array, this is how I commit code, this is how compile a site, this is how I add a button to the page. This phase is the longest. Practice until you can do it without supervision/guidance. Practice until you no longer struggle with it. Then practice some more until it's as natural as typing, where you can sense when it's off. Expect to spend 10 years on this, faster if you practice right and practice hard. Is there a Leetcode problem you can't solve? Solve it. Is there open source code you can't reverse engineer? Reverse engineer it. Don't try to learn everything though. Just find something you like and build that to fluency. 3. By now, you start experimenting. You start taking risks. You start to get curious and obsessed, instead of needing to motivate yourself. You customize procedures for yourself. Your results will be crude (hacky). 4. You'll start to see lots of exceptions to the rules. You may have multiple mentors and see that they're not aligning. Instead of rejecting maxims, you merge them to guide you. You produce a high standard of work, with little effort. 5. You no longer rely on rules and maxims. You have an intuitive grasp on things, but unlike step 4, you can combine them with data and rationality. You have visions on how things go together. College puts us in 2, but often not enough, and we get dumped into 3 before we're ready. My advice is to go back to phase 2, keep practicing, keep finding mentors. All of these phases have a plateau that you have to push through, and all of them have different mentors, often those who are stuck on their own plateaus. If you want books, I recommend, A. Mind Over Machine, Dreyfus; B. Mastery, Greene; C. The Art of Learning, Waitzkin. |