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.
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:
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.
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.
- Windows comes with almost every PC by default.
- 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.
- 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.
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.Performance
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.Safety
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!Modularity
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, AskUbuntu.com 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.Not everything is perfect, but still
- 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 AskUbuntu.com. Expect fiddling if your computer has special hardware such as GPUs.
- 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).
GO TO FULL VERSION