Boring intro (skip to the meat of this article)

I will try to do a serie on modern web software development. And that on Windows (I can hear the laughs and the gasp of horror over my noise-cancelling headphones). I want to learn to develop with Docker and WSL so that I can develop on whichever platform my employer wants me without having to fiddle with installing Node dependencies, Yarn, npm and all that. I want my apps to be self-contained and able to be deployed on what-ever I’ve my hands on? (Does Docker containers runs on iPhones? Someone should get on the case a quick check later and it appears it will never happen, oh well).
And especially, I don’t want to say “it works on my side” anymore. Because either:

This first part focus on my typical Windows 10 install. I use Windows because I like games, I don’t want to fiddle with double boots on my personnal machine, my company gave me an awesome MacBook Pro and I’ve nothing against it but I like the simplicity of just installing a game and it working. I’ve played around with Arch Linux, Manjaro, OpenSuse, they’re all awesome but most beginner developers use a Windows machine. I’ve installed and re-installed Windows at least 200 times.
I started with computers on Windows Me. Which is an interesting point, story time:

My father bought it for me when I was away in Switzerland for a swimming meeting. He told me on the phone when I called using a pay-phone with a prepaid card. I was esthatic!
When I came home and ran to see it I only saw the computer screen… It was already loop blue-screening and my father had taken it back to the store. Damn, I will tell my child(ren) this story they will be astonished!

Windows 10 install

Which version to chose

Preferably install an Education version, you can always download the most up-to-date version from Microsoft own ISO creation tool - Why Education instead of Pro? Less bloatware to remove right after installation, it’s basically a fork of Pro without all the added fluff. You will have to provide your own license of course.

Right after installation

Don’t connect to internet - You can but Windows will start downloading older display drivers on it’s own
Create a Domain account so your user name in windows is what you want.
Install graphic drivers - nvidia or amd

Now you’ve a choice to make (not mandatory)

I started isolating my installs in different directory than default, on a different drive even. You can access the repository folder from regedit at this address in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. You need to do this before anything else or Chrome will break for example (ask me how I know…).
Edit both values of ProgramFilesDir & ProgramFilesDir (x86) for 64 & 32 bits software respectively.

Back to installation

Install Chrome from Edge. Set Chrome as default browser (sorry Edge, yes I do really want to switch and not check you out). Connect to Google Account, I don’t care what you think about this, it’s easy and I’m really really enjoying the fact that I can access my thousands of favorites from anywhere (I’m playing the meme game here, I only have like 100).

Recomended extensions for Chrome

Let’s resume our programs installation

First install Windows required runtimes and SDK. I link directly to the download page you’re grown ass developers.
Then install PowerToys. Why? It has Fancy Zones & I can launch program at la Spotlight by pressing the alt + space shortcut and once you get used to it you can’t do without.

Continue downloading programs manually or use a package manager. I’ll try Scoop personally

Scoop documentation

Since I’ve a separated drive for my install let’s use it

All the infos underneath is copy/pasted from Scoop documentation From an elevated default Powershell installation. This will install scoop in your selected directory
$env:SCOOP='DRIVELETTER:\scoopDirectory'
[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')
Then change the scoop packages install location
$env:SCOOP_GLOBAL='DRIVELETTER:\scoopInstallDir'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

You can then install Scoop apps using
scoop install -g <app>

I will need git for sure so for example I will do
scoop install -g git and it will install git, and at the same time 7Zip which is needed to extract the portable version of git and I would’ve installed anyway, winwin

I’ll get deeper into Scoop in another blog post (maybe, maybe not, I’ll add a Jira ticket). There’s some caveat to be aware off : for example I’d to manually add git to my path otherwise my terminals didn’t know what I was talking about. It’s a quick 2min job, when you know what to do, but it can be a pain. For now I’ll finish listing my essentials apps for a developer using Windows, you go and install them how you want. It was just a quick overview of Scoop as a packages manager.

Those are the tools I use to develop and should come pre-installed with Windows

Those are my apps, I like them

And that’s all for me. Yes you can install whatever games launcher you want but it’s not the topic here. You should now have a working base to start developing on Windows and not have to switch when it’s past 5 and you want to game some!
See you soon for the next parts of this serie: we will talk about WSL2, Docker and containers (oh man, that’s gonna be fun, I’m so well versed in it! /s) and finally how to develop a web app using mordern tooling, and that’s something I would’ve loved to get a view on from someone without 5+ years in the industry working at a top tier FAANG or up-scale start-up, and that’s the main motivator behind this serie.