Most likely you already have either a Windows-Powered laptop/desktop, or you have an Apple laptop/desktop running macOS. It’s common knowledge that Windows has the lion’s share of the consumer market with macOS coming in a distant second.
My Computer Science Lab Setup
Over the years, I’ve purchased and built the equivalent of a Computer Science Lab where I run various operating systems, some with special use cases. My workflow and my obsession with learning how things work require me to isolate, test, and use various systems for different purposes.
In this article and the video above, I share with you why every web developer should start using a Linux powered laptop.
What makes a Linux laptop so special? Is it the hardware inside it? Is it the name brand? Is it the specs? Or is it the operating system?
Web Development and the Technology Used
I’m going to go over all that, but before we go there, I want to explain why this is something you’re going to need. To do that, I want to talk about what a web developer’s learning cycle is and what their career cycle is like when first starting to code.
What Web Development Tools do You Need?
There are a lot of tools you can use for web development. This is just a short list of some general web dev tools you can use.
- text editor or IDE
- NodeJS & NPM
- Linting Tools
- git for version control
- Coffee & Pizza
Those are just a few web dev tools you will use. Depending on the project you’re working on, will determine the full list of development tools you use.
Websites, Data Centers & Operating System Used
A website is hosted on a computer, in a datacenter. The computer will be running an operating system. The most widely used OS for websites is Linux. On your Linux system, you will need support for the various programming languages you’re using, support for a database management system, and a web server like Apache or Nginx.
Operating Systems for Web Development Debate
I know there’s always a big debate going on and, in another article/video, I talk about what the best OS is, and why it may not even matter.
What you can do on macOS, you can do on Windows and Linux. There are ways around things by using the configuration files.
There comes a time when you will benefit from using Linux. This is fact, not an opinion.
Windows Subsystem for Linux
You also have the Windows Subsystem for Linux which gives you a lot of the same features that you have in macOS. But the learning process for a web developer, a coder, a programmer, is first learning how to code.
Once you know how to code, once you know how to create a program, you’re going to get your website online. Then you’ll start taking on clients. You’ll get their websites online.
Do you need Domain Name & Web Hosting?
In the beginning you’re going to be using a shared hosting plan with one of the large hosting companies. Your shared hosting account will come with cPanel or with Plesk which is the graphical user interface for how you’re going to manage your server.
At the beginning that’ll be fine. Without diving too deep into the differences between shared hosting, VPS, and dedicated servers, I want to give you an overview.
A shared hosting account comes in at about five dollars a month, up to fifteen dollars a month. They’ll offer you unlimited bandwidth, unlimited storage, unlimited everything. How can they offer you so much, for so little? One of the ways they do that is they pack in as many websites, as many instances of websites, on one shared server.
Apartment Building & Shared Hosting Example
Think about it as an apartment building, if you’re in a large apartment building, you’re going to have hundreds of people within that building. Each person has an apartment, and they are each sharing the resources like plumbing, electricity, laundry room, elevator, and if you’re lucky, parking. The more people living in that building increases the drain on those resources or the availability of those resources.
WIFI & Shared Hosting Example
Another, easier to visualize example or might be more relevant to you if you don’t live in an apartment building, is your WIFI. If you’re the only person home streaming video, you will likely have a fluid, buffer-free stream. If your home is full of people, some playing video games online, others in the middle of a Zoom session, and more than one person streaming video or uploading/downloading files to and from a server, your bandwidth will suffer, and buffering will happen. If you’re located at the other end of your home, furthest away from your router, then your connection might drop. Frustrating, I know.
Thousands of Neighbors on Shared Hosting
When it comes to shared hosting you could have thousands of other websites right next to yours. What does that mean? If you understand how computers, data centers, and how web servers work, you’re going to have all those websites utilizing resources from the computer. That means performance is going to be an issue, especially for larger websites. That also means that security is something you want to focus on.
Poorly Coded Websites Impact on Performance
I haven’t even spoken about websites that aren’t coded and eat up more resources than needed. Picture a home in the middle of a heatwave and everyone decides to crank their air conditioner to the max setting. Then at the same time, ironing clothes, running computers, trying to mine for Bitcoin. What do you think will happen? If you answered a power outage, then you’re correct.
Transition from Shared Hosting, to a VPS or Dedicated Server
Eventually, a web developer or web designer will decide they want to move from shared hosting and get into a VPS aka Virtual Private Server, or even a dedicated server. What this means is your instance of your website, of your web server, has dedicated resources.
A VPS Splits, Doesn’t Share Resources
Even with a VPS, there will still be other instances of web servers on the main host computer. But you’re going to have dedicated resources, meaning your server is going to have for example four gigabytes of ram, or eight gigs of ram. You won’t have unlimited storage, you don’t need unlimited storage, but you’ll have access to very fast SSD’s. Those resources are for your use only. You’re not going to have the same performance bottlenecks that you would with a shared hosting account.
Control Over Installed Software
One thing you’re going to have to also remember is that when you get a VPS or a dedicated server, you get to control the software that goes on it. Out of the box, you’re not going to have cPanel or Plesk, and that’s a good thing because those are examples of software that takes resources away from your web application.
How to Interact with your Web Server without a Control Panel
How will you interact with your web server? Via the terminal. You use the terminal to access and maintain your system. Yes, you’re going to have to get familiar with the command line.
SCP, RSYNC & SFTP
You’re going to have to learn how to use Secure Copy to transfer files from your local environment to your remote server. SCP is one way to do that. RSYNC and SFTP are other ways for you to transfer your project from your local environment to your production environment or vice versa.
File & Folder Permissions and User & Groups
You’re also going to have to learn about file and folder permissions, users and groups, how to manage everyone on your server, whether it’s you, or if you have a team working that has access to it. There are going to be configuration files you must get familiar with.
Apache & Nginx
When it comes to Linux, when it comes to the type of server you’re using, if you’re using Apache or Nginx for the web server, you can fine-tune the performance of your website and your server by working with the configuration files.
Repurpose Old Laptops & Desktops for Linux
That takes me back to why every web developer needs an old laptop. It’s a 2012 Lenovo Yoga, the first iteration that they have of this design style where it was able to flip out and end up being a tablet. I completely wiped Windows from it and installed Ubuntu as the main OS. I installed the version of Ubuntu that I’m using on my production server. Then what I did is I created a mirror copy aka mirror image aka cloned what I have in my production setup, onto my local development setup.
That means I get to test out my ideas. I get to work with Linux, see if any changes to the code I’m pushing out are going to have any breaking changes. It’s better to learn about any issues immediately in your local environment before you upload them to your production environment.
Can Linux Be Your Main OS?
Absolutely, Linux is a great operating system. By getting familiar with Linux, you will become a power user. One of the best things about Linux, is you have access to amazing software that can replace a lot of commercial software you typically use on Windows and macOS.
You have free open source solutions for everything from development, video editing, photo editing, illustration, audio production and more.
Maintaining a Linux Computer
Linux is easy to maintain. Unlike Windows which can seem like a nightmare to update, sometimes taking an hour to go through the motions of installing an update, Linux is streamlined. Use the terminal to sudo apt update && sudo apt upgrade -y and you’re good to go.
Linux is considered the more secure OS of the three. Since Linux is open source software, there are more eyes reviewing the code used for the kernel.
The way Linux handles user roles, groups, files & folder permissions, make it a very secure system. That being said, no system is 100% secure. You will need to maintain your system and ensure that you configure Linux correctly.
Why You Don’t Need Linux
I know, some web developers are scratching their heads saying I can create my website in Windows or macOS. I can use the same version of PHP, the same version of MySQL, or the same version of Python on my local system as I do on my remote system.
You can use FileZilla to SFTP your files and folders from your Windows or macOS powered computer to your remote server and vice versa.
Yes, you can code on Windows and macOS. That’s how I did it for years, and I still use both Windows and macOS, but it comes back to working with file permissions, folder permissions, users & groups, making sure that your development environment reflects what you have in your production environment.
Re-image an Old Laptop or Buy a Linux Powered Laptop
I’m not saying to buy a brand new $2,000 laptop and then wipe out Windows and put Ubuntu on it. If you want to you could do that but there are better options. You can always get a laptop that’s made for Linux, they do exist. But like I said earlier an older laptop will be ideal for this.
I’ve had my Lenovo laptop since 2012. I wasn’t using it for anything else, so I figured instead of junking it, instead of tossing it aside, why not repurpose it, why not reduce, reuse, and recycle. So, I wiped out Windows and I installed Linux.
This is my playground, this is what I use to test out my ideas, and if you’re like me, you have more than one laptop or desktop lying. I have an entire computer lab set up and it’s not all modern equipment. I’ve collected them over the years, and I decided that I wanted to repurpose them.
Family & Friends
If you don’t have an older laptop or desktop, ask your friends or family. Ask them if they’re going to get rid of their older technology if you can take it off their hands. You can offer to pay for it. Or you can go to eBay and find an older laptop for a low price.
Keep Security in Mind
When you get someone else’s old computer, make sure to wipe out the hard drive, do a secure wipe. That way anything that’s on it, is completely gone. Hook it up to your router’s guest network and make sure everything gets updated like the BIOS as needed. Then install Linux onto that laptop.
How to Install Linux
The way you install Linux is you’ll take a USB drive, go to the Ubuntu website, and download the ISO file. Use a program like Etcher to make sure it’s bootable and placed onto the USB. Plug it into the laptop, boot it up and then you overwrite whatever’s there. In another tutorial, I’ll go step-by-step on how to do that. It’s a great way for you to get hands-on with Linux, for you to understand how the command line works, how the terminal works, how you can do file management, and how you can work with databases in an environment that’s very similar to your production environment.
Virtual Machines for Linux
There are alternative ways to learn Linux. You can download VirtualBox or VMware Community Edition, and you can install Linux onto either one of those virtual technologies. That’s a great option as well but the one thing you must remember is that on your host machine, whether it’s a laptop or desktop, you must make sure you have enough resources for your host machine, as well as your virtual machines. Not all laptops will have the capacity for the hard drive or the amount of ram needed to run multiple virtual machines and your host OS. But if you do, then VirtualBox is a great option.
Other Linux Distros
Ubuntu is just one Linux Distro you can use. It’s one of the most popular Linux Distros, but there are others. Below are a few you can checkout, but there are others. Google Linux Distros to find more.
- Red Hat Linux
- Arch Linux
- Kali Linux
- Parrot Security
- and others
Like I said before, if you’re a web developer if you’re getting started with web development, or if you’ve been in the game for a while, you’re going to benefit from investing your money & time in taking an old laptop, repurpose it with Linux and get your hands dirty learning how the command line works.
Learn about SSH, RSYNC, Secure Copy aka SCP, and SFTP. Learn how to manage a server, how to manage the loaded modules and the packages in the operating system. You can go even deeper by doing port management to make sure that only the required ports are being listened to and disable the rest.
Having a Linux powered laptop is a game-changer, and again, it doesn’t break the bank when you repurpose an older laptop.
How many of you are going to have a laptop powered by Linux that you could use to enhance your skillset?
If you enjoyed this article and video, share them with others. As always, thanks for reading. Happy coding.