# Rambling - Bagas Wastu

My personal ramblings, mostly tech-related stuff.

## Rambling (Blog)

### [Why I Always Use Default Settings for Everything](https://wastu.net/blog/default-settings)

How simplicity can enhance your efficiency

- Date: 2023-07-15

You probably know programmers who used crazy configurations on their machines. They refuse to use a common text editor and use vim instead. Their love of being productive was proven by a long lua script that happens to fit into their own special customized i3 workspace.

As a below-average programmer, I hardly beat them in terms of speed. You're not wrong to categorize this type of programmer into the "most productive" category since they can do even the most complicated tasks by just using specialized macros. But even so, I think the one who uses a default and boring program can be productive, if not more so than those who are using a complicated setup.

Just like an average developer, I'm also learning vim in my journey to learn programming. It's hard to learn at first, but as I gain more knowledge, it feels like a superpower. I get so hooked up to Vim that I changed all my app settings to accept the Vim keybinding.

I feel _fast_ and _productive_ by configuring all my apps to my liking. But the thing is, when I'm working and collaborating with other teams, I can't function properly without my personalized configuration. It bewildered me that I didn't know the basic default shortcuts for text manipulation. It all happens because my brain is already accustomed to Vim keybinding.

If you're a web developer, you're likely aware that VS Code has taken over the web development landscape. Codepen, Codesandbox, and online cloud editors all rely on VS Code as their foundation. It's game over if you don't know the basic VS Code shortcut but have interacted with this type of site every day.

Sure, every popular online editor has Vim keybinding settings, but do you really want to go through all that hassle just to change the settings of a hundred different online editors? I don't think so.

The point is not that Vim keybindings are bad, but complex configuration is. The more configurations you have, the more challenging it is to maintain and transfer.

You've probably heard of the _convention over configuration_ phrase. Basically, it means that as long as you follow certain conventions, you don't need to add additional configuration. I believe that a system in which things are pre-configured is always more productive than one in which you have to set all the rules and take all the decisions.

So, what should you learn to be fast and productive, then? Well, my advice is to learn to love default configuration. It also includes the default keyboard shortcuts as well. Make sure to have the minimum amount of configuration if possible.

There is concept called [Principle of Least Astonishment (POLA)](https://en.wikipedia.org/wiki/Principle_of_least_astonishment#:~:text=In%20user%20interface%20design%20and,not%20astonish%20or%20surprise%20users.) that means a system should behave in a way that most users will expect it to behave. For example, when you press Ctrl+C while selecting text, you expect it to be copied, right? That's because Ctrl+C is a [sacred keybinding](https://en.wikipedia.org/wiki/Keyboard_shortcut#%22Sacred%22_keybindings) that is universally implemented across most applications.

By learning [general shortcuts](https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts#General_shortcuts), you can use them seamlessly across different platforms. It's literally learn once, use it everywhere.

![gif of me doing various shortcut on Windows 11 Notepad](/articles/default-settings/default-shortcut-demo.gif)

Also, it's also beneficial to learn how to utilize the [default shortcut provided by your operating system](https://support.microsoft.com/en-us/windows/windows-keyboard-shortcuts-3d444b08-3a00-abd6-67da-ecfc07e86b98), such as Alt+Tab to switch between apps or Ctrl+D to go to the desktop. It's probably tempting to [use another abstraction](https://www.reddit.com/r/Windows11/comments/q4jlkb/alternatives_to_make_improve_your_windows_11/) to aid OS imperfection. However, whenever possible, opt for the default options. This allows you to become familiar with the default settings.

How about an app that requires you to learn a new shortcut or paradigm? In this case, make sure you are betting on something that is widely used. It's wiser, for example, to learn the VS Code shortcut than Sublime or JetBrains IDE since they're practically everywhere (you can even configure another app to use the VS Code shortcut).

I know that every programmer has their own preferred configuration. If you want to extend it, I suggest to doing it lightly. Always remember that configuration is a liability, and it should only be pursued if it truly adds significant value.

I promise that by using this method, your productivity will vastly increase. Probably not as fast as another "productive" programmer, but with insane relief that you have no liability to maintain such long config files. Oh, since the knowledge is transferrable, now you can use another coworker's computer if you are tight on deadline ;)

