TL;DR
This article lists my top 4 tools that I use in my daily life as a developer in 2024. ✅
These tools are aimed at improving your editing skills, terminal navigation, note-taking, and utilizing Docker beyond the containerization of applications. Also, I have a small surprise for you at the end. 😉
If you are not using at least 1-2 tools mentioned in this article, let me tell you, friend, you are missing out. Definitely give at least some of these a try. You'll thank me later. 😎
1. Tmux - Terminal multiplexer
ℹ️ I don’t think there is any reason not to use Tmux. As long as you have to work in the terminal, believe me, this is going to make your life much easier.
Are you opening up new tabs every time you need to work on something else in the terminal, and your current terminal window is occupied? Believe me, this thing is going to blow your mind. 🤯
You can split a tab/window into multiple panes. Also, there is the concept of a session that allows you to have multiple windows open, completely independent of other sessions, making it easy to work on multiple projects at a time.
See in the image? I have my notes in another window, and dotfile configs in another. Switching between them is very easy and convenient.
Spoiler alert: You will never want to use your mouse when working in the terminal. 😉
It hasn't been very long since I started using Tmux, but now it's become my main core utility that I cannot live without. 🔥
2. Neovim - Preferred Code editor
❓ Do you love working in the terminal? If yes, then this code editor is probably what you didn’t know you needed. Give it a try.
I was a very big fan of VSCode, and still, I am. I knew nothing about Vim and Neovim just a few months ago. But now, believe me, in all these months, I have not touched VSCode even once. 🫠
Maybe you are a very big fan of VSCode as I was, but try switching yourself to Vim motions. That is the best thing you could do for yourself to increase productivity. Once you shift your editor to the terminal, you will slowly start to live in the terminal itself.
Although the editor in the terminal might not be to everyone's taste, at least try to use it once and see if it is something of your choice.
3. Obsidian - Great Note Taking
🧠 My second brain, and if you start using it right now, it will be yours too.
I know you might be using some cool note-taking tools such as Notion, Evernote whatever. But, do you remember the last time you opened up these note-taking apps to actually reference something you wrote a few months earlier? 🤔 See, most of you don’t have an answer. So uninstall these, and do it right now!
This is exactly what Obsidian solves. Think of it as your second brain. This tool is so good that I have the GUI open all the time on my virtual desktop, or I open it in a Tmux window so that whenever I am writing code and need to reference my notes, I can easily do so with obsidian.nvim right from my editor. 🔥 Read more on obsidian.nvim.
I also switched from Notion to Obsidian. Believe me, it was one of the best switches I made, one that I am going to cherish for the rest of my life. Don’t worry, you can import your existing notes from your note-taking tools to Obsidian pretty easily.
4. Docker - Beyond Containerization
🐳 Do you use it for more than just containerizing your application? If not, I guess it’s time to.
Mostly when we think of Docker, we think of it just as a way to containerize applications. We know there are tons of ways to use Docker, but we simply ignore them. But, think of it more like your daily driver, not just for one purpose.
Recently, I wanted to try using Arch so I could say, “I use Arch, BTW!” 😉 But I didn’t want to install a completely new Linux distribution from scratch just to find out if I don’t want to move forward with Arch. For that, I simply spun up a Docker container with the Arch image and started using it. If I don’t like it in the future by any chance, I will simply remove the darn image with its container. And that’s it, I am back to normal.🔥
⁉️ Why not use a VM for that use case?
In a VM, you have to allocate all the resources, and it will feel more bloated, to be honest. But with this approach, you have a complete, fully buttery smooth OS without having to do anything manually from scratch.
Also, recently I had to deal with connecting to a remote server via SSH, and my key-based authentication was not working. To debug if the problem was on my side, I simply spun up a Docker container with Alpine, set up my SSH keys there, and it connected successfully. The main problem was with the ssh-daemon
wrong config of not accepting key-based authentication on the server itself because of PubKeyAuthentication no
in the /etc/ssh/sshd_config
file.
Docker is so beautiful 😻, try to use it very frequently.
Surprise Just for You! 😉
Microsoft is offering FREE Certification Courses on Cloud, DevOps, and Development! ✅
No payment, no subscription, and no registration is required. Just start learning! 🚀
⚠️ NOTE: You will be redirected to the Official Microsoft Website.
https://learn.microsoft.com/training?wt.mc_id=studentamb_366508
Thank you for reading! I hope you try out some of these at least. 🫡