As I continue to learn more and more programming languages, I am somewhat ashamed to admit that I have yet to learn C. However, it is not because I am trying to avoid it.
The Reason
C is one of the top languages I wish to know, and know well. C is the backbone for so much code, especially in the Linux ecosphere that it is almost imperative for one to at least understand it. I keep trying to poke my head into open source projects, and so many of them are built or based on C (especially when looking at projects more at the distro and distro applications level).
Also, this spring I will start working on my CS MS degree, and while I think the first course I take will be theory based, I know several other courses that will require it (ex: computer architecture and compilers). Being comfortable with C will allow me to focus on the topics, and not on the syntax.
I have some experience with C++ from my software engineering course I took during undergrad, but that is about it. My goal however is to understand just plain C, which will hopefully make implementing other C-based languages such as C++ a bit easier. My ultimate goal is to eventually have C be one of my top 3 languages (I’m thinking LISP, C, and maybe python or ruby. I know. I’m old school.).
The Plan
In the last few weeks, I have set up and started looking at Learn C the Hard Way. I read the first section or two, but haven’t been consistent with working through it.
Now that it is December, I thought I should maybe start a new monthly challenge, or even a “12/25 days till something”. I was thinking about things I’ve been trying to constantly work on the last few months, and C popped into my head. Learn C the Hard Way fits particularly well because it is broken down nicely into small segments that I can maybe commit to being able to finish 1 per day.
I have to look ahead a bit to see if this challenge is doable, but i think that as of now, the plan is to try to complete at least 1 (I can work ahead if I want to) segment of the book a day for the month of December. I am also going to allow myself the ability to “pre-cache” segments ahead of time so that I don’t have to pull away and work on it during the holidays if I don’t want to.
Overall, I think this is a good plan that should allow me to start getting some C experience under my belt. I’ll be sure to update in the future with how it goes.
Update
So, now that I have made it a good bit through the month, I must admit that I have not adhered to this challenge very strictly. I have done many of the exercises, but I have fallen somewhat behind. Basically, I accomplished a bunch of other things and let this challenge slide. I will continue to work on it, but I haven’t been able to keep with with the one exercise per day rate. Oh well.
How I asked my Groomsmen