Developing In a Windows Environment for Beginners: Part 1
It used to be that if you wanted to develop software, you were looking at a Mac environment. With the advent of powerful cross-platform IDEs that restriction is a thing of the past.
When I was first starting out, there wasn’t one good place for me to refer to in order to get everything setup and going, so here is the guide that I wish I had when I was first starting. In this series I’m going to walk you through how I setup my development environment on a Windows 10 machine.
- Developer Tools and Hardware — You are here!
- Installation
- Git and Github
- First Project!
Developer Tools:
I use several tools in my development, and all of the necessary ones are free. I have a few for “quality of life” that are a one time fee, but not necessary to actually jump right in.
Visual Studio Code
I love using Visual Studio Code, it’s the first IDE I used in a serious way and I use it primarily for JavaScript development. Just about every IDE you find can be configured to work for any language, but it may require more or less work. VS Code is configured for easy JavaScript development out of the box, and if you are going to be doing web development it’s the one that I recommend the most. Find the latest version here.
Visual Studio 2022
Visual Studio 2022 is a recent addition to the scene, but one that I am quite enjoying. I primarily code in C# for work, and VS 2022 is where I do my work. Before this I was using VS 2019, and I can recommend either for working with C# or other Windows development out of the box. Find VS 2022 here.
Windows Terminal
There are several command line apps that you can use, but the one that I prefer for everyday work is the Windows Terminal app. You can find it here in the Microsoft Store. The reason I prefer Windows Terminal over other command line clients is because it allows for greater customization than the others, it also has a tabbing functionality so I’m not having to open up a ludicrous number of windows.
PowerShell
Windows PowerShell is really only necessary to get started, but it can be used just like Windows Terminal if you prefer it that way. PowerShell should come pre-installed on your device, so you shouldn’t need to download anything to get this one. Just search for PowerShell in your app search bar.
AquaSnap
If you have a vertical monitor (and if you really get into software development, you will at some point) I highly recommend getting a professional license of AquaSnap. It has a lot of wonderful features, but the only one I have ever really used is the window tiling feature which allows me to stack windows vertically much like the native split windows you can do horizontally on Windows 10. The price is well worth me not having to painstakingly adjust my window size every time I open a new one on a vertical monitor.
Miscellaneous
There are several other things you will need to get started developing, like Chocolatey, nvm-windows, and posh-git but we will get to that in future articles.
Hardware
A lot of programmers like to talk about their ‘rig’ but the truth of the matter is that you don’t need to break the bank to get started. I develop on several different machines, one was nearly 15 years old before I retired it from active development use and now I’m using it as a Linux server box for the rest of my projects.
My primary machine that I work on is a desktop tower, with an 8-Core AMD Ryzen processor (I also like to game, so this is more for that than programming). It has 32 GB in RAM, and 500 GB in my primary SSD hard-drive, and a 4 TB spinning drive. I much prefer SSD drives, but I can also get a lot more space for much less cost with a spinning drive.
My wife loves to watch TV, and I love to lay on the couch with her while she does, so my secondary machine is a Surface Pro 4 that I got back in 2015 for college. It is much lighter weight that my desktop device, with a 2-Core Intel processor, 4 GB of RAM and only 125 GB in storage. 6 years on, and it still works well as a mobile development machine, even if the battery life is dropping off.
The real reason I don’t just code everything on my Surface is because of screen size. The Surface is naturally limited without a dock (and I didn’t want to shell out for one when I didn’t need to) and I have much more space on my multi-monitor setup for my tower. I use 1 central 27" Acer monitor, and have two wing-man Dell monitors in a vertical orientation on either side. Eventually I will get a 4th smaller central screen, but right now this setup works well for me.
Finally, I use a mechanical keyboard because I like the resistance and feedback it provides.
Join me in Part 2 as I walk through the installation steps for the various tools we will be using!