Preslav Mihaylov

Speaker, Software Engineer, Technical Trainer. Passionate about computer science, presentations and reading books

Tag: hardware

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.

Continue reading

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.

Continue reading

Introduction to Computer Memory


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.

For nearly two years, I have been leading programming basics courses. During this time, I have always wanted to deliver more knowledge to the students, than was intended in the course program.

However, I haven’t been able to find enough time during lectures to share this knowledge, so I decided to make a series of blog posts about fundamental topics in programming and computer science, which seem to be skipped in regular programming basics courses.

Continue reading

BulgariaEnglish