Hello, future devs at Fullstack Academy and the Grace Hopper Program! Do you use Windows? Not really sure you want to make the switch to a Mac? I don't blame you; I had been a Mac user for the better part of a decade before switching to Linux, and then to Windows a few months before I started at Grace Hopper. As I'm writing this, I graduated from the program less than a week ago, and so I wanted to write some thoughts up while they're fresh in my head about using Windows. I figured a lot of this out on my own and in consultation with other non-Mac users, and so, rather than let others reinvent the wheel, I thought I'd provide a brief guide.
The simple fact is that you will have to use a Unix system of some sort, for technical reasons having to do with computer architecture. Git Bash, the provided Unix shell on Windows, is woefully inadequate. You can go the route of dual-booting your computer into a Linux partition or using a virtual Linux distribution, but I find those rather cumbersome, personally. If you've always wanted to try out Ubuntu, though, mazel tov.
The best solution in my mind is Windows Subsystem for Linux, or WSL. It's essentially a lightweight Linux shell that shares the same hard drive with Windows. Windows provides official instructions on how to install WSL; I recommend following them and installing Ubuntu Linux through the official Windows Store.
You can install packages in WSL using the normal apt
method for Linux. Keep in mind that WSL doesn't like rendering any kind of graphics or GUIs, however.
I'm also going to take this opportunity to plug Chocolatey, which is a package manager akin to apt
on Linux or brew
on Mac- on the occasions where you need to install a program on Windows, run choco
in PowerShell.
Run Restart-Service LxssManager
in an admin PowerShell. That should clear it up. I don't know why this happens, but at least it's easy to fix. Note that this will kill any active WSL instances.
You don't need to worry about this all up-front; just refer back to this whenever you're up to a point in the curriculum where you need to install something new.
You can make VSCode use WSL as its default terminal by changing the Terminal > Integrated > Shell: Windows
setting to C:\Windows\System32\wsl.exe
. Also, there's a nifty VSCode extension that lets you select your shell with a shortcut. Note that, due to a limitation of how Windows works, you can't open a shell with admin privileges in VSCode.
Boostnote is a great open-source programmer's notebook that works on Windows; you can download it with choco install boostnote
.
Follow the directions for Linux provided. DO NOT install postgres on Windows as well; having two copies of Postgres running can cause some really weird errors.
To start up Postgres, you'll need to run the command sudo service postgresql start
.
When creating or editing a database, you may see the message WARNING: could not flush dirty data: Function not implemented
repeat across your screen. This is normal and a known bug. Ignore it. Postgres should still work.
Instead of Postico, which is Mac-only, I recommend dbeaver. choco install dbeaver
in PowerShell to get it. Yes, dbeaver on Windows can listen to your databse running in WSL.
I'll save you an hour or two here: WSL currently has no access to a device's USB ports. You'll need to connect to the Tessel through PowerShell.