Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.



  • Rest / breaks
    • Get enough sleep.
      • This is just like when I was taking the LSAT.
      • Mike Krieger talks about this.
    • Take naps if you're feeling tired.
      • Bryton also brought this up; he doesn't try to work when he's tired.
    • If you slept well, try to start coding as soon as you wake up in the morning, before you do anything else.
      • Reason: I find that I'm "freshest" as soon as I wake up, and that if I delay in starting to code, I can end up procrastinating for hours.
    • Do something to help you relax / unwind. (Source)
      • Watch TV
      • Play a videogame
      • Do some exercise
        • Go for a walk
      • Hang out with people
      • Read
      • Cook a meal
      • Get away from the computer
      • Meditate
    • Misc articles
  • Equipment
    • Have your monitors oriented vertically.
      • Rec'd by Andy.
    • Use multiple monitors.
      • Andy used two.
    • If you only have one monitor (eg a laptop screen), use multiple "desktops".
      • Example: At the moment I use three desktops: the first contains all and only windows that are for whatever I'm working on now, the second desktop contains time/task-tracking windows (my Google calendar and trello on the left, and notepad on the right), and my third desktop contains windows related to any background music I'm playing (including a page on my wiki where I can note good songs I hear).
  • Get psyched up / motivated / set the mood
  • While coding
    • Starting
      • It's normal to feel overwhelmed by the size of the task in front of you
        • "98% of dev is just pretending you're not overwhelmed with the massive amount of work left to do"
      • Before starting on a task, set a limit on how much time you're willing to allocate to it
        • Examples
          • I wanted my flask app to autoreload when I made changes, but I didn't want to waste hours on it, so next to the task I wrote "10" (meaning "spend 10 minutes on this"), and then I wrote the actual time range I should use (ie "10:13 - 10:23"). I ended up finishing the task in under a minute, which was a pleasant surprise, but I think knowing about the limit I'd placed helped me to not waste any time. 
          • In one of the links below a guy describes how Notch cut a feature after spending 40 minutes on it because he realized it could end up taking up a lot more time. So he may not have thought of a time limit before he started on it, but he had some sense of the big picture.
      • Don't overthink it!
    • Coding-related
    • Dealing with being stuck
      • Debug efficiently.
        • When asking for help, consider phrasing your question in this form: "I wanted to do X, so I wrote <some-code>. I expected to see Y when I ran this code, but instead I saw Z. What am I missing?" (Source)
          • 1. What makes you say your code isn't working?

          • 2. What did you expect your code to do and why?

          • 3. What did your code do instead and how do you know?

        • Listing And Testing (Hidden) Assumptions - most bugs are caused by the assumptions we didn't realize we were making, ranging from the forehead-slapping (e.g., "My code is free of typos") to the more fundamental (e.g., "I understand how this-or-that component works and I'm using it correctly.")
        • Create a minimal version of your code that reproduces the issue.
          • Step-by-step process:
            1. Commit all of your "real" code (stuff you want to keep) so that you can easily delete all of the changes you end up making and go back to this saved state.
            2. ...
          •  Examples
      • Figure out what's making you feel confused, and attack that issue
        • Examples
          • 2015.12.06 - I was procrastinating for hours, staring at my screen, and then eventually I realized that what was holding me back was that I didn't have a clear folder structure for organizing my code, and so I wasn't sure where I should be putting my code. After a few minutes clearing up what the folder structure should be I was back in business.
      • Have a friend you can ask for help.
        • Mark Zuckerberg
          • Get the quote where he says he learned most of what he knows from his friends rather than from books.
        • TypicalProgrammer
          • He said something to me like "I always had someone more experienced to pull me out of the weeds."
        • John Collison (of Stripe)

            • Yesterday I had a problem with Seaside linking to a stylesheet multiple times (don’t ask). After 15 minutes I gave up and decided to ask Patrick. He wasn’t on MSN and I was about to email him asking him to when I realised I prod him onto MSN a lot – the time I spend sending him emails to go on is an inefficiency. I decided to write a script to be able to poke members of the Auctomatic team from the command line. After 15 minutes of debugging (I could have sworn it was chomp that takes off trailing new newlines. Maybe I was just hungry) it was finally working and at my shell I simply had to enter:
              $ poke p
              Of course, emailing him would have just taken 10 seconds more so I’ll have to do a lot of poking before I can chalk this up as a saving

    • Don't waste time stressing about how little time you have left.
      • This is surprisingly similar to when I was studying for the LSAT. I'm noticing the same feeling of "stay concentrated and try not to panic" that I had when I was doing LSAT sections.
  • Food / drink / drugs
    • Eat high-quality food.
      • This is just like when I was taking the LSAT: Protein (fish / chicken), carbs (broccoli / peas), and fat (cheese / almonds)
    • Alcohol
    • Caffeine
      • Chung is a big advocate of espresso
      • John Collison (of Stripe)
        • "My attack on bugs and lameness in the app was fuelled by adrenaline and ridiculously strong coffee, tea and sugared Red Bull." (Source)