Productivity for programmers. Editors, repositories, coding practices

Third part of my research of different tools and practices that makes us more productive.

  • Use if you can statically typed language (TypeScript, Flow, Java, C#, C++, Kotlin, Swift, Scala, Haskel, etc). It has the hidden power of your productivity and gives you a lot of freedom to refactor your code.
  • REST client in IntelliJ’s products and vscode allows you test requests right from the code.
  • Learn some simple editor well (ideally vi because it’s available everywhere).
  • Learn regular expressions and how to use them in your editor
  • Use REPL
  • When you start work on an existing codebase, write documentation, or annotating the code. It could be documentation right in the repository, comments or even more specific tools like codetour
  • Continuous feedback from your tests, linters, and static analyzers. Could be standard tools like gulp/webpack, your own set of scripts based on entr, or specific tools like Quokka/WallabyJS
  • Write clear and self-explaining commit messages. Keep your repository clear and learn how to use amendrebase, and how to rewrite your git history. Don’t push a code that’s broken, has no tests or documentation (I know most of the frontend and mobile developers will disagree but anyway). 
  • Try out TabNine for autocompletion in your IDE

As usually, everybody is welcome to get me your feedback and extend the list.