Learning is living

A language a day keeps boredom away

After my other post about editor: My Editor (我的編輯器), I was really into Spacemacs. The four pillars of it really fit me: “Mnemonic”, “Discoverable,” “Consistent” and “Crowd-Configured”. However, it’s also the “community-driven” characteristic that it has a relatively steeper learning curve. It took me a couple of days to fully migrate to Spacemacs. Once you’re familiar with a tool, you get the temptation of messing with it by customizing your own configuration. To me, the biggest challenge of customize my own Spacemacs setting is that Emacs is written in Lisp, one of the oldest programming languages, which I don’t know anything about it.

A joke of Lisp :)

Hence, my journey to Lisp began! I was reading a post about learning a new programming language: Unconventional Way of Learning a New Programming Language. It said that by taking part in an open-source project, you can learn a programming language by best practices, conventions and good tastes. Spacemacs happens to be a pretty active open-source project with a lot of issues and pull requests. If I do it right, I might be able to learn the language by contributing to the project. And if I succeed learning Lisp, the functional programming characteristic of it should do me no harm but some good coding principles. It’s a win-win! Really looking forward to )))))))))))))))))))))))))) :p

On my journey of using Spacemacs, I ran into this finance layer. It’s backed by ledger-cli, a double-entry accounting system powered by command-line. I used to keep tracks of my financial records using those Apps with great UI/UX. For some reasons, they didn’t last. With ledger-cli, I regain the power of handling my daily events through command-line. It turns out that it’s more attractive than those UI/UX to me. Still, in reality, a lot of financial events happen when I don’t have my command-line (laptop) around me. It’s another temptation that I make it happen by my programming skill. The idea of porting a Android/iOS App from ledger-cli came to my mind, so I checked the repository of ledger-cli. Wait! It’s written in C++! My nightmare language that I met it when I first stepped into programming world. However, I won’t let the bad experience stop me. I will conquer C++ and make the port!

I don’t envy those who can speak tons of languages. I will be those who can make things in tons of languages!