Tux the Penguin, the mascot of Linux.

Table of Contents

This will be updated as I write more articles

A Few Words

Disclaimer: I am no expert on Linux. I have not contributed to the source code, and I have not had extensive practice using Linux systems. I will certainly make mistakes throughout developing this series, and I encourage you to leave comments if you notice any. I will promptly go in and edit the article and give you credit for pointing out my mistake.

My main reason for writing this series is, selfishly, to increase my own understanding of Linux. I have always found that…


By Markus Spiske on Unsplash.com

Recently I finished my undergraduate studies at Arbitrary State School University. Majoring in computer science, I learned a whole lot about algorithmic complexity, operating system design, networking, etc. However, what got me through my studies were actually tips and tricks I learned outside of the classroom. These are all things I still use today in the workplace, and will continue to use in graduate school.

1. Visual Studio Code

In my humble opinion, VS Code is the single greatest text editor for students. The ability to install extensions makes life so much easier when collaborating with others on a project, using a new language…


Image from Amirali Mirhashemian on Unsplash.com

Ahh, the process. The first of many abstractions we will go over in this series, and the most fundamental piece of any operating system. Informally, a process can be looked at as a running program. When you sit down and type code, you are writing a program. Once you run your code, the active, sequential execution of your program is called a process.

A process needs a few things in order to execute. Namely, it needs access to memory and access to the CPU. Memory is necessary because, when a process is executing, the code is loaded into memory during…


Linus Torvalds, creator of Linux

In this section, I will go over some of the history of the Linux kernel, introduce some of the benefits of Linux, and discuss some of the core functions of any operating system.

Linux Who?

Linux was developed by Linus Torvalds, pictured above, in 1991. Linus began developing Linux as a personal project while studying computer science at the University of Helsinki. His intention was to create a free, Unix-like kernel. Over time, this project became one of the most used, studied, and revered systems to date.

Perhaps the most important benefit of Linux is that it isn’t a commercial operating system…


By Chris Leipelt on Unsplash.com

I feel that computers are often taken for granted. Time and time again, we don’t even consider the risks that, if we open a new application, it may overwrite the memory that is needed by another application. Time and time again we open our folders and create files, without ever considering the fact that we are not dealing with folders and files, we are dealing with 1’s and 0’s. Time and time again, we forget that there is a program that perpetually runs in the background on our computers, managing memory, processing power, and more. …


Image from Mohamed Hassan from Pixabay

What is an algorithm?

As a programmer, it is important to have a wide arsenal of tools at one’s disposal. This may include programming languages, text editors, packages, etc. Perhaps most importantly, it is crucial to have a firm understanding of the various types of algorithms that exist. These will becomes one’s most important set of tools in tech interviews and in the workplace.

For those who do not know, an algorithm is not a challenging concept to understand. Algorithms are simply well-defined, step-by-step solutions to problems. For example, there is an exercise in many computer science classes where students are asked to explain…


Amongst programmers, it is common knowledge that there are stark differences between languages. However, it is less commonly known that these distinctions between languages can actually affect one’s coding performance. Furthermore, there are specific languages, such as C, that simply encourage you to write better code. Many new developers seem to prefer Java and Python since these languages seemingly have the shallowest learning curves. However, beyond picking up the basic principles of computer science, these languages can actually be a hinderance for developers.

There are a few reasons why this is the case. The first, and most notable, is bloat…

Evan Wireman

Graduate computer science student with a passion for low-level systems.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store