Some time ago I posted about some tools I can’t live without. This time I want to talk about Dev Tools, Apps or Settings I use for work or side projects, both involve programming. Similar as before, if i’m going to be interacting with a PC for most of my day, that interaction has to be as frictionless as possible. The less I struggle with simple commands or menial tasks, the smoother my experience working the better my productivity. So, without further ado, here’s my list!
Visual Studio 2022
As a C# developer, I’ve been using Visual Studio as my main driver. With every iteration Visual Studio gets better. VS2017 had some performance issues that got ironed out with 2019 and 2022. It’s feature packed with source control integrations, unit test runner, Azure connectivity, Data Storage navigation and much more that I don’t use constantly. The free (up to a certain revenue) community edition is my dev environment at home.
I recently tried out JetBrains Rider. It was really fast and had a lot of great shortcuts with first party support for Resharper. However, I’m so used to Visual Studio that it was hard for me to make the transfer for personal projects. The price tag is a lot cheaper than a paid visual studio, but for pet projects it’s not worth paying for it.
Visual Studio Code
Years ago my default text editor was notepad++, it was fast and had syntax highlighting for many languages and I didn’t think things could get better than this, but in 2014 is when I discovered VSCode. With VS Code I do a lot of text manipulation very quickly, and the marketplace for extension is huge. I don’t use it for actual code development, I use it for notes (in markdown), making commands that will used in another system like SQL or C# or Json. Some of the extensions I use:
- Code Spell Checker. It checks for typos in text and even variables or function names
- Markdownlin. As a huge Markdown fan, I always need to have my .md files free of any formatting inconsistencies.
- Shell-format. For formatting different languages like dockerfiles, gitignore and other files like that
In a future post I’ll show some examples of what commands and shortcuts I use for quick editing.
The only thing I really hate about VSCode is that the name makes it harder to search for issues in the full Visual Studio, I keep getting results for VSCode when I only want Visual Studio.
Does anyone know of a way to google for terms that are contained in other terms, like “Samsung Galaxy S24”, I want to only get results for that search term and not “Samsung Galaxy S24 Ultra”. I know I can use the “-” operator, but I don’t feel it’s enough.
PowerShell
PowerShell is a beast! I’m always surprised at how much you can do with PowerShell. I’m far from a power user, but I appreciate the power it has (pun intended). The next step in improving powershell is using Windows Terminal.
Windows Terminal
This is like a container of different shells, you can set it up to have different versions of powershell (like version 5, 7, or Developer Powershell), command prompt or bash.
But the cool thing too is that you can customize your powershell command to look exactly like you want, using OhMyPosh. Following this blog from Scott Hanselman, I set up my PS to something I love looking at.
Here I’m using a modified version of the quick-term OhMyPosh theme, with the font Victor Mono Nerd Font. Nerd Fonts contain icons for windows, github, gitlab and many other tools like that.
Git
I love using git especially from the terminal. There is something about the git console that I understand easier than most git clients like source tree, git kraken or Github Desktop. I use the git console for most git operations: checking the log, commits, rebasing, merging or fixing issues. But there are some things that are done with more visual tools like diffs or conflict resolution.
Recommended reading
There are two books that helped me write software better and improve my skills as a software engineer. One is Code Complete 2 by Steve McConnell and the other is The Pragmatic Programmer by Andrew Hunt and David Thomas.
Code Complete 2
This book talks about the whole process of creating a new software product, from requirements to testing. It gives great examples for more readable code, when to create abstractions, best practices for variable name length, formatting, project organization, and overall code quality.
This is a thicc one but it’s very worth it. This book gave me the coding standards I have that have helped me throughout my career.
The Pragmatic Programmer
This one has some overlap with Code Complete 2, but it talks more about the tools that a developer uses to get the job done. They talk about how a developer’s main skill is using their mind and show how to sharpen it.
One of my favorite chapters is called “DRY – The Evils of Duplication”. This chapter shows how code duplication happens and sometimes and not obvious ways and provides alternatives to prevent it.
If you haven’t read either of these books, I highly recommend them.
Other books I’ve read that have had also big impact:
- Don’t Make me think by Steve Krug (Worth a read)
- Refactoring by Martin Fowler
- The Mythical Man-Month by Fred Brooks
- Clean Code by Robert C. Martin (aka Uncle Bob)
Conclusion
As a developer, I want to have the best tools available to me, so I’m always looking for bottlenecks in my work effort or things that can be improved. If there’s a new “thing” out there I’ll try it out to see if it’s going to benefit me. And by “thing” I mean an app, application or even a different way of seeing things.
Oh and as a freebie, here is a Powershell file I use to install my most used applications on a new computer.
Leave a Reply