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:
    1. Define the problem and describe the program you are trying to build in a natural language (i.e. English)
    2. Then think about the application logic. What is the pattern of steps it takes to solve the problem? Write this down using Pseudo Code, without worrying about the actual syntax code (i.e. correct Ruby or Javascript)
    3. Finally convert your Pseudo Code into real code (e.g. actually start writing Ruby or Javascript). This allows you to struggle with the Syntax here and think about the correct code on a lower level without worrying about the logical flow of the program at the same time.

       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/Rubber_duck_debugging)

  • 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”