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. π«‘
Top comments (67)
I don't usually comment on listicles, but the tools you've mentioned here are definitely something many should use or are already using. Props to you
Thank you, @ori_dcr109 π«‘
Yes, I love that he mentions Obsidian and I have been using it for more than 2 years now.
@shradhhu_53 π
But won't docker take up my cpu and memory usage in the background. I always have a bad experience with docker, TBH.
FYI You can always set cpu and memory limit for Docker docs.docker.com/desktop/settings/l... :)
Thank you for sharing! βοΈ It's usually good to allocate resources manually based on the computer's specs and requirements.
greats
Wow, I did not know I could set up resources like that. thank you @fatimamazhit
Do you use it in Linux or Windows? It's not very normal to hear such things about Docker. π
I use Ubuntu 22.04. I have followed this official way of installation docs.docker.com/desktop/install/ub.... Is it stable for you?
Yes, I use a Docker desktop. I have no such issues with it so far. π
I simply use a linux laptop/desktop with normal command line docker and have never needed to install docker desktop ... its simply not needed or missed while developing on a Ubuntu laptop ... I have never installed docker desktop as I do not use osx or windows on my dev box
I didn't know some, I'm curious about Obsidian, can you clarify better what you mean with:
? I'm curious about what Obsidian solves? Didn't understand, sorry.
Thanks!
Marcelo
I meant this. Sorry if this wasn't clear to understand. :)
Oh got it! no worries, I did understand that, but then I couldn't understand:
how do Obsidian solve that?
+1. Done that 2+ years ago and never looked back. Obsidian's blazing fast fuzzy search vs Notion's online-only, lagging search is a dealbreaker. The only thing I'm missing is tables, since Dataview never did it for me & the new built-in tables are still quite simple (and will likely stay that way)
For me, everything feels perfect, especially with the Zettelkasten principle. I haven't used Dataview frequently yet, so I can't say much about it.
Thank you so much, @hosseinyazdi. I'll definitely check out this cool tool. π
You're welcome buddy! π
I can vouch for all the above tools except for Neovim. But I'm hearing so much great things about it lately, so I must try it.
Have you ever used something like onlinetools.com/ or webacus.dev/ ? I find it convenient that you have all these micro tools collected in one place. I use one or the other almost on a daily basis. What do you think?
Definitely give Neovim a try. Yo, this is a gem. Straight-up bookmarked both. Thanks for this. Appreciate it. π
Thanks you for sharing π€π½π€π½.
I already started by using vim but I'm not sure it can replace vscode. It's torture! πΉ
I assume you mean Neovim. What feature do you miss the most from VSCode that isn't in Neovim? For me, I only miss the smooth scrolling of VSCode. π€©
I mean some libraries and frameworks only support VSCode and configuring Neovim can be tiring and time-consuming (funny though)
Yes, that's true. Configuring it for each language can sometimes feel hectic.
Great post. But i want to know your neovim setup btwπ
Here you go: github.com/shricodev/dotfiles/tree...
Do let me know how you like it. It's completely built from scratch. :)
thanks
Nice
Thanks for sharing
But
Whats your os ?
Arch ??? (ifeel)
or Ubuntu
Debian is my main OS. I'm using Arch in my container to become familiar with it.
Nice article, thanks for sharing it!
Glad you found it helpful. π