Tips & Tricks that I found helpful
Time Management: Dedicate a few big chunks of un-interrupted time instead of a lot of small chunks of time. It can take up to 30 minutes to "load" the code into your head (understand the codebase) before you can work on it. Interruptions can be very costly. (See Paul Graham's essay)
Work with Pseudo Code and isolate syntax issues from application logic. Follow this pattern:
- Define the problem and describe the program you are trying to build in a natural language (i.e. English)
Example of Pseudo Code from GoTealeaf.com
if our cards total is 21 then we win otherwise, our cards total is less than 21 then we want to either hit or stay otherwise, our cards total is greater than 21 then we lost
When stuck try "Rubber Duck Debugging". Explain the problem to someone as best as you can. This will often help clarify issues that you only notice by speaking about them. (See: https://en.wikipedia.org/wiki/Rubberduckdebugging)
Learn to read other people's code. It can be hard at first, but is an important skill to develop.
Becoming a good coder is about developing good habits and being level-headed when debugging. Enthusiasm and passion alone won't get you all the way. Becoming a developer is a long journey.
Practice, practice, practice and learn with your fingers. Don't just read/watch solutions until you understand them. Write the code yourself to become fluent at writing code.
*I learned these tips from Tealeaf's course "Introduction to Ruby and Web Development"