## A computer science course for craftsman

When I started studying programming and computer science, I was capable of doing it from morning until dawn. It was an addiction. It felt like those days, when I was playing World Of Warcraft. Only this time I was doing something a lot more useful. The reason for my dedication was my deep interest in learning how things worked. How do you make your own exe file? What is it like to make a game? Can you make your own Facebook? But as you advance more and more into programming, you find out that much of the things you are interested in are hidden behind various abstractions. Nowadays, when you want to draw a pixel on a screen, you call the magic function Draw(x, y), from some library and it does the work for you. You don't get to manipulate the bits of the screen yourself. And this high level of abstraction is what keeps the industry going forward and lets you focus on higher-level tasks such as choosing the best algorithms for processing the data you are working with, or focusing on more sophisticated topics such as machine learning. But I am that kind of guy, who always strives to delve deep into the details of the low level nature of machines. I am not satisfied from knowing how to use a function for drawing a cat on the screen, I want to know what are the actual mechanics done on the bare metal for achieving that. I'm not satisfied with knowing that you build a C# program by clicking Ctrl+F5. I want to know what is the process of transforming a stream of text into a stream of bytes, that the computer knows how to interpret. This genuine interest in the nature of computers is what fuels my passion for computer science. And if you are like me, then I have a challenging conquest for your weary mind, young padawan.

## Negative binary numbers

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Computers store data using numbers and last time, we covered how they store positive numbers in binary. But our adventure will be incomplete if we don't present how to store negative numbers. This time, we will explore different variants of storing negative binary numbers and we shall see why do we store them that way.

## How does the processor work

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

In the previous post on these series, I explained what computer memory is and what different types of memories there are. This time, we will cover how the processor works, what components he has and how he uses them.

## Starting the journey…

Greetings, I am Preslav and this is my first ever blog post. So I have had all these ideas for sharing knowledge about different topics about computer science, interesting ideas I encounter in the books I read and some struggles I have had as a software engineer and technical trainer. There is a LOT I would like to talk about and I cannot cover it all in a single blog post. But let me give you some insight on what to expect.