BareMetalDev from 5 months’ perspective
It feels to me like it was a really long time ago, when I was writing my entry post for this whole project. Today it is over five months since I’ve started my journey on the path of mastery. What is more – my project has become officially public – I’m writing this post in the WordPress editor, not using GitHub markdown files. Therefore, some part of the journey is behind me, and now it’s time to figure out how to proceed further.
Let’s start with the past. Last five months were an adventure, both in terms of knowledge gained, but also in a sense of fullfillment. Of course there were ups and downs. Sometimes I just physically hated the fact that I ‘have to’ read or do something on the road to mastery. On the other hand – there were days when I couldn’t get enough of it. Days when only physical exhaustion stopped me from reading or programming. This sense of purpose, the road to follow, bumps along it – it reminded me of the old days when I was learning programming, or trying to do things that I wasn’t able to (due to lack of knowledge or experience). It is really nice to feel the joy of being a beginner again, despite it being sometimes hard and ungrateful.
What is more, the process is one thing, the other being an actual knowledge gained along the way. I’ve learned a lot, and I’m sure that this time was not wasted, as there are remnants of that with my notes about ‘Modern OS’ book or Roguelike AoC 2020. When it comes to writing, what is more (besides improving my English level), there’s always an idea in the back of my head – do I really understand what I’m writing? Will people reading this understand the concept I’m presenting? In my opinion, it adds difficulty level, however, it also makes the outcome better. I hope it will stay that way.
There’s one well-known Polish IT figure, who in an interview said a great thing about blogging (although, I think it is applicable to all content-creating activities) – ‘don’t write, document!’ I think it’s the best advice to follow when it comes to gaining knowledge, and sharing it with others. It makes the whole process easy, as the decision ‘what to write about’, is somehow non-existant. That’s why up until now, I did not plan in advance what I was gonna to do. Usually, my monthly summaries concentrate mostly on the things I’ve done, not what I was planning to do. My projects were somehow decided at the beginning of my journey, and then being reevaluated a couple of times, due to external conditions or limitations.
You may remember, that I’ve somehow made a commitment in my December summary, although then, I’ve decided not to act on it. I’ve accepted a position of a Team Lead in my company (starting beginning of the year), so there was a lot of unknowns back then. Now I’m sure that it’s possible to actually seamlessly combine my progress here with new tasks at work. A lot of people do it, why I should be different? It seems that my New-Year’s resolution is fullfilled – I’m writing a post of how I see the future. For the first time in the history of BareMetalDev, I’m looking a little bit further that next week. Here it comes.
My plan for upcoming months, is to finish covering the basics. Basics of what? Here’s the list:
- Low-level programming, including both C and assembly
- Knowledge gain in the area of operating systems
List seems to be quite vast when it comes to the scope, although, there are boundaries that I’ve decided to set. For the low-level programming, I plan to work with ‘C for advanced’ course (in Polish). It’s an initiative of experienced embedded programmer from Poland. It is a second edition of it, so I expect it to be tested already by the previous students. It consists of separate modules, and I plan to do them, but also along the way read appropiate chapters from the books I already have – ‘Modern C’, ‘C in a nutshell‘ and ‘C Primer Plus‘. I’ve already created a comprehensive list of them, so that’s covered. The course is starting at the end of February.
When it comes to assembly – in order to make it more fun – I plan to use Raspberry Pi 4 64bit to learn. It will be a small step towards embedded world, with the guidance from ‘Programming with 64bit ARM assembly language’ by Stephen Smith. However, that’s something I’m going to dive into after ‘C for advanced’ is finished.
When it comes to operating systems, I’m going to finish reading and making notes of Tanenbaum’s book. There are five chapters ahead of me, with one additional to read (OS design), but I don’t plan on making notes from it. I do not plan to go into homemade-OS-creation as many people do. I’m not saying, that it won’t ever happen, although, I don’t plan to do anything of such a thing soon. I’m sure that reading the last chapter itself will be fun. When the day comes that I will be interested in writing my own OS for educational reasons, I will 150% re-read this chapter, and make a lot of notes 😉
Ok, so what’s the timeline for all of this? It’s actually hard to answer. I don’t want to rush myself like I did during AoC. I want to go at steady pace, being sure that I’m covering everything that I need or want. On the other hand – in all goal-reaching-strategies out there, a concept of goals being SMART or SMARTER, and that includes setting up the time frame. Roughly, I think that I’m going to finish all that until September. I will be then celebrating my first year on the road to mastery, that sounds nice. To finish this post – I can only wish myself luck.
February 2021 Summary – Bare.Metal.Dev
[…] what’s the word? Distant! That’s it. It seems like millenia ago when I’ve written plans for the upcoming months. Believe it ot not, that was just three weeks ago! Time inflation at work […]