JavaRush /Java Blog /Random EN /We share experience. My transition from Windows to Ubuntu...

We share experience. My transition from Windows to Ubuntu

Published in the Random EN group
Beginning programmers are very 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 moving from Windows to Linux Ubuntu. The article is intended for beginners who know little about the world of Linux.
We share experience.  My transition from Windows to Ubuntu - 1
People who spend most of their time in front of a computer sometimes need to ask themselves questions about basic "computer" habits. I believe you have already guessed that we will talk about the operating system that each of us uses every day. Now Windows is 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 see only Windows users and maybe MacOS, so you do not notice the alternative. Most people think that Windows is the only option for their PC.
I have to admit: Windows is well designed, easy to use, great for most user tasks, and updated regularly.
We share experience.  My transition from Windows to Ubuntu - 2
The alternative to Windows that I'm going to talk about is Linux . This is a family of operating systems based on the kernel, which is called the “Linux kernel”. Linux is Unix-like, which means it is based on the same principles as Unix- based systems (MacOS, for example). Most Linux builds are completely free, community developed, open source, and distributed in the form of distributions. Among them are Ubuntu , CentOS , Debianand so on. A distribution kit is a set of programs with a convenient (in most cases) installer, ready to run on a device. Each of them has its pros and cons and have many applications. Linux is quite a “light OS” in terms of resource consumption, which is why 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 moving from Windows to Ubuntu has resulted in one of the biggest productivity gains in my career.

How did I decide on 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 computer running Windows, barely allow me to make progress in terms of latency. I thought it was hardware related, so I decided to upgrade to a Lenovo Y50-70 computer with 16GB of RAM and a 512GB SSD hard drive.
We share experience.  My transition from Windows to Ubuntu - 3
After installing the necessary software to continue developing the project, I realized that I was facing similar problems again, but on a brand new computer. There were not many applications in my work that used large amounts of RAM, and, of course, I expected my new PC to work like a spaceship. But this did not happen, and I realized that I needed to change my strategy. I had a natural assumption that the problem was not in the hardware component, and I began to look for an approach to programs. I worked with Linux for a while in college and now I've decided to explore this option in more detail. Ubuntu is the most popular distribution of this operating system for PC. It is available as a client "custom" version, as well as a server variant. It was this duality that tipped the scales in favor of Ubuntu, since I needed both a client and a server OS. I looked at a lot of 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. That sign turned out to be a virus attack that forced me to back up all my files, format my hard drive, and then start working. Only this time - with the operating system which made me back up all my files, format my hard drive, and then get started. Only this time - with the operating system which made me back up all my files, format my hard drive, and then get started. Only this time - with the operating systemUbuntu . 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 gave up on Windows completely was my desire to completely immerse myself in Ubuntu without the possibility of returning to Windows. Here are some of the lessons I learned during my transition from Windows to Linux . They may be of interest to any user, but are mainly intended for developers, coders, programmers and every person who writes code or creates products.


Linux is faster than Windows 8.1 and Windows 10 due to its lightweight architecture. Since switching to Linux, I've noticed a dramatic increase in speed and performance when using the same tools I used on Windows. Linux supports many powerful developer tools and lets you easily manage them.


Linux is open source software. Theoretically, anyone 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, in terms of security, Linux is naturally more secure than Windows. In addition, the main efforts of hackers are directed precisely at the operating system produced 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 everything 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 start servers, train machine learning models, access remote machines, compile and run scripts from the same terminal window. This greatly speeds up performance!
We share experience.  My transition from Windows to Ubuntu - 4


Along with Linux, the developer gets huge opportunities for modularity. You can easily set up anything, access any "corner" of your computer, control processes and manage virtual environments for different projects. Since your server is likely based on Linux, it will be easier for you to mimic behavior, use similar software and packages, and automate workflows for deployment processes.

Working with remote Linux servers

Most of the servers that keep the entire internet running 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 to set up and maintain servers is a must for any IT entrepreneur who manages end-to-end applications. In such a situation, while working with Windows on a 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 machine is the ability to connect to any remote server with a single line running in a terminal. Hosts can be stored in a file, as well as SSH keys and usernames, so all you have to do to connect via SSH is: ssh ofir-server And that's it, you're connected! No passwords are required. This is a simple demonstration of one of the many options for configuring and maintaining Linux based servers using a local Linux 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 have almost no internal problems and implementation of the operating system itself. On Linux, it's just the opposite. When using Linux, you often encounter settings that must be made from the terminal, by editing files, adding scheduler tasks, updating software, installing drivers, and so on. When working with Ubuntu, is your friend. Not only do you get more options as a developer, but you also learn (sometimes not easily) how to solve problems, monitor the machine for potential problems, tweak various components, and much more.
We share experience.  My transition from Windows to Ubuntu - 5

Not everything is perfect, but still

  1. Becoming an Ubuntu user is based on a learning curve. Some of the things that were done by themselves under Windows will now need to be tweaked and may need to be tweaked using Expect fiddling if your computer has special hardware such as GPUs.

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


Linux is not for everyone. As stated above, you should check if it matches your daily tasks. But if you consider yourself an IT entrepreneur, developer, software scientist, or just a programmer - someone who somehow coordinates or interacts with technical stuff related to writing code, you should try Ubuntu.