Home     About

Using Raw Tools (CLI, Scripts...)

Actively Avoiding Shortcuts

shortcuts seem convenient at first, but if you take an average, they don't help much. if the 'shortcut plan' doesn't work as planned, it usually takes more time than the 'usual hard way' approach, not to mention the frustration.

shortcuts work because they are tricky, and therefore complicated. the 'boring, hard way' takes time, but is really really simple. there are hardly any 'got you' moments in the 'boring, hard way', so it hardly falls apart. on the other hand, if even a single thing is out of place, the 'shortcut plan' fails.

for example, i used LSPs in the past and there were moments when they would just fall apart, like on windows and i was left helpless in those moments. so i replaced LSP with ctags, a really simple tool, one which i can read, modify and rewrite to suit my workflow.

i also removed autocompletion popup from my editor because since i was able to just tab complete the function and variable names, i wasn't remembering them, my memory was getting sloppier. when i write code without autocompletion, i feel a sense of ownership, i feel "i wrote this code", and the process has become much more fulfilling.

because of this, i now read the code properly and don't just move my eyes over it. i remember things now.

Diving Deep

i was sitting in a class without anything to do, so i started reading the man page for ctags, i read a few paragraphs, tried a few of those commands or options, and i realized something really important...

there are many many options that one doesn't even get to know about if one doesn't dive deep into the specification/manpage/docs. tutorials and stack overflow posts are good, but they help you till a certain point beyond which you "have" to dive deep into the source code or the docs in order to make any further progress.

i found a bug in my work-logging script, it represents time as integer, so 1.5 represents 1.5 x 60 minutes, but i wanted it as HH:MM. i had two options, ask copilot to fix it for me, quickly, or put in some hours and do it the hard way myself. i choose the hard way, i am glad i did. after reading through python docs, testing that in small programs, i ended up with a great understanding of date time objects, datetime.strptime() and datetime.strftime() functions.

i felt great joy in searching for things, not getting them in the first go, searching again, and again, testing that... and waiting patiently for the moment when 'it clicks'. i went back deeply understanding the problem, the process and the solution. having deep diving instincts go a long way in the journey of becoming a good programmer.

Raw Tools

i was using neogit, a git client for neovim. it broke in the middle of a git rebase -i, started throwing errors. i realized that if i knew raw git well, this roadblock would never have appeared in the first place.

raw tools (tools on cli, without any prettify non-sense) are rock solid, they might be a little hard to grasp at first, but once you know your commands, it will never dissappoint you.

switch the workflow by learning the commonly used/needed commands and then figure out the rest by diving into the manpages and docs as you find time. take notes on the way to not forget things.