Keep in mind:
- Registering for a course is much better than listening to lectures on YouTube.
- Be sure to review the whole course after finishing it.
Revisit CS 61A:
- Give a function exactly one job, but make it apply to many related situations.
- Don't repeat yourself (DRY). Implement once, execute many times.
- Discover similar patterns during computation. Implement this patterns just once, and use extra argument(s) for different scenarios.
- Functions can be used as arguments or return values.
- Multi-assignment is particularly convenient.
- Recursion is pretty helpful but tricky to implement.
- Test-Driven Development: Develop incrementally and test each piece before moving on. Keep debugging!
- Object-oriented programming!!! Attributes, Methods, Inheritance etc.
- Mind deep copy and shallow copy.