Sunday, 30 July 2017

Finished my new book

I realise that I haven't written about this at all before, and there are a number of reasons why I didn't write about this new book that I was working on before. Suffice it to say that after more than half a year of work I finally completed my new book titled 'Mastering C++ Multithreading', with it hitting the stores last Friday.

The book was published by Packt Publishing, and can currently be found for a mere 10 Euro/dollar on their website [1] with a normal retail price of over 40 Euro. It is also available via Amazon [2].

So far this has been my second book to be published. The first one was also published via Packt, on the topic of game development on Android devices. This new book was a lot easier to write for me, to be honest, as I have far more extensive experience in both C++ and on low-level topics such as multithreading.

Having such an interest in low-level details shows for example in the second chapter of my new book, where I dive deep into how multithreading concepts as well as general processing is implemented in the hardware. Though chapters like these cost me an enormous amount of time in research, one of the things which I have learned over the years is that the most important thing for a software developer is to understand the underlying hardware.

I guess I had quite a bit of fun writing this book, even if it was quite an ordeal, with the past few weeks consisting out of me racing deadlines in order to get the book ready for publication by the end of this month. Yet I made it, and now I get to indulge in not having any imminent deadlines and immediate responsibilities.

One of the reasons why I decided to accept the task of writing this book when someone from Packt approached me with the idea is because I absolutely love both the C++ programming language and fundamentals such as multithreading and associated concepts such as atomics. C++ is wonderful to me - even after over 15 years - for being a highly flexible, multi-paradigm language. Computer hardware fascinates me to the point where I'm working on writing my own CPU architecture in VHDL, targeting FPGAs. To write about this passion was pretty much irresistible to me.

Do I feel that the resulting book is perfect? Far from it, but as one notices after using a language like C++ for nearly two decades, there's always so much more still to be learned. Worse, there are new concepts and new inventions just waiting around the corner. Much like older languages like COBOL, I expect C++ to be around in 20, 40 years time, each time adapting to new hardware and implementing new concepts. I look forward to updating the book with any such new concepts over time.

The last two chapters cover relatively new concepts, pertaining to distributed computing (clusters) and GPGPU. The latter topic especially is of a lot of interest to me, as adding a powerful vector processor to a system can give an immense boost to certain types of operations. I'm looking forward to experimenting more with that over the coming years.

For now it's onwards with new projects :)



1 comment:

Patrick Horgan said...

Cool. I look forward to reading it. I'm retired, but I can't stop coding.