Table of contents
No headings in the article.
My heart could not contain the immense joy overflowing from it when I braced up to join one of the hardware savvy communities in my university- the UTSSA (University Technology and Science Students Alliance). I dreamt daily about how I will build cool pieces of stuff like; building a device that will give me infinite access to the internet at zero cost! Crazy right!! I was also set on a course to fulfilling one of my student's dreams of building a honking system that screams people's names instead of the usual "pim-pim-pim". With all these dreams to realize, I was fired up to enter the world of embedded systems and etch my name on the silicon of micro-processors.
My first day in class was a really tough one; our tutor was everything wrong with having someone who knows too much teach you how to peel a banana. Well, I have a knack for learning programming languages and oftentimes, I'm always caught up in the genjutsu of those languages: I mean, I keep on exploring the language till the love of the language just fades away. JavaScript was the first programming language I learned, yes, that's the language the internet speaks. I moved to Python because I don't want to be left behind in the world of AI. You may be wondering why this writer is beaming too much light on his background; wait for it comrade!! Our embedded systems tutor told us that C is the language in which the hardware speaks and as such, being a tech-savvy community with a standard, we'll be having to program micro-controllers of the PIC family instead of using development boards.
I thanked my stars because I wasn't the only one left in the world who doesn't like taking shortcuts. Shortly, we were introduced to the C programming book by Dennis Ritchie and Brian Kernaghan. The first chapter of the book was titled "A tutorial Introduction to C". Few minutes into the teaching, literally nobody was understanding what our tutor was trying to pass across. Having to declare my data types explicitly, formatting strings before I could print, the idea of just a single main function doing the whole thing and my frustration heightened because I had to deal with an error while printing "Hello World", the error was that I didn't put a semi-colon at the end of my code. What sort of language is this? Why do I need extra senses to grasp and know about the internal workings of my code? Sadly, I could not cope with the pace at which the tutor was exuding knowledge and in addition, the principal text wasn't appealing to the reading motor in my brain. I quit the community and promised myself to learn C my way.
Today marks my 9 months journey of exploring the world of C through the use of online resources, I must commend Neso Academy and Ivor Horton, the former has a way of breaking down concepts into understandable bits while the latter knows how to pass knowledge across by coming down to the level of the reader. Now, what has changed about me ever since my journey into the land of C? My thinking has been revolutionized. I'm now more of a responsible programmer who accounts for every single variable and every logic in his code. I've transfigured into one of the brains behind the programming of the NodeMCU board used in our IoT-Based Automatic Fire Detector and Extinguisher project. I can now grasp concepts easily and I'm super excited that I understand the inner workings of my computer system.
The drivers on my system are built using C language, a good number of the OS used today are built using C, how about C being the building block of countless programming languages? The list of C's applications is inexhaustible; probably you've been discouraged from learning C because you feel like it's a language that's overstayed its welcome, especially in this age of blockchain. I hope my story inspires you to dig into the world of C and who knows, you may be the Alan Turing of our age. Thanks for reading!!