At the time of writing this article almost 30 days have passed since I installed Pop!_OS on my computer as my secondary operating system. I got this idea after watching the Linux challenge from Linus Tech Tips and getting quite curious about the state of Linux now. I used quite a lot of distributions when I was younger, in 2013, but I've heard that a lot has changed since then, so I decided to give Pop!_OS a try after seeing it recommended by a lot of other YouTubers.
After installing and using it for a few days, both on my main desktop PC and my laptop, I wrote an article about my experience, in which I said that I was quite excited about the switch and that I look forward to see what new things I will be able to do with this new OS. Well, I got to learn quite a few things since started using Linux, and I thought I'd share them with you here.
Just a little note before I start: I still use Windows for some of my work, especially everything requiring Photoshop and for gaming. However, Linux is my go-to system for everything else currently, from coding, to writing, even 3D modelling, since I discovered that Blender works better on Linux. As much as I like Linux, it is still only a tool that I use to do my work, so whenever Windows does something better, I'll use Windows for that particular task. This is mostly a "disclaimer" for you to understand that I'm not saying Windows is bad and Linux is the best, but I'm merely highlighting some of the good parts of Linux that I got to notice so far.
With all that being said, here are the things that I learned so far:
Coding with Python
I tried to learn Python in the past multiple times, but I always ended up quitting because I could not find a good use for this language in my day to day work. My last attempt was last year, before leaving for work, on Windows 10 which was not an experience I liked. While installing Python 3 was not difficult on Windows, it did require a bit of extra tinkering, and I could not get used to either the command line or PowerShell to execute the code. Overall the experienced seemed... unnatural on Windows, so after encountering several very annoying problems, I gave up.
With Pop!_OS however things went a little better. Python 3 is installed by default, so all I needed was an IDE. I chose PyCharm, which gave me quite a lot of trouble, then I switched to Atom, a text editor which also gave me some trouble, and ended up installing and using Sublime Text as my main and preferred text editor for coding in Python. Since then I worked on several projects, one which I already completed in Windows but with C#.
I rewrote, in Python, my "code repeater" script that allows me to add a piece of text that will be repeated over and over again as many times as needed alongside text that changes with each new line. For example, if I have to manually add 50 yahoo e-mail addresses to a file, I can use this script to just add the address manually while the final part, "@yahoo.com" will be added automatically by the script. The entire script took me a few hours to write, and the code itself is way shorter than what I wrote in C#. While I liked C# because it felt quite robust, and it did not allow me to make any mistake, I felt as if it sometimes got in my way. Python seems simpler and quicker to write, and it does what I need it to do just as fast for now.
Next, I wrote a "contact book" script. This idea came to me after I had to save all my mother's contacts from her phone before resetting it to factory settings. I used the export function available on Android, but I also wanted to have all of the contacts written manually in an easy to read format in case of any error with the phone. Needless to say, writing all of the contacts manually in an Excel file or any other type of file was tedious and annoying. So, I wrote a script to facilitate this process. The script asks me where I want to add the contacts, whether I want an empty line between each of them, and then it repeatedly asks me for two things: name and phone number. No other unnecessary details.
Lastly, I wrote a very simple link opener script. Because I use both Linux and Windows, and because I obviously use a browser on both of them, I sometimes save bookmarks on one OS but not on the other. I have quite a lot of bookmarks and some of them are quite important, so I want to have the most important ones present on both systems. I could use their internal sync tool of my browser, but I do not particularly like that idea, so I came with a solution.
A few weeks ago I bookmarked around 15 to 20 websites on Linux that I also needed on Windows. I went into my bookmark manager, selected all the bookmarks, copied the links by pressing "ctrl + c", and then added them to a text file which I moved to a Windows partition. The problem was that in order for me to bookmark those links on Windows, I had to open them all in my browser, something I could not easily do without using an extension, or without copying and pasting each link individually.
So, in around 30 minutes, with a bit of research, I wrote a script that takes all the links from a file, puts them in a Python list, and then uses a "for" loop to open every link in my browser in an instant.
I have a few other projects planned, one more complicated than everything I've done so far, involving a script that will take the name and phone number of different contacts that I want to add to my phone, but will format them into a file supported by Android so that I can use my phone to import those contacts directly from the file instead of manually adding each of them.
Honestly, if not for Linux, I wouldn't have started to code in Python again, so I can attribute all these projects to using Linux on a daily basis.
SSH file transfer through Wi-Fi connection
Here you'll have to excuse my lack of technical knowledge because I just learned to do this and honestly I know very little about it. But it's something made possible by the fact that I use Linux. I know that this can be done with Windows as well, but from the few guides I've read, it looks more difficult.
The shortest way in which I can describe what an SSH file transfer is, is by saying that it's a way for you, the user, to transfer files from one device to another, directly through a local network, without using any physical connection tool such as an USB cable, nor a specific service that requires you to make an account or use a paid plan.
I always wanted to do this. I always hated the fact that whenever I wanted to send something from my computer to my phone or vice versa I had to pick my USB cable, connect both devices and only then transfer the files. I used different services that were supposed to make this process easier, but none worked in a satisfactory way. Getting a laptop meant an additional headache. Since my computer is my main device, I do most of my work on it, and whenever I wanted to send something to my laptop, I would either have to use a service that I didn't like or trust, find a USB to USB cable to connect them, or use a USB stick to transfer the data.
SSH is a much simpler solution. It allows you to make a connection between two devices, one of which will act as a server, and transfer files between them either using the terminal or directly through drag and drop if you're using the same OS, which I do.
I can connect from my laptop to my PC immediately, copy the files I need and then end the connection. Same thing the other way around. I also did a little bit of research and found a way to do the same with my phone, although it's a bit more limiting and only works through a terminal.
As far as I've read the connection is very secure and encrypted, so security should not be a problem. I only use SSH to transfer generic files anyway, such as images needed for work, text files, movies or games, etc. If I have to copy something more important that requires extra security I can simply do it with an USB stick.
However, it's very comfortable to be able to send an entire season of a TV show if I wanted through an SSH connection than to put everything on a USB stick then copy everything again from the stick to my laptop or any other device, or go around searching for a USB to USB cable.
Workflow improvement and an increase in productivity
While there are a few other things I learned involving the terminal, some file management and tweaking some of the software I use, I think that getting used to a new workflow in Linux and have an increase in productivity is just as important as learning how to code or transfer files through a network.
Learning how to properly work with Gnome allows me to get to my files quickly and get rid of anything that could distract me from my work. Using the terminal can also make navigation a lot easier, at least if you know where you need to go without searching through a bunch of folders.
Using the "tile windows" feature on Gnome also allows me to have multiple windows open easily while the desktop environment takes care of arranging them and resizing them to fit my screen without too much input from me.
Certain things work differently, and the fact that I was forced to find some alternative software to do my work allowed me to experience the simplicity of using an open source software instead of something owed by a big company who's main objective is profit.
I've been using Blender on Windows for a very long time and I heard about how much faster it is compared to other 3D software such as Maya or 3D Studio Max, but I didn't expect it to be even faster on Linux.
I switched from Evernote to Joplin, which I'm quite happy with considering that in the past weeks it did not ask me to log in, to create an account, to sync my files, or to do anything at all. It lets me write my articles and doesn't bother me with anything else.
Gimp is great whenever I need to do some very quick image editing. It opens so much faster than Photoshop and just lets me do my work. I don't know how to use it very well yet so I don't use it that much, and to be honest I prefer Photoshop's interface and workflow than Gimp's, but I love the speed.
The software manager (Pop!_Shop) is a blessing. Installing anything is so much easier than on Windows, as long as it is in the software manager. Even if it's not, a lot of the software I needed had ways to be installed through a terminal, so all I had to do was copy and paste a few commands and I had the software up and running within seconds.
The entire Libre Office suite works incredibly well on Linux compared to Windows, with Calc (the Libre Fffice version of Excel) opening within seconds, and because the software manager gets all the necessary updates for me, I'm never greeted with a message telling me that there's an available update for Calc or Writer (the Libre Office version of Word) each time I try to use it.
Finally, updates. There's not much to say here. Installing all the updates involves pressing one button, and I think that the only update that actually asked me to restart my computer was a Kernel update, which basically is an update for the entire underlying functionality of the OS. All the software updates are done through the software manager, and all I have to do is press a button and the process is automated. I don't need to do anything else.
Conclusion
I am very happy with Pop!_OS and I'm even more happy to see how many improvements Linux got in all these years. I was intrigued back in 2013 when things weren't as evolved as they are now, so you can image how happy I am with all the improvements. Linux got to a point where it can be comfortably used as a main OS.
I will, however, stick do dual booting for now. As much as I like Linux, I cannot say it is superior in every aspect to Windows or that there is no need for anyone to use Windows any more. There is still quite a lot of difference when it comes to stability, and I had a few things break for me after an update, although I managed to fix most of them within a few minutes. Games still don't work as easily on Linux, and there's a lot of software that just isn't available for any Linux distribution.
But I also cannot ignore the potential. The terminal is a blessing, making certain tasks infinitely easier for me. The ability to write code and immediately execute it with very little to no tinkering required is great. Performance is better than on Windows for quite a lot of tasks. Having a customizable desktop environment is a big plus as well, and although I kept using Gnome so far, I am pleased with the fact that I can switch to Xfce or I3wm whenever I wish.
All in all, I am a happy Linux user and I will keep using Pop!_OS as my main OS for work. I will keep you updated whenever I learn new things that make my life easier, or if I change my mind.