We must be very careful when we give advice to younger people: sometimes they follow it! — Edsger W. Dijkstra
Learn touch typing 🧙
Chances are that if you are reading this, you stay at least 4 hours per day in front of a computer. You might think that in your case typing isn’t really the bottleneck, it’s thinking. YES! It’s true, but you don’t want distractions while you are thinking, looking at your keyboard is interrupting your thinking process.
If you are a developer and can freely choose the keyboard layout, my recommendation is that you learn the US-Layout, it’s better for programming, look at the keys, you don’t need ñ or whatever it’s there. Another tip is to swap your control key with your capslock key, it’s not good for your fingers to click that bottom left key and you don’t even use the capslock key (at least if know touch typing)! If you just want to try it out and you are running Linux, open a terminal and run setxkbmap -option ctrl:swapcaps
.
Another reason to learn touch typing is because it’s fun, you can take my word for it!
Learn Keybindings 🪄
I assume that you already know touch typing, if not, please stop reading and come back after. Right now you just think what you want to say and it appears in your screen, feels good right? What if you could think “I want to open a new tab in my browser” and it happened automatically without thinking? It’s possible, but you have to learn and repeat the keybindings until they are in your muscular memory. For instance, in your browser probably <c-t>
will open a window, <c-l>
will allow you to type on the search bar, etc. If you are coding and need something, you just think I want to search this and <alt-tab><c-t>this<enter>
, oh let me rephrase it <c-l>that<enter>
.
If in the previous section you did not swap control and capslock, you probably should do it now as you will start using it a lot more.
In this step, you should start using the best text editor, the one and only 🥁 … Vim. It’s easier than it seems and it will reshape your brain, find good talks online and start using it. Most commands in Vim are mnemotechnics and often useful in other unix-like apps.
Build your own tools 🔮
What are your more repetitive and tedious tasks? You don’t have to automate everything, but let me tell you what I consider a good heuristic: The mouse, if you are using it, think if it’s really needed, or that action could be automated by a keystroke. You don’t want to move your hands off your keyboard. You want to tell actions to the computer, you don’t want to move the cursor.
As always, try to not reivent the wheel, but if you are a developer, you are automating things for other people, automate yours too.
If the goal is to reduce time, reducing distractions is the best way!
Usually, you don’t even need to write code, you find yourself typing ssh passwords? Your brain is being distracted! Configure ssh-keys (well you should anyways!).
Conclusion 🧞
If you can communicate faster with the computer, you are able to learn faster ways of communicating with the computer. However, trees don’t grow to the sky, keep things simple!
Good Luck & Have Fun