Linux Vs Windows - Why Linux Is Better For Programming & Web Dev (A newbie experience)
Tags: webdev, linux, beginners, ubuntu
Published: 2020-01-23 07:09:27

*Originally published on my blogging site [ajeet.dev](https://ajeet.dev/)*

Disclaimer: 
**I am new to the blogging world. This is my first post at Dev.to platform.**
Please feel free to suggest how can I improve my tech blogging skills.

At Dev.to, 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.

![Web developer](https://thepracticaldev.s3.amazonaws.com/i/u0n3j21scpd9yxo0vyh7.png)

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](https://en.wikipedia.org/wiki/Linux_distribution "Linux distribution") (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 a Linux distro.

Linux is a kind-of-descendent of [Unix](https://opensource.com/article/18/5/differences-between-linux-and-unix "Linux Vs Unix"), which means it is similar to other [Unix-based system](https://www.google.com/search?q=unix+os+list&oq=Unix-based+system "Unix-based system").

##Linux Vs Windows ⚔️ Feature Comparison

Let's compare the features of Linux and Windows Os.

![Windows and Linux Logos](https://thepracticaldev.s3.amazonaws.com/i/1b4rrkp11tlwaemedls6.png)

#### 🧡 Open Source

Unlike Windows OS which is commercial, Linux is an [open source software](https://en.wikipedia.org/wiki/Open-source_software "free and open source software") that is freely available to download. There are hundreds of [Linux distributions](https://en.wikipedia.org/wiki/List_of_Linux_distributions "List 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](https://ubuntu.com/ "Ubuntu"). I am currently using it. 

#### 🛡️ Secure

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. 

#### 🚀 Faster Software Updates

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. 

#### ⚡ Performance

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.

#### 👨‍💻 Programming Friendly

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

1.  Linux supports almost all of the programming languages such as [Clojure](https://clojure.org "Clojure programming language"), [Python](https://www.python.org/ "Python website"), [Julia](https://julialang.org "Julia programming language"), Ruby, C, and C++ to name a few.
2.  The [Linux terminal](https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal "linux terminal tutorial") 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](https://learnpythonthehardway.org/book/appendixa.html "Command Line Crash Course"). Here is a [comprehensive guide to learn Linux command line for beginners](https://tutorials.ubuntu.com/tutorial/command-line-for-beginners "Linux command line"). You can also use [this guide to learn command line for iOS and Linux](https://www.taniarascia.com/how-to-use-the-command-line-for-apple-macos-and-linux "command line tutorial for iOS and Linux").
3.  Bash scripting - Bash is extremely useful for developers and it is available by default on Linux. Learn [how to create and use bash scripts](https://www.taniarascia.com/how-to-create-and-use-bash-scripts "create and use bash scripts"). Here is a [cheat sheet on bash scripting](https://devhints.io/bash "cheat-sheet on bash scripting").
4.  Linux has inbuilt support for [SSH](https://www.ssh.com/ssh/protocol "ssh protocol"). With this, you can easily manage your servers. Learn [how to use SSH using this DigitalOcean guide](https://www.digitalocean.com/community/tutorials/how-to-use-ssh-to-connect-to-a-remote-server-in-ubuntu "how to use SSH").
5.  You can easily customize and personalize your Linux distribution.
6.  It also supports several efficient tools for developers that makes the life of developers a lot easier.

####💯 Great Community Support

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](https://askubuntu.com/). 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.


###⏳ How to install and use a Linux distro

There are many ways to install and use. A few ways to install [Ubuntu](https://ubuntu.com/download/desktop "ubuntu") (a popular Linux distro) are mentioned below:

1.  You can [download Ubuntu](https://ubuntu.com/download/desktop "download ubuntu") and freshly install on your system. Also, [google it](https://www.google.com/search?q=how+to+install+ubuntu+on+a+computer+without+operating+system) and you will find several free resources on how to install this OS.
2.  [Install Ubuntu alongside Windows 10 dual boot](https://www.google.com/search?q=install+ubuntu+alongside+windows+10+dual+boot "Install ubuntu alongside windows 10 dual boot")
3.  [Install Ubuntu on Windows 10 using Virtualbox](https://www.google.com/search?q=Install+Ubuntu+On+Windows+10+Using+Virtualbox "Install Ubuntu On Windows 10 Using Virtualbox")


###🤔 Downside of using Linux (for the absolute beginners)

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. ~~While there is absolutely no downside of switching to Linux~~, some absolute beginners might find Linux a bit uncomfortable while using it. 

![Windows Users Trying Linux](https://thepracticaldev.s3.amazonaws.com/i/hk7fvlc4hpqg4fikj4x0.png)
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.

1.  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.
2.  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. 
3.  I am a big fan of [Tableau](https://www.tableau.com/ "Tableau") - a [data visualisation](https://www.tableau.com/solutions/gallery "data visualization samples using tableau") 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](https://www.tableau.com/products/desktop/download#system-requirements "download Tableau Desktop").

The problem could be fixed by using installation approach 3 ([install Ubuntu on Windows 10 using Virtualbox](https://www.google.com/search?q=Install+Ubuntu+On+Windows+10+Using+Virtualbox "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](https://en.wikipedia.org/wiki/Random-access_memory "computer 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.

##💡 What's Next

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](https://ajeet.dev/)
Part 1: [How to Install Windows Subsystem for Linux](https://ajeet.dev/windows-subsystem-for-linux/)
Part 2: [A Beginner's Guide to Use Windows Subsystem For Linux](https://ajeet.dev/how-to-use-windows-subsystem-for-linux/)

Do read it. Thank you for your time. Feedback welcome :)

####Edited on 25 Jan 2020: Based on several comments and a little research, I find this sentence "While there is absolutely no downside of switching to Linux.." too extreme. That's why the strikethrough :)####



---

**Don't forget to subscribe to my weekly [Newsletter](https://ajeet.dev/subscribe/) 📧**

---



*Credits 🙏:* 
*Image Credit: [ManyPixels](https://www.manypixels.co/)
*Image Edit with [BlogCover](https://blogcover.now.sh/)
*Windows and Linux logos taken from [SimpleIcons](http://simpleicons.org) 
*Emojis taken from [Emojipedia](https://emojipedia.org/)