1. 28
  1.  

  2. 10

    Aside from the high-level decision making the author discusses in the post, development speed is the biggest advantage that modern dev tooling provides in my opinion. Less time spent getting thoughts out of my head and into the text editor.

    Some of the biggest speed increasers that I’ve adopted during my ~7 years of programming are (in no particular order):

    • Getting really good at using “go-to definition” in my editor. Being able to navigate around large codebases quickly and with little friction is so massively important for keeping context hot and thoughts continuous.
    • Learning the best things to grep for in order to navigate code quickly, as well as getting very familiar with the full-codebase search built into my editor
    • Auto-import code assists. I have these for Rust and Typescript and I actually dread to think about programming without them. So much time used to be wasted hunting for which file some function comes from, typing out the full path to it, etc.
    • Embedded linting and errors in the editor. Having to tab over to a terminal and run your compiler and then tab back to the code and cross-reference is horrible.
    • Code auto-formatters. I used to waste huge amounts of time laboring over exact formatting of my code. Now, I’ll type 200+ character lines for things like function signatures or complex conditionals and let the formatter handle adding newlines, spaces, etc.
    • Making sure that my hot-reload tools for frontend webdev are as fast as possible. Especially when doing fine-tuning stuff with styling etc., having a rapid (~500ms) hot-reload is such a massive difference-maker and it prevents me from getting fatigued of the dev process when things work smoothly.

    And most recently,

    • AI-powered code autocomplete. I started with Tabnine and now I’m quickly becoming a Github Copilot addict.

    Wrt. Github Copilot, the jaw-dropping demos aren’t the best part imo.

    I’ve adopted some really neat time-saving patterns. One really neat one is for if I can’t think of a CSS attribute or some standard library function’s name, I can type a comment like:

    // Apply 1px box shadow
    

    or

    // Cross product of a and b
    

    And then almost every time Copilot will generate me valid CSS on the next line that I can then tweak/modify as I need to and delete the comment.

    1. 1

      It’s crazy to me that anyone would program professionally without doing all these things. Copilot I haven’t tried, but everything else is practically mandatory in my book.

    2. 5

      I had just read Dan Luu’s post Some reasons to work on productivity and velocity where he makes some similar arguments. I’ve enjoyed both these discussions.

      1. 2

        Every typo requires a break in the flow that might cause you to forget a task you had queued up.

        So much this, I personally am very annoyed by the amount of typos I make. Does any one have good advice on how to improve typing accuracy?

        1. 8

          There is a famous koan/joke which musicians tell each other. A master trumpeter is approached by brass students who ask how to learn to play high-pitched notes. (For non-musicians, a trumpet is a sort of brass instrument, and brass players make sound by buzzing their lips against a mouthpiece. The physics of pitch require a faster, tighter, more painfully difficult buzz to produce higher pitches.) The trumpeter asks for a a fifty-dollar bill (five dollars when this joke originated last century) from each of them first. Then they lean in close and say, “practice.”

          1. 2

            I noticed my typing accuracy and speed had backslid a while ago. It seems to get better when I’m more careful to keep my hands on the home row, with my left index finger on the F key and right index finger on the J key.

            1. 1

              Perhaps try practicing typing with a metronome, reducing the tempo until you can type without error for several minutes straight, then increase the tempo step by step? It works for piano.

            2. 2

              Although this was pretty centered on development the lessons translate to other things. During my time in college I made time to improve my reading speed through practice and technique. The dividends paid back have been incredible. I find it’s usually the inputs and the outputs I can most easily improve through simple technique. The middle part, which happens between your ears, takes a bit more time to develop. Anyway, overall very good sentiments, especially one bit:

              Or do 5x as much and go home after lunch every day.

              Make sure you’re speeding up for a good reason. Work is infinite. It will never be “done”. Learn when to take breaks and use your speed wisely.