JavaRush /Java Blog /Random EN /Let's share our experience. My transition from Windows to...

Let's share our experience. My transition from Windows to Ubuntu

Published in the Random EN group
Beginning programmers are often recommended to work not under Microsoft Windows, but under Linux. There are many reasons for this, related to the very structure and logic of Linux, its security, as well as application licenses. We bring to your attention a translation of an article by Ofir Chakon, co-founder and CTO of DataGen Technologies , who shares his experience of switching from Windows to Linux Ubuntu. The article is intended for beginners who know little about the world of Linux.
Let's share our experience.  My transition from Windows to Ubuntu - 1
People who spend most of their time at the computer sometimes need to ask themselves questions about their basic computer habits. I believe you have already guessed that we will talk about the operating system that each of us uses every day. Windows is now installed on more than 90% of desktop computers! Users choose Windows for various reasons:
  1. Windows comes with almost every PC by default.

  2. If you have been using Windows for many years, only changing versions, then most likely you are used to it, and it is difficult for you to break this tradition.

  3. Most likely, in your environment you only see Windows and maybe MacOS users, so you don't notice the alternative. Most people think that Windows is the only option for their PC.
I have to admit: Windows is well designed, user-friendly, great for most user tasks, and regularly updated.
Let's share our experience.  My transition from Windows to Ubuntu - 2
The Windows alternative I'm going to talk about is Linux . This is a family of kernel-based operating systems, which is called the “Linux kernel”. Linux is Unix-like, that is, this operating system is based on the same principles as Unix- based systems (MacOS, for example). Most builds of Linux are completely free, developed by the community, open source, and distributed in the form of distributions. Among them are Ubuntu , CentOS , Debian and so on. A distribution is a set of programs with a convenient (in most cases) installer, ready to work on the device. Each of them has its pros and cons and has many applications. Linux is a fairly “light OS” in terms of resource consumption, so it is used in embedded systems, smart home devices, IoT (“Internet of Things”) and much more. Android OS is also based on Linux. I'm a technology entrepreneur with over seven years of experience in software development and data science, and I have to admit that switching from Windows to Ubuntu resulted in one of the most significant productivity gains of my career.

How did I decide to do this?

At some point, I began to notice that my main working tools, such as the Android Studio IDE and the Android simulator, on a Windows computer, were barely allowing me to make progress in terms of latency. I thought it was a hardware issue, so I decided to upgrade to a Lenovo Y50-70 with 16GB RAM and a 512GB SSD hard drive.
Let's share our experience.  My transition from Windows to Ubuntu - 3
After installing the necessary software to continue developing the project, I realized that I was encountering similar problems again, but on a completely new computer. I didn't have many RAM-intensive applications in my work, so I naturally expected my new PC to perform like a rocket ship. But that didn't happen, and I realized that I needed to change my strategy. I had a natural assumption that the problem was not a hardware component, and I began to look for an approach to programs. I worked with Linux for a while during college, and now I decided to explore this option in more detail. Ubuntu is the most popular distribution of this operating system for PCs. It is available as a client "user" version, as well as a server version. It was this duality that tipped the scales in favor of Ubuntu, since I needed both a client and server OS. I studied many resources on the Internet where there were discussions like “Linux or Windows”, “Windows vs. Ubuntu". I understood a lot, but still, I was waiting for something... Some kind of “sign from above” or something. This sign turned out to be a virus attack, which forced me to make a backup copy of all files, format the hard drive, and then start working. Only this time - with the Ubuntu operating system . I had some thoughts that it might be worth installing Windows and Ubuntu at the same time for a smooth transition. Now I'm glad I didn't. The reason I completely abandoned Windows was my desire to completely immerse myself in Ubuntu without the possibility of returning to Windows. Here are some lessons I learned during my transition from Windows to Linux . They can be of interest to any user, but are mainly intended for developers, coders, programmers and anyone who writes code or creates products.

Performance

Linux runs faster than Windows 8.1 and Windows 10 thanks to its lightweight architecture. After switching to Linux, I noticed a dramatic increase in speed and performance using the same tools I used on Windows. Linux supports many powerful developer tools and allows you to easily manage them.

Safety

Linux is open source software. Theoretically, everyone can contribute their own code to it to improve something, add features, fix bugs, reduce risks, and much more. Naturally, every large-scale open source project has observers studying all aspects of it. Therefore, from a security perspective, Linux is naturally more secure than Windows. In addition, the main efforts of hackers are aimed specifically at the operating system manufactured by Microsoft. Instead of installing antiviruses and third-party malware cleaning tools, you just need to stick to the recommended repositories and you'll be fine.

Software development

The terminal in Linux is the trump card of this operating system . You can do almost anything with the terminal—install programs, configure applications and servers, manage the file system, and much more. Well, for developers the terminal is something like a totem idol. There is nothing more convenient than being able to run servers, train machine learning models, access remote machines, compile and run scripts from the same terminal window. This significantly speeds up productivity!
Let's share our experience.  My transition from Windows to Ubuntu - 4

Modularity

With Linux, the developer gets enormous modularity opportunities. You can easily configure anything, access any corner of your computer, control processes and manage virtual environments for different projects. Since your server is likely based on Linux, you will find it easier to emulate behavior, use similar software and packages, and automate workflows for deployment processes.

Working with remote Linux servers

Most of the servers that power the entire internet are based on Linux for many reasons that I won't list here. Linux provides all the tools you need to develop scalable, secure servers. Thus, mastering Linux for setting up and maintaining servers is a must for any IT entrepreneur who manages end-to-end applications. In such a situation, while working with Windows on your local computer, you will have to use third-party tools such as PuTTY to connect and interact with remote Linux-based servers, which is not so convenient. For example, to copy files, you need to download another tool when you are using Windows. A huge advantage of working with a local Linux-based machine is the ability to connect to any remote server using one line running in the terminal. Hosts can be saved to a file, as well as SSH keys and usernames, so all you need to do to connect via SSH is: ssh ofir-server And that’s it, you’re connected! No passwords required. This is a simple demonstration of one of the many options available to configure and support Linux-based servers using a local Linux-based machine. Most popular cloud providers also have a CLI (command line interface) for easy integration.

Introduction to low-level OS principles

The Windows implementation is very high level. In other words, you are faced with almost no internal problems and implementation of the operating system itself. In Linux it's just the opposite. When using Linux, you often come across settings that need to be done from the terminal, by editing files, adding scheduler tasks, updating software, installing drivers, and so on. When working with Ubuntu, AskUbuntu.com is your friend. Not only do you gain more opportunities as a developer, but you also learn (sometimes the hard way) how to solve problems, monitor the machine for potential problems, configure various components, and much more.
Let's share our experience.  My transition from Windows to Ubuntu - 5

Not everything is perfect, but still

  1. Becoming an Ubuntu user has a learning curve. Some things that were done automatically under Windows will now need to be configured, perhaps they will need to be configured using AskUbuntu.com. Expect fiddling if your computer has special hardware such as GPUs.

  2. I believe that every IT entrepreneur should be a bit of a designer, or rather have minimal graphic design skills. Unfortunately, Adobe has not released any of its products for Linux users, so it is not possible to run them directly. The alternative in Ubuntu is called GIMP. This is free software that satisfies all the basic requirements of a developer-designer (and even a little more).
Despite the shortcomings, I don't regret switching to Linux. Now I work using Ubuntu all the time, and I even regret that I didn’t switch to it a few years earlier.

conclusions

Linux is not for everyone. As stated above, you should check whether it suits your daily needs. But if you consider yourself an IT entrepreneur, developer, computer scientist, or just a programmer—someone who somehow coordinates or interacts with technical material related to writing code—you should give Ubuntu a try.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION