C logs
. The whys . May 25, 2025 .
I’ve learned Python haphazardly and coded a few projects, but if one spends even a modest amount of time in the field of computers, in the nitty gritty of software or hardware, it becomes painfully obvious that Python is not it. Unless all you dabble into is AI or scripting, you realize how limited/limiting Python is. I’ve made a few small hardware projects with microcontrollers that used a compressed and stripped down version of Python called Micropython. It worked yes, but with tremendous limitations. It takes a lot of computer memory (in microcontrollers term) to run Micropython and thus not many people use it to write software for hardware projects and in turn doesn’t have nearly as many libraries as C/C++ (300 ish as opposed to C/C++’s tens of thousands).
Anyways, I could go on and on bashing on Python but that’s not the point and to be fair, it’s actually a good first language that’s easy language to learn. But, we all grow up at some point. I have a few points on which I would like to elaborate as to why I’ve decided to finally learn C.
Why C?
As I was making the goose writer, I was met with a lot of roadblocks that were deciding factors in the hardware and software choices. My initial goal was to create a device that would be powered solely by one or two microcontrollers and an ePaper display as the main display. I had those two building blocks in mind. One of my priority was to get the longest lasting battery life that I could muster. In order to achieve this, I would have to choose the right libaries and optimize the code to filter out unnecessary CPU cycles. It didn’t take long to realize that it was futile to try this with the language that I knew (Python/Micropython) for the simple reason that Python/Micropython are resource glutons. The wrong tool for the job.
Other than embedded systems, there are many other areas of computing where learning a lower level language, like C, is tremendously valuable. Most modern Operating Systems are programmed in C because in C you have direct access to memory and thus complete control over how the program runs. This is also the reason why game engines are made in C. One of my goal this year is to be able to start developing a small game in C for the Playdate (it has a C SDK).
But, won’t AI send software development into irrelevancy?
Whether it does or it doesn’t, I’ll be leaving that debate to other people who know what they’re talking about. As for how I feel about it – I’ve arrived at a place in my mind in which this very question becomes irrelevant. The reason is because my ambitions and intentions are probably very different than most people who are willing to tackle the difficult process of learning a language.
3 reasons why I choose to embark on this journey
-
AI hinders your brain. It merely gives you half assed results and obscures the process that went into it. Putting the quality of the output aside, AI hurts the learning process in the long run. There are ways to use AI in a way that aids your learning process, but you have to be careful. It is very easy to slip and get the AI to spit out the answer for you, but there’s no learning in this – only leaning. Leaning like a crutch. Learning happens during the process between an idea and its result. If I go directly from the idea to the result, I skip all the learning. It cannot be fast-tracked like this. I’m not on a rush. For someone who’s not on a rush and learning is the point, slow and steady is actually the best and arguably the quickest way to drive it into your brain so that it stays there. Repetitions, repetitions, repetitions. Coldfusion made a great video about this which goes into further detail and explaining it a lot better than I can.
-
Interest and learning for the goal of learning. The classical way, the self-sufficient way. A quote from Christopher McCandless (from the movie Into the Wild) has always stayed with me and encapsulates this point very well: “how important it is in life not necessarily to be strong, but to feel strong, to measure yourself at least once, to find yourself at least once in the most ancient of human conditions, facing the blind, deaf stone alone with nothing to help you but your hands and your own head.”. Now, we’re not facing the blind and deaf stone, but you get the point. Learning a language is a long and arduous process but a very rewarding one. To feel strong from your own knowledge is priceless. Nobody can take that away from you.
-
I have a family history of dementia in my family and now in my mid-30s, I’m deciding to consciously make the effort of training my brain like a muscle. Without mental health, we have nothing. Studies suggest that being bilingual can delay the onset of the condition by up to five years. I’m already fluent in French and English, but one is never too proactive. “But, natural languages and computers languages are different”, I hear you say. Yes, they are. However, from a Vice article entitled Can Learning to Code Delay Alzheimer’s?, it says that “Professor Janet Siegmund of the University of Passau and her colleagues ran fMRI brain scans on 17 volunteers for a study in 2014.” and that “They found the first empirical evidence that both natural language and programming language require the same areas in the brain and that based on this, they’ve inferred that understanding programming languages and natural languages appear to be similar.”.
There it is. This is why I’m doing this. I’ll start this journey on Boot.dev as I’ve heard a lot of positive things about it as well as reading The C Programming Language and writing some code as I go. I’ll keep myself updated, by writing here – here and there.