October 2020 summary
The plans were so great and then it was as usual. That’s a rough translation of one of popular Polish’ quotes. I was so eager to continue my lucky strike from September, but the universe decided otherwise. Beginning of October was a little messy in my private life. My mind was in a different place, therefore the chance to keep on BareMetalDev was non-existent. That’s it.
I went back to business on the 15th of October. It was a pleasant return as I’ve had an opportunity to read ‘C++ today’. The book I find both interesting and amusing. That’s why I’ve written a short review of it.
As a next goal I’ve decided to get back to C programming. I wanted to finish a topic of how C handles data under the hood. Out of this two articles emerged.
First one about storing the numbers, bits, bytes and words in modern architectures. Also, I’ve finally had an opportunity to explore the low-level details of floating-point numbers. That is something that in my opinion every programmer should know – no matter the language and domain. The second one is a natural continuation of chars handling in C with a special emphasis on UTF. In higher level languages like JS, Java, C# or Python that is not a problem at all. Just provide an input, and then a magic happens. With C it’s not so simple, but again, learning all the tiny details of it was pretty fun.
After dealing with characters I couldn’t resist going into the topic I’ve until now just glanced over – floating-point numbers and inaccuracies when processing them. What I’ve always done when using float and double in Java was not to use them 😉 (there are substitutes in a standard library for processing currency values). This time I’ve gone deeper and closer to metal. The result was post about floating-point numbers in C.
Here I had to stop for a while. I’ve wondered what to do next. The thing was that a course I’ve enrolled in a couple of months ago (pretty extensive Java ecosystem testing course) just started. So I had to cut down one day every week to actually participate – it would last for circa 14 weeks. With 5 days a week at my disposal I’ve decided to continue with learning C programming. However, based on my experiences with books I’ve used to write aforementioned articles I’ve decided to use freshly published book by Robert C. Seacord – Effective C. I was convinced by three things – its reviews, brevity (only 374 pages) and publication date (August 2020).
You may ask why change of the book (again!). After writing the articles I knew at a time I do not need 1k-pages long bible of C (Prata/Deitels/Crawford and Prinz). Just wanted to get a comprehensive and short introduction to the language. Getting to know details of characters/numbers/encodings was fun, but was also taking a lot of time. If I wanted to start practising my C programming skills I had to speed up.
I’ve read up till a fifth chapter of the book but then stopped for a while. An upcoming chapter was about dynamic memory allocation which is a topic directly related to pointers. To be honest in the book I’ve read, a topic of pointers took… maybe two pages? I’ve felt that this kinda important language part is still a mystery to me, and requires greater attention. So I’ve decided to stop for a moment and picked up a book by Richard M. Reese titled ‘Understanding and using C pointers’. Looking at the table of contents I was not sure if I need to read the whole book right away, but for the time being settled with the first two chapters. Besides, it was the last day of October, so I’ve only was able to read first and second chapter. However, in my opinion that’s enough for the time being – I feel more grounded in this area.
- 2.10.2020 to 14.10.2020 – some personal stuff, forced break from writing.
- 15.10.2020 – I’ve started reading C++ today from O’Reilly
- 16.10.2020 – Finished the book.
- 17.10.2020 – I’ve written a short review of it.
- 18.10.2020 – Free day (Sunday)
- 19.10.2020 – Read a lot of resources about UTF in C (books/articles). Started writing a
blog post about it.
- 20.10.2020 – Still writing.
- 21.10.2020 – Done with a post about multibyte chars in C.
- 22.10.2020 – Started writing a post about how does C handle floating-point numbers.
- 23.10.2020 – Started writing a post about how does C handle floating-point numbers.
- 24.10.2020 – Finished the post about floating-point numbers in C.
- 25.10.2020 – Free day (Sunday)
- 26.10.2020 – Testing course started.
- 27.10.2020 – First and second chapter of Effective C. I’ve also bought a domain and hosting solution for a blog. I’ve used some promotion coupon (Halloween promotion) – it was quite cheap, so even if something fails along the way it won’t cost me much. Although, if You’re reading this, and see baremetaldev.com domain in the address bar – it means it worked 😉
- 28.10.2020 – Third chapter of Effective C.
- 29.10.2020 – Fourth and fifth chapter of Effective C.
- 30.10.2020 – started Understanding and using C pointers.
- 31.10.2020 – Understanding and using C pointers – first and second chapter finished.