Grow through what you go through
The objective of being human is to grow
HEAT CHECK
In my journey to deep diving and becoming a kernel developer I have decided to humble myself by sharing small projects on the internet, and in turn, write more to my blog with the impending doom of public critisizm.
Anywho, while working on learning the C programming language to add to my existing understanding of Python and Bash (and to be able to read kernel code and driver code for the linux kernel)
I picked up a book from the reddit blogs called “The C Programming Language 2nd edition” by Brian W.Kernighan and Dennis M. Ritchie (co-creator of the C language).
I found the book online for free and decided to share it here.
Self Reflection
Over the years I have learned and been exposed to a lot of different technologies and languages, methods, diagrams, and the likes. When working I try my best to prioritize documentation because it’s the only way to organically keep records of changes, knowledge checks, and more. However, in my personal time I never seem to have time or never seem to be able to write out exactly what I’m trying to convey my blogs, at least for me, are supposed to be a reference sheet and timestamp of when I learned something or how I solved it. It should prove as a good enough source to bookmark for others to study, but as a creative I tend to start writing about how to build a bike and go into the history of bmx and bicycle racing and the tour de France before mentioning the mechanical structure of riding a bike. This is what has triggered my close circle to call my topics “Long A** Stories”.
Growth
I’m now learning to accept that as who am I and who I’ve become over time instead of trying to change that my blogs are now an ever lasting project that I plan to continue to draft and write and reflect on for years to come. If it helps you or gives you insight on a technology of today or old tech from yesteryear than it has served some kind of purpose for you and I in turn feel great about that. If it gives you insight on who I am as a person or my revolutionary growth from loving a tool to no longer using a tool, than that’s great too. ehatevery these blogs do, they shall do. It is no longer in me to dictate or compare my writing styles or thought patterns to the likes of othe medium blogs or LinkedIn think pieces. The objective of being human is to grow and that’s what these blogs will do… now…. my project.
Being in Project Mode
To make a long story short for me to achieve my year-end goal and actually learn a new programming language I need to set boundaries and limitations and one of them is to not use Facebook or Instagram apps because I tend to spend a lot of time doomscrolling on those platforms. My wife Letecia has changed my passwords on both platforms so I can’t look at any Meta apps until I can write code in the new language that I’m learning and rewrite the same application in a language that I already know and prove to her what the differences are and to give her, with confidence, a way to show that I’m understanding the new language and not wasting my time or getting distracted.
Sounds like a lot of mumbo jumbo but my eife has been my rock and has been helping me forever by doing this and it works out well. I tend to re-read Cal Newports Digital Minimalism annually vis audiobook or the physical copy I have laying around it and helps ground me on keeping focus on the things that matter.
I personally call these time “being in project mode”. It’s something I do to clear myself from distractions and finish at least one project (regardless of size). It’s helped me get to where I am in my career and my wife has been patient and protective of this focus I need. It’s pretty dope. Y’all single people in the world gotta find you one of these “wife” things. It’s pretty good, pretty good.
Temp Conversion Project
My Temp conversion project in C and Python is a simple temperature conversion application that will convert temperatures in Celsius or Fahrenheit (or Kelvin) and convert them. I am a bit more proficient in Python so the python script can be read easily and has inputs that allow you to write out a number in a specific temperature and have it be converted for you. The C based project only takes the temperatures from 0-300 in interactions of 20 and prints out the difference in Celsius. So for this example, the two projects don’t do a 1:1 match and produce the same results, but they will soon. Reading the C programming book ha soepned by eyes on how my bash scripts and Python scripts have been written. I now have an understanding of why C is so impressive and why it became a foundational blueprint for other languages (if you want to call it that).
I think for now this is a good step and solid intro to learning C and a good step to kernel development. I have been reading more and more through the kernel newbies website and think that as long as I get how C works and start understanding memory allocation and pointers I should be able to start submitting clean up patches and note-worthy bug fixes to drivers or kernel code by the end of the year. It’s ambitious but I’ll be able to look back at this, and this little project, and be proud that I started. Thanks for reading.