Tools that allow me to do the thing I love to do; programming.

Perfection is the enemy. It's been a while since I wrote anything and I keep telling myself, it's because I don't have anything good to write about. I've already deleted the entire post thrice now. This is attempt number four at putting words on screen.

I was going to write about how much I love programming but then I changed my mind to write about the tools that allow me to write them.

Editor

My first ever editor was Sublime I think, which was over 10 years ago. Moved to Visual studio as I was doing some C# back in the days for a little while. Used VsCode for about six months before I made the decision to switch editors again. It's the last editor I've switched to.

It bothered me that I had to move my cursor with the mouse, it felt slow and annoying. Till one day, I was on a call with my mentor and his cursor was bouncing all over the screen. I couldn't see his mouse, so I asked him what he was using, that's the first time I heard about Vim. I spent the next week on Vimtutor, I used the config that my mentor was using and I removed VsCode completely. It was my way of forcing myself to get better at Vim. It was painfully slow in the beginning, but within the first week, I was already getting better and by the end of the month I was way faster than on VsCode. Plus, it felt really satisfying.

Since, then I've switched to Neovim, and re-written my config in Lua. I've removed 90% of the plugins I used to have. Every year or so, If there is a plugin I've not used, I delete it. I haven't had to delete anything this year so far. Having a personalized editor changes the experience drastically. It's where I spend most of my time in, so I've spent a lot of my time configuring and re-configuring it. It works exactly as I want it to. I love it.

Terminal

The next most used tool for me is the terminal. It's nothing exciting, I've tried a few of the fancy terminals over the years. But I've come back to using the default Ubuntu terminal with Zsh and have been using it for the past couple of years now. I do use Tmux, which I think makes the terminal experience smooth and has Vim like motions, which is even better. The reason I've stuck with the default one is that, I don't need any config files and things just simply work.

Operating System

Around the same time I switched to Vim, I removed Windows for Ubuntu. Simple reason, any time I wanted to install anything, the installation steps for Linux always looked so simple. Whereas with Windows I could never figure things out easily. So I switched, haven't looked back since.

For about a couple of years I used Ubuntu with i3 window manager, which allowed me to move between work spaces without the alt + tab nightmare. It is way faster but configuring it, is just a lot of work. So when I switched computers, as I was re-configuring i3, I found out that Pop Os has a tiling window manager built in. I found a script that would allow me create fixed workspaces and assign them numbers. Which was the only reason I used i3. So, I no longer use i3. Which meant one less config file to maintain and tool to configure in the future.

I would say these are my main tools, outside of using a browser, postman for testing API's and Spotify for music, I don't use any other application. I like the simplicity of the whole thing. Less is definitely better. I've used the same approach to reduce the number of monitors from three to one.

So that's it, these are all the tools I use to allow me to be able to write code.