Preslav Mihaylov

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

The Books I Read in 2017

The past year, I was able to read 50 books. Some of which I read more than once.

Today, I will share with you what I think about all these books.

In general, I try to read books which I can directly apply to the things I am interested in – computer science, presenting, personal finance and personal development.

Apart from them, I read some fiction books as well, as I find some of them interesting. They help me sleep better at night.

But by the end of the year, I realized that there are lessons in some classical fiction books. That is why I tried reading some more uncommon books for me, such as “The Picture of Dorian Grey”.

I realized that you can learn all the things you read in self-help books, but they are hidden in the stories from fiction books.

The information is not so obvious, but if you look closely enough, you can see it.

So my goal for next year is to read some of those books as well.

Books from Dostoevsky, Tolstoy, Hemingway. Bad thing is, I’m not very good in analyzing texts, so I can’t see the lessons those books show me. But, hopefully, at one point I will be able to grasp the gems from them as well.

Now, let’s look at the list from 2017.

Continue reading

Hosting an AMA Feed in 2 days!

After my most recent post (How to properly use macros in C) I was invited to host an AMA (Ask Me Anything) session at AMA Feed.

This is a site, where various professionals hold sessions where anyone can ask them questions about their career, specialty and themselves.

If you want to get in touch with me, then feel free  to join and ask me anything!

My session will be on the 23rd December (In 2 days!) 10 AM Eastern Standard Time (7 PM GMT+2, Bulgarian time).

And this is a link to the session itself: https://TechAMA.com/472982

Looking forward to hearing from you there.

How to properly use macros in C

One strange phenomenon when coding in C is using macros.

This is not something which can be seen in modern programming languages (other than C++). And that is for a reason.

Using macros can be extremely unsafe and they hide a lot of pitfalls which are very hard to find. However, as a C or C++ programmer, inevitably, you will encounter macros in your coding life. Even if you don’t use them in your own project, there is a high chance you will encounter them somewhere else, such as a library.

Your duty is to understand why using this programming feature is dangerous and what dangers it holds. If you don’t, then you can run into some pretty nasty errors which are hard to debug and discover.

Continue reading

The Productive Developer @ WordCamp Sofia 2017

After spending one great weekend at WordCamp Sofia 2017, I feel energized from all the great people I met there and all the awesome talks I saw.

It was a great event. WordPress people sure know how to make a conference. What also caught my attention was the professionalism of the speakers there.

Despite being a community event, most of the speakers had very professional slides and presented pretty well. On most of the events I go, I see those “Death by PowerPoint” presentations and I feel like that’s just how things are.

But at this event, I saw the tendency of many speakers getting literate in terms of their presentation design. They really put a lot of effort in their slides and presentations.  I even saw some things which were helpful for me as well and helped me improve my presentations!

It was a great conference. If you want to check out all the awesome talks from WordCamp Sofia 2017, visit this playlist.

My talk was less WordPress driven, but even so I believe it can be of great use to anyone who cares about being as great of a developer as he can get.

My talk is about Productivity. About the mindset behind being disciplined and performing in your work and using the right tools to help you achieve more.

It’s titled The Productive Developer.

The idea for this talk evolved through my blog and my original post with the same name.

So, if you care about advancing yourself and your career, give it a look:

The build process of programming languages


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.

When I wrote my first program, my trainer told me I merely wrote the source code. Now, I have to translate it to a language understandable by computers. We call that compilation. It happens by clicking Ctrl+F5 (In Visual Studio). And there you have it, your program is now an executable.

That’s how they initially thought me what the build process of a program is. And that is a good enough explanation for beginners. But at one point, I realized that when I click Ctrl+F5, some processes happen behind the scenes which we don’t see. Those processes we will explore in today’s article.

And did you know, that when you click Ctrl+F5, the processes used are different for different languages? Have you ever wondered  why is it harder to code in C++ than it is in C#?

Well, we won’t be able to explore the whole details of the last question. That has a lot to do with language design and the decisions being taken during the years. But we will explore the fundamental difference between those languages. That difference lies in their build process.

Continue reading

Older posts »
BulgariaEnglish