Learning C Can Literally Make You Invincible

30 Aug 2018

OK, listen, obviously I don’t mean that you’ll become bulletproof, but hear me out. I believe that learning C, or any other programming language for that matter, can really improve the way you think, act, and deal with life in general. Principles that are paramount in code and software design are oh so applicable to the real lives we live, that learning to code is like a crash course in solving the problems of day-to-day existence. C in particular is a gritty, basic language, and the techniques you must learn to wrangle some C code into a fully- fledged executable will translate very well in the challenges you face away from the screen.

How?

I’ll give an example of what exactly I mean here. Suppose you have a dream (as MLK has inspired us to do) - something like, “I want to be rich.” Of course, if there was just a button that you could press to become rich, that dream could be accomplished no problem. Alas, there isn’t and I don’t think one will be invented anytime soon. What that means is that if you had that dream, you would have to achieve it with some sort of plan, and for most people, the biggest question is, “where do I even begin?” Enter software development.

Break it down!

The general principle behind any and all programming problems is subdividing that problem into smaller ones. You have to develop a text editing program? Well, think about all the things you can do in one of those programs, and then think about all the things you have to do to implement each of those properties, and then think of the syntax you have to type to do those things. In your implementation, if you have a complex property like autocorrect, break it into smaller functions that are called by a bigger function. Have a function that reads what you type, another function that searches a database for similar words, and another function that replaces what you typed with what you might have meant. I could go on and on, but the basic idea is that given any problem, you can break the solution down into a number of steps, such that “Do task X” turns into “Do A, then B, then C, in order to do X”. You might even try this exercise for an assignment or project that youre stuck on; stop coding for a bit, and just think about what every element is that builds up to the final solution.

In conclusion…

So, at this point, we can see how the principles for coding a text editor also apply to buying your first house, or becoming a world renowned musician. Any and every final truth has smaller truths that must be satisfied in order to reach it. Break anything down and you can solve it. Will learning C make it so that you can jump off of buildings and defeat Frieza with ease? Probably not. But will it make you a more prepared, level-headed individual in the face of major or minor adversity? I’m willing to bet it will.