if I don’t know what to do, look it up right away and absorb the solution
all of the questions already have optimized, known solutions
it’s inefficient to spend all my time going down the wrong road and building the wrong muscle memory
memorize the right patterns + learn to recognize what questions they apply to
same as I did when studying accounting in < 2 yrs
The general recommendation for maximizing your learning is to start by struggling through a problem yourself, then eventually look at the solution and compare it to what you did
I tried that
Accounting
If you have endless time, fine. You’ll build character.
But there are downsides:
You get good at what you practice
If you spend most of your time practicing solving a problem the wrong way, you will get good at the wrong thing
When you encounter that problem again, you are likely to draw on memories you formed while going in the wrong direction
You probably have limited time and things to do
What’s better: spending 80% of your time fumbling and 20% of the time learning the right approach, or 100% of your time feeding your brain the right patterns and practicing them?
Accounting approach:
Spent one night working on a problem for 45 minutes only to realize I went the wrong way.
Swore to never waste so much time again.
Created flash cards for every problem + solution in the textbook (that creation time was good learning time I got extra value from by distilling and paraphrasing the answers)
Spent the majority of the semester studying those flash cards (using spaced repetition)
Crushed the exams
It’s true (in my experience) that memorization like that doesn’t form memories that last as long as the classic try-then-check approach, but it sure is more efficient when the reality is you need to learn a lot in a short amount of time
The other kind of learning is better left for your normal work life, where it will happen naturally. Anytime you intentionally want to learn something, I say study the answer immediately.
Applies to coding interview studying too
Point is to figure out the OUTLINE of the right approach to solving. Not to memorize the details of a specific solution. Like memorizing the pseudocode of an algorithm pattern.