Preparing my mind
- Easy to Learn tech but hard to learn ways of thinking.
- Learn to read good code in order to write good code.
- Legacy software is a big problem.
- Build good mental models around your code ( Your philosophy and ideologies around code and engineering )
- Become a good debugger.
Correctness vs Performance
- Make it correct first, then make it concise and fast.
- Make a draft, make it quick and make sure it works, only after that you should worry about performance.
Design Guidelines
- write less lines of code.
- handle error anywhere error is possible.
- code must be readable - if someoone else reads your code, they should be able to understand it with low effort.
- the average programmer on your team should be able to have a mental model of the entire codebase.