-
The first time you solve something it could take days, and may require help
-
Once you get a solution, you are not done
-
First, try to make your code as simple as possible
-
It should be self-explantory to an average programmer
-
Use meaningful names for everything but induction variables
-
Include no unnecessary conditionals or extra lines of code
-
Then, create a copy of the homework and erase your solutions
-
Upon waking the next day, attempt to redo the problems
-
Do not look at your previous solution
-
Do not ask for help, either from friends or from the internet
-
Repeat this process until you can write each single function correctly in five minutes or less
-
Only then have you internalized the solution
-
It is not enough to be able to get the answer
-
You must be able to do it quickly
-
Invent a variant of the problem