Hello friend!
Let’s talk about some skills every IT worker should have. IT is a huge field with many connected areas. No app can run without hardware. What can you do without the Internet (which is basically just a very large network)? Where does the data for my application come from? It doesn’t matter in which area of IT you work; you should have at least a basic understanding of how these concepts and technologies work.
The following will be just a short explanation of the topics and why you should know them. In later posts, I will show you the most critical aspects of them:
- Linux and the CLI
- Servers and Virtualization
- Networking
- Databases
- Basic Hardware Knowledge
- Basic Programming and Scripting
Now, let’s begin.
Linux and the CLI
Now, what is Linux? On the one hand, Linux is an operating system kernel, the base on which operating systems are built. However, more important are the operating systems based on the Linux kernel, which most people call Linux. Linux-based operating systems are primarily free and open source so that everybody can download and use them without licensing costs. There are many different versions of Linux (let’s focus on the operating system and call it just Linux from now on) available, which are called distributions. There are a few major distributions and a lot of derivatives that are based on bigger distributions. Such major distributions are Debian, Red Hat, or Suse. One of the most popular derivatives is Ubuntu, based on Debian. I use mainly Ubuntu and Kali Linux (a distribution focused on cybersecurity), but there are many options to choose from.
So why is it essential to know Linux? While Linux on Desktop PCs and Laptops only has a market share of around 3-4%, it plays a huge role in IT infrastructure and servers. Around 80% of all the public servers on the internet use Unix or a Unix-like system (which Linux is – it was developed as a free alternative to Unix). But that is not all. Many more devices like routers or firewalls use Linux systems as well. Android, which has a market share of around 40% of mobile operating systems, also uses the Linux kernel.
But what is the CLI, you ask? The CLI or Command-Line-Interface is the most common way to interact with a Linux system. Every operating system has some CLI that you can use instead of the graphical user interface. It is a text-based way of interacting with your system. While you can control your usual Windows computer just fine using the GUI, some things are easier or can only be done using the CLI. Windows servers also offer a GUI that looks just like the usual Windows operating system. However, Linux servers are usually controlled by using CLI without any graphical interface. That is the main reason everybody should know how to use the command-line interface.
Servers and Virtualization
Servers are everywhere. Every company uses servers in some way. Those might be managed by a service provider and used as “the cloud” or physical devices in the company. Nowadays, physical servers can be pretty powerful, which is often unnecessary, but having multiple smaller devices might be helpful. This is where virtualization comes into play. The operating system is not installed directly onto the server. Instead, a hypervisor (specifically, a type 1 or bare-metal hypervisor) is installed to manage the machine’s resources and run multiple smaller virtual servers or virtual machines (VMS), as they are called most of the time.
The difference between type 1 and 2 hypervisors is that type 1 is installed directly on the hardware instead of a normal operating system, while type 2 hypervisors are used in other operating systems. Examples of type 1 hypervisors are Proxmox or VMware ESXi, and examples of type 2 hypervisors are Oracle VirtualBox or VMware Workstation.
Another kind of virtualization is containers. Containers are even smaller and more efficient than VMs and can be tailored to specific tasks. The difference between containers and VMs is that VMs simulate the hardware on which an operating system is installed, and containers simulate the operating system itself.
I haven’t worked much with containers, but knowing how servers and VMs work is essential.
Networking
We use a very large network every day: the Internet. Without it, some people are really lost. But not only the Internet is important. Many devices work over networks, like most printers in an office. Some people like to print a lot. What happens if there are network problems? We also communicate over networks, be it emails or all the different messaging apps we use. It is very important to be able to troubleshoot network and connectivity problems to solve issues that can arise daily.
Databases
Databases are another thing we interact with daily without even noticing. Most applications store data in one way or another, often using databases. If you know how databases work, it is easier to understand how the applications you use work. It might also help you generate reports for your company or with some troubleshooting tasks. If you want to be a developer yourself, it is crucial to know how databases work.
In general, it can be differentiated between relational databases and non-relational databases, or SQL and NoSQL. While traditional SQL databases have tables with columns and rows, NoSQL databases can be structured differently, allowing them to be more flexible. There are still use cases for both types of databases, and I recommend everybody have at least a basic understanding of how they work.
Basic Hardware Knowledge
Many problems you face in a basic support role can be fixed with hardware knowledge, logical thinking, and Google. Even if you don’t work in support, you should know these things to be able to fix your own problems. Most people are overwhelmed with simple things like connecting a display to a computer. In combination, you should know common Windows settings to get your devices to work as they should. Something else that constantly has issues is printers. Do you know how to change printer cartridges? What can you do if a computer is not printing? How can you change the components of your computer? Or maybe you want to build your own computer from scratch? A fundamental understanding of how things work even helps with going on Google and finding solutions to different problems. And something to keep in mind… have you tried turning it off and on again?
Basic Programming and Scripting
Programming can be like magic. You can solve problems other people can’t. You can automate things to be done in a few seconds, which might take other people hours. Now, what is the difference between programming and scripting? Well, it is very similar. Some people might distinguish it by the project size, to smaller ones they refer to as scripting, and to bigger ones as programming. I don’t care; I only differentiate between programming and scripting languages. Scripting languages get interpreted by the computer in their text form. There is no other step necessary before that. That makes them very portable. On the other hand, programming languages need to be compiled before the program can be run. In the compilation process, the high-level programming language (the source code developers write) gets converted into machine code that can directly communicate with the hardware. Since this translation into machine code happens with scripting languages at runtime and not beforehand, scripting languages are generally slower than programming languages.
If you want to know what language you should start with, I have written a little about it here. In the end, it doesn’t matter. Once you understand the basic programming concepts, it is pretty easy to learn a new programming language, and if you are or want to be a developer, you will use many different languages over the years.
Conclusion
It is impossible to master every aspect of a complex and constantly evolving field such as IT, but knowing at least the basics of these topics is essential if you work in IT. Even with just the basics, you will know more than most people.