I wrote this article for my own documentation related to lesson learned I was gathered during my coding-life. Really, up until now, coding is fun. The way we transfer our idea and logic into code so that computer can do whatever we want seems really magical. There’s a joke I’ve found somewhere (I forget exactly), today’s magician is programmer. It’s quite true, imagine the world which can do so much things, efficiently, automatically, and precisely without human inference. It can be done with computer.

But the ugliest fact is that thing is dumb, computer can’t do anything meaningful unless someone instructs the machine to do something. How to instruct the computer? Through code. Code is just an alternate name of computer instruction which computer can understand. To code, or we can say coding, is quite similar with typing. The fun part, coding/typing is like a playing keyboard, it satisfies if we could type it fast. Expecially when you use mechanical keyboard :)


On typing, we use natural language, we know english, indonesian, japanese, etc. On coding, we use programming language, we know golang, python, ruby, etc. To type/code we need to understand the language syntax, grammar, and meaning. Both translates conceptual abstraction into text. On typing, if we don’t know the concept idea / the topic / story, we can’t write the article, even we know fluently about the grammar and the words meaning. Same with coding, we’ll stuck and don’t know what to code if we didn’t know the bigger picture of the abstract system we want to build. It can tremendously slow down the coding process. To understand the bigger picture is to understand how to code effectively. I’ve ever experienced to not knowing bigger picture of the flow of the service our team owned, so I code blindly without knowing the side effect of my code.

To understand the bigger picture is to understand how to code effectively


Another thing which is important to know it our dev environment. I used to be frequently use mouse on coding process. At the first time, it won’t bother me, up until I felt it’s so slow to move my hand from keyboard to trackpad / mousepad. So iteratively I built the dev environment (which still ongoing and continually improved forever) to support coding speed ability. In my current company, I usually use golang and ruby. I experimented with several IDE shortcuts to match with my finger, but nothing satisfies me. The keyboard shortcut is differ from IDE to another. And IDE can mostly slow down your computer. Hence I move to Vim. Really I like it. Now I’m the big fans of any terminal related tools. So, if anything can be done in terminal, I prefer to use it. It’s hard at the first time, but, eventually your finger can adapt, and it can speed up the process. The brain and the finger are merged. Later I will create my dev environment setup with minimal switching so everything can be done with keyboard.

Tweak the dev environment to reduce keyboard-mouse switching time. And mastering the shortcut


We mostly spend our time in front of computer. So any ergonomic desk configuration needs to addressed. There’s a youtube channel I recently watch related to ergonomic desk setup. I personally create the room environment as minimalist as possible yet can support my body keep in normal position so any stressed can be reduced. Ergonomic is the key, I’ve ever use a chair which are not comfortable enough. The result, I can only spend a little amount of my productivity time. And never want to in front of computer screen again. Besides that, the exercise is also important. I personally trained myself discipline to take a 10 minutes yoga stretch in the morning, do abs sit up, and do 3 set of push up. In my free time, I also workout in gym. What we eat is also important to keep our brain keep active. Hence it can improve our understanding of the coding process. Finally it can improve the coding speed. I will create another article related to my desk minimalist setup, workout tips, and food meal I’ve prepared every day. We need to keep our body + brain healthy in order to boost the productivity.

We need to keep our body + brain healthy in order to boost the productivity


That’s it. Now I’m going to continue read kindle, Sapiens: A Brief History of Humankind, by Yuval Noah Harari :). Happy coding, keep learning, stay humble, and eventually you will be able to bring a larger impact on society through code.