Navigation

Monday, July 8, 2013

scrumptious comp sci

From the deepest realms of my mind is where I must dig with passionate love and hatred in order to successfully write a C++ code. 

The human mind is a funky one. While a child may be extremely imaginative and undoubtedly creative, many may argue that a child lacks the patience to thoroughly rationalize information. As we grow into adults and encounter situations which require some sort of logical thinking process (maybe practicing common courtesy, or trying to figure out how an exam is attempting to trick us in every way possible), our brains supposedly reason more than they used to when we were toddlers. 

Reasoning with children is a difficult process. I'm not even referring to a school setting where it is nearly impossible to explain some basic grammar concepts to them without some fidgety kids here and there. Just think of a common scenario where a child insists on buying his/her zillionth toy of the week, having forgotten that there are other new toys lying idle on the floor at home. Then the parent is likely to try to reason with (or scold) the child. Fact 1: You just bought the same toy of a different color yesterday. Fact 2: Your toy is not broken. Conclusion: You may still go home and play with the same toy and (possibly) feel the same joy as you would if you owned a blue toy truck instead of a yellow one.


When I began learning C++, it certainly felt like I was instructing a child.. a very stubborn child who only obeys me if I speak to him/her in with the perfect voice tone and language. Forget one condition and this child goes wild. In a good (and a bad) way, this child called the computer is unable to throw emotional tantrums at me if I instruct it incorrectly. Yet I must spend hours, maybe days, trying to figure out exactly where I misspoke in addressing this child who only speaks one language at a time. Furthermore, there is this identification process the computer child makes with the ASCII table that took me far too long to figure out. Well, that's the setback of having a mute child who only communicates with me through error messages on a monitor..

For me to communicate with my computer child requires the utmost patience. This patience isn't a patience I must practice with someone or something else, but is a patience I must learn to have with myself. The computer child is an inanimate object. I can scream viciously at it when it refuses to compile and read my commands as I desire, but it has no reaction. In the end, I only frustrate myself further. 

Programming in C++ certainly requires concentration and self-control and really tests my level of patience. C++ is able to create simple "Hello world!" and mathematical calculations to some of the most powerful applications present today. What's fascinating (and equally draining) about C++ is its lack of abstraction. Every little detail must be coded in order for the computer to dissect the instructions we give. C++ forces me to think deep down and rationalize (the human ability to rationalize is a gift that many don't use... and I think it is often taken for granted). It's truly testing whether or not I know what I may think I know.

Well, C++, allow me to forget a semicolon or an equal sign for you to disobey my commands occasionally. One day, I will learn to communicate efficiently with you.