No access to MacOS? Which OS should you be using in 2021? (as a beginner in web development)
For web development, It shouldn't matter which OS you decide to code on, as long as you're able to do it in a Unix/Linux environment.
When I first started coding through FreeCodeCamp, CodePen, Jupyter Notebook, etc. I had the resources to learn how to code online. Later it came to a point where I should be building my own projects instead of JUST learning how to code.
This was when I started to wonder which OS would be optimal for me for building coding projects.
Most developers would always recommend macOS for programming since it's UNIX-based, some of my friends have vouched for this as well since the interface is simple and robust. But it's not a requirement and I didn't have a Mac. So I only had two choices:
Windows? or Linux?
I tried both with dual-boot, an option wherein you get to choose which OS you're going to use upon start-up.
Coding on Windows 10
Coding on Windows is fine until you start using your terminal. The Command Prompt is not a recommended terminal for programming unless you're into IT or troubleshooting. You're going to have to install a Bash terminal like cmder or Git Bash.
A Bash terminal is something that looks like this. This terminal is innate in Linux and MacOS.
username@devicename: ~$ // insert command here
Coding on Linux
Exploring Linux, I've tried Ubuntu (and other flavors like Xubuntu and Kubuntu), and Linux Mint. For some reason, I didn't feel at home with a Linux OS, I was always configuring my setup by looking up forums on the internet for audio issues or why Firefox can't display my images and videos on my Twitter feed.
Although I have to say that I did enjoy coding on Linux more than on Windows. It was fast and less complicated.
But just for coding.
If I wanted to do some video editing, web design, photoshop, etc. I wouldn't have that kind of access on Linux as I would have on Windows.
I thought that it would be productive for me to learn their counterparts on Linux but it was just faster (and more convenient) for me to just reboot, choose Windows and do my non-coding activities there.
Discovering WSL and VMWare
On Windows, you have the option to run Linux without having the need to reboot and choose an OS. There are two ways to do this, either through Windows Subsystem Linux or with a virtual machine.
Windows Subsystem for Linux
With WSL, you can transfer files between your Windows OS and your Linux environment like a breeze.
Edited a photo using Photoshop? Just drag it to your WSL project files and
source it from wherever you dropped your file.
You can run Linux commands on WSL just like how you would on Ubuntu or Linux Mint.
Just need to take note that WSL is still improving and you could run into some issues from time to time. To be honest, I'm still working my way through WSL. So far, I have not had any issues.
Linux on a Virtual Machine
The safest method alternative to WSL and most recommended when running Linux. With a virtual machine, you are emulating hardware on your host OS (Windows). With this method, you're actually isolating your Linux distro from Windows... within Windows! That means that if you accidentally crash your Linux distro, Windows will not be affected at all.
If you're looking for ways to install a virtual machine on Windows, you can check out the instructions from the The Odin Project. They always have the updated instructions on how to do so.
I currently have both WSL2 and Oracle VM VirtualBox on my Windows machine. I am experimenting on both -- I use WSL2 with Ubuntu 20.04 for sandbox and VM for my main environment for code projects.
If you're new to coding, and you want to start working on projects (which you should), I hope this blog has helped you as much as it would have helped me when I started coding. Happy coding!