For the sake of brevity, an OS or operating system is a piece of software that runs your hardware in a computer. It provides a level of abstraction and offers the convenient user experience that we all know and love. The invention of modern day operating system helped to bridge the gap between humans and computers. Computers existed before operating systems came about. However, using one at that time required a high degree of computer knowledge that most people did not have.
As a computer science student myself, I was forced to dig deep into what a computer is and how they work. Contrary to the belief that computer science is just about learning algorithms and coding. There are many layers in a computer
There is the hardware layer(hard drives, CPU, RAM, registers, cache). Then there is the operating system and application layer. Choosing an operating system will affect the entire composition of a computer.
As a computer science student you are forced to go down these layers and interact with them. Choosing the right operating system for these tasks can make a difference in your learning experience and how successful you will be.
Window is not the same as mac. Mac is not the same as Linux. Linux is not the same as Windows. Although they achieve similar goals, how they are implemented is a different story. Remember as a computer science student, you are not concerned with using the operating system, because anyone can do that. You are concerned with how Pit works!
Note: The order is not an indication of one being better than the other.
- Window - The most popular operating systems, and chances are, you are running it right now. This is good for basic computer tasks like file management and browsing the internet. You can also do programming on window, but some of the tool-chains is not the most forgiving to install or use.
- Mac OS - Most developers you see at hackathons or conferences will likely sport a macbook running Mac OS. There are good reasons for that: the hardware is good, it’s reliable, no-headache when setting up new tools or working with existing popular technologies, stunning interface. However, the main benefit for a computer science student is the terminal. Even if you are using an IDE or integrated development environment, you will find yourself coming back to the terminal from time to time. The terminal provides some very powerful features such as file management, installing packages and modules, compiling your code, and executing your code. Since Mac OS is based on Unix, the development experience is pretty similar to linux. However, since Mac OS is proprietary, you are prevented from seeing the source code and doing certain things that violate the term of use. Even if it was for learning.
- Ubuntu - Open source, linux distribution. These two things are the main reason why every computer science students should use Linux. There are many distributions of linux that you can choose from. This flexibility allows you to hop between different linux operating systems while still maintaining the core functionality. The fact that it is open sourced means that you can look at the source code and try to learn how it works. you can even change it if you want to! This transparency provides the perfect learning environment for a computer science students. The expectation is for you to learn how a computer works, software and hardware. What better way to do that than by using a naked operating system. Similar to how you dissect a frog to learn how it functions, you need to dissect an operating system and all its underlying components to learn how a computer functions. In addition, you can install ubuntu on virtually any computer!
- Chrome OS - This one is relatively new to the market, but it is slowly growing into the developer’s community. You can use it to run python and Node, and support for linux features is slowing creeping its way in. Some of the main attractions of Chrome OS is its affordability and simplicity. Amazon sells these chromebooks for less than $500.
Whatever you decide on, know the differences between these operating systems and when to use one over the other. There will be a point in your education or career where you are not given the choice in which operating system to use. For instance, I had to use linux for my operating systems class or else risks failing the class because the tests used to validate the projects were written specifically for linux. So it is in your best interests to dap your feet in the water with what is available.