Sometimes we think that a certain thing is simple, but in the end it appears it’s not as simple as we have thought. I mean, BinarySearch is pretty simple, right? Every meaningful programmer can implement a binary search algorithm. Everyone knows that InsertionSort sucks and QuickSort shines, yep?
I’ve always been interested in how things work under the hood. Unfortunately, computer science courses I’ve taken in the university haven’t covered low-level details of how a computer works. And the last Uncle Bob’s blog post “Make the Magic go away” convinced me that it’s time to play a little bit at a low level. At first I was thinking about reading a book on IL written by Serge Lidin (as far as I’m a C#-programmer), but then I decided to take a look at the lowest level a programmer can dive into – Assembler. So I made a couple of queries on amazon and found an interesting book named “Assembly Language Step-by-Step: Programming with Linux” by Jeff Duntemann. This book has a pretty high rating and good reviews.