In any modern thriller, you can be sure to see a geek, hood on, behind black screen typing keys madly.
It seems complex, the character is seen as a super-hero able to manipulate the world to his needs.
In reality, it’s just a terminal and a keyboard. People working on computers this way don’t type so fast. With a much lower window change framerate.
Anyway, they use a terminal for a good reason.
Writing is more efficient than click
If you are working in an IT team, as a data or software engineer, you are probably trying to automate as much work as possible.
Following the DevOps movement, modern stacks rely more and more on the “All As Code” concept: from infrastructure (Infrastructure as Code) to notebook analysis and complex data visualization, a computer science job is more about scripting than open a business software to drag and drop rows of data.
In fact, this is a “modern” way of working, especially on the “engineering” side.
On the business side, a lot of work is still done in Excel, in dashboard applications, or on some business software: work relying on moving content over and over to different places.
When we click or “drag & drop” it’s not automated work.
Sure, we can be very fast thanks to copy-paste and UX tricks, but in the long-term, we’re wasting time.
A Code Editor, a Terminal, and a Keyboard
I remember the time when I was looking for a code editor. I was using Sublime Text, which worked like a charm but some of my teammates were working with either PyCharm or VS Code and they seemed to be more efficient in their work.
Code is not about typing, it’s about thinking.
Still using a complete IDE can be very useful. But I remember being curious to know how those beard guys handle large projects and so many YAML files…
I ended up looking at the terminal and particularly VIM — a text editor designed for use from a command-line interface.
A brave new world was in front of me. Learning using VIM is very tough, and honestly, for a data scientist like me, it was not the best daily tool. Still, when editing settings and template files or working on servers, VIM is a killer.
With VIM you only use your keyboard. Only.
For the anecdote, VIM was invented when computers were no so developed as today. For example, moving the cursor in VIM is done with the “h”, “j”, “k”, “l” keys, which reduce fingers’ moves breadth when typing.
I stayed on VIM and my terminal for a few weeks to see how my work could be sped up: using only your keyboard to get shit done is a changer.
All is smooth and you switch and edit files at the speed of light. At that time, for a beginner, working only in the terminal allowed me to learn a lot about computer systems.
We already get this sensation younger when we learned to use CTRL C/V to copy-paste instead of right-clicking in some menu.
Working within a terminal is like getting CTRL commands. At scale.
Furthermore, when you look at core developers and DevOps engineers, most of their work lives in files or terminal commands.
It had the advantage to keep track of changes, deploy or update many stacks in no time, almost anywhere.
Pure operational and business stuff is different from software guys' skills. Still, there is a lot to learn from engineering in the way they automated work and hate repetition.
Coding instead of clicking is a key feature to accelerate your work, produce reproducible assets and release some of the stress due to human handling errors.
Still the best way to talk with a computer
The computer is down there for almost a century.
We have built complex user interfaces to help anyone without any prior IT background to use a computer.
However, using a terminal and coding is one of the most efficient ways to create something out of these boxes. By doing so, we are at the heart of the machine.
People who produce computer programs don’t need the same set of tools as users of these applications. Anyway, it’s much more natural for a human to write or even talk to transcript its thoughts.
We could believe this distinction between users and developers will subside with time. Very powerful language model developments and vocal assistants enhancements will probably fill the gap in the coming decades to help anyone produce complex machine work.