I learned Vim1 in my first programming job, when a senior engineer who loved Vim gave my group of new hires a few Vim basics intro sessions. I floundered at first, then got to the point where I could navigate Vim fairly fast. I could comfortably use Vim, but I didn’t really get Vim: I only got good enough at using it to make it work as well as any other (normal) text editor.
... ➦PostgreSQL offers multiple ways of quoting string literals. Most programmers are familiar with the first, but not the other forms.
... ➦Many programmers new to Unix shells are confused by shell variables, and how they relate to the Unix environment.
... ➦A key aspect of writing good code is asking for your dependencies as inputs, instead of hard-wiring references to your dependencies in the code, viz. dependency injection
... ➦When writing code that needs the current time, don’t hardcode a reference to the current time.
... ➦When programming, you may have to work with dates and times in different time-zones, or look at events in calendars in the past or future. You can do all of these using GUI tools, but your Unix command-line is there for you (and easier to script).
... ➦If you’re introducing Kotlin to an existing Java codebase, you’ll probably have places in your code where new Kotlin code has to call existing Java code, or vice-versa. Kotlin’s default behavior for Java interop poses a subtle, but significant safety problem with nullability.
... ➦When working on the command-line, it’s often useful to paste from the system clipboard to a command-line tool, or to copy output from the command-line into your system clipboard.
On macOS, pbcopy
and pbpaste
do this. On Linux, you can use xclip
or
xsel
.