So tonight I decided to have a drink and dive headfirst into coding. Seems to be going quite well actually as I have gotten a lot of work done on the Vodka front. I don’t mean the drink, of course, but rather my new Content Management System. Right now I am working on finishing up the Content Service and integrating it into FGDN.
But I digress, the point of this post is that I was discussing some refactoring decisions with a few friends and it came to me about how much I have grown. I never really thought about it until now; that I have changed so much in terms of how I see things. When I started coding when I was eleven years old I was using Visual Basic 5 and could see things only in terms of what they were on the most basic level. I understood that text belonged in a textbox for instance, but I didn’t know that the textbox was an object.
These days I can visualize data, problems, questions, designs, et cetera in terms of objects. If someone is speaking to me about a table in a database for example I see it not as a bunch of data but rather an object of sorts. Each row representing some part, whether it be whole or not, of an object. If someone gives me a problem, such as how to make sure UI controls follow certain rules for mouse events I see the entire UI as a tree of objects. It is instantaneous for me, instinct to put things in terms of concrete objects that I can play with and affect.
Of course it doesn’t stop with code! As I learn more about coding I learn more about life, the parallels can be drawn everywhere. There are certain things that are still to be explained but even emotions can be paralleled to an advanced choosing algorithm that works on many levels (conscious, sub-conscious). How do I see this? I see it as a producer-consumer relationship: the different levels of consciousness are providing input for the emotion algorithm. Each person an instance of some human class, acting on other objects, consuming objects.
This brings up a few questions:
1. Is thinking this way correct? Is programming in an object oriented manner correct? If not, what is?
2. What is the quickest way to corrupt a beginner so that he or she can think this way? How can we educate them quickly?