At CodeNewbie, I aim to share my tech-learning, and my writings will be dedicated to the absolute beginners who are new to the tech world. I don't have a Tech degree, but always wanted to get into tech domain. I started teaching myself, I learnt Excel and mySQL by myself, then data visualization software Tableau.
This post will help the newbies choose the right OS to start their journey in programming or web dev. Let's start.
In this article, I will quickly compare some key features of both the Linux and Windows Operating Systems. We will see the advantages of Linux over Windows, which will help you choose the right OS for programming or web development purposes.
I am a big fan of Windows OS, and have been using it for years. It is super user-friendly, well-designed, and convenient. However, if you are thinking of getting into programming or web development, a Linux distro (such as Ubuntu, CentOS, and Debian) is the best Operating System to start with.
Since this article is mostly focused on using a Linux distro, I will share with you lots of free learning resources related to Linux. This will help newbie coders to get comfortable with Linux distro.
Let's compare the features of Linux and Windows Os.
Unlike Windows OS which is commercial, Linux is an open source software that is freely available to download. There are hundreds of Linux distributions available out of which almost five-hundred distro are in active development. One of the most popular desktop Linux distributions is Ubuntu. I am currently using it.
Linux is considered to be more secure than Windows. No antivirus is needed. Since it is open source, several developers are working on it and everyone can contribute code. It is likely that someone will find a vulnerability long before hackers can target a Linux distro.
You will get faster software updates. If the bugs are found by someone, the users get updates immediately, they don't have to wait for long. Development tools and libraries are available for free.
Linux is more powerful and versatile than Windows. It is light-weight, which makes Linux faster than Windows. You will notice a significant improvement in speed on a Linux distro when you start working on this OS.
As I said in the beginning of this article, a Linux distro is the best OS for a budding programmer to start with. Developers ❤ Linux. Let's see some key features of Linux
- Linux supports almost all of the programming languages such as Clojure, Python, Julia, Ruby, C, and C++ to name a few.
- The Linux terminal is better than Window’s command line. If you want to learn command line basics quick and super fast, you will find this course helpful. Here is a comprehensive guide to learn Linux command line for beginners. You can also use this guide to learn command line for iOS and Linux.
- Bash scripting - Bash is extremely useful for developers and it is available by default on Linux. Learn how to create and use bash scripts. Here is a cheat sheet on bash scripting.
- Linux has inbuilt support for SSH. With this, you can easily manage your servers. Learn how to use SSH using this DigitalOcean guide.
- You can easily customize and personalize your Linux distribution.
- It also supports several efficient tools for developers that makes the life of developers a lot easier.
Since hundreds of Linux distros are in active development and they are open source, the community is big. All newcomers can find help on any of the Linux forums. If you are stuck somewhere in your development process or need help in your coding process, just Google it. You can find several Linux based helpful resources.
There are many ways to install and use. A few ways to install Ubuntu (a popular Linux distro) are mentioned below:
- You can download Ubuntu and freshly install on your system. Also, google it and you will find several free resources on how to install this OS.
- Install Ubuntu alongside Windows 10 dual boot
- Install Ubuntu on Windows 10 using Virtualbox
Is there really a problem switching to Linux ? I think, yes but for the absolute beginners, and it should be considered on a case-by-case basis. Some absolute beginners who have used Windows OS in the past might find Linux a bit uncomfortable while using it.
Image Credit: https://bit.ly/2qpYluK
Consider a case where your computer is only running Linux (using installation approach 1 and 2 mentioned above). You have been using Windows since the beginning. You have never used a Linux distro before (similar to my case). Here are a few problems I had faced.
- A computer with only a Linux distro installed means newbies might end up googling several commands to do simple tasks. Even you are not familiar with Start Menu. The same task could have done with a few clicks of buttons in Windows.
- Running Microsoft products (such as Excel, Word, and PowerPoint) in Linux is not an easy task. That was a big disappointment to me. I was an Excel-person, and even now I use it everyday. Though you can use open source alternatives to Excel, but they are not advanced and mature enough.
- I am a big fan of Tableau - a data visualisation software, and I use it create charts and running some quick analysis. The problem is Tableau Desktop is not available for Linux, but only for Windows and Mac.
The problem could be fixed by using installation approach 3 (install Ubuntu on Windows 10 using Virtualbox). You can use Windows and Linux side by side. However, the biggest problem with this approach is the performance of the Linux machines inside Windows. Virtual Machines take a lot of resources and you will have a disconnected experience when using VMs with Windows.
If you have good amount of RAM, video graphics and a good processor, you can optimize the Linux machine. However, that might be costly, time taking and overwhelming for newbies. So, what now.
One of the best solutions of the problem I explained in the previous section is to use Windows Subsystem for Linux (WSL). I have written a step by step guide on WSL on my blogging site ajeet.dev
Part 1: How to Install Windows Subsystem for Linux
Part 2: A Beginner's Guide to Use Windows Subsystem For Linux
Do read it. Thank you for your time. Feedback welcome :)
Don't forget to subscribe to my weekly Newsletter 📧