There is a special moment when you are learning. It creeps up on you, it is special and exiting particularly if it comes from many hours of tribulation. It is what I call the “I got it moment” suddenly you understand, concepts once foreign now eclipsed with the greatest of ease. It is a brilliant and special moment when this happens because it usually means you can put that hurdle behind you and move to the next one.
The problem with these moments is that there is nothing you can do to force or even encourage this to happen. Which is a real pain when you really need one to come along so that you can get some work done. For me I currently need to understand object oriented programming. I can hear the collective groans of the internet and the overused phrases associated with this statement. “how could you not understand, its simple.”, “It’s so important you have to know it” and it goes on.
The simple fact is at the moment I feel like I think very procedurally. Start here, modify this way, add these bits then give result. It’s simple, it relies on how we often do things in everyday life, so the abstraction is lower.
Don’t get me wrong I understand the premise of object oriented programming, I have even done some of it but when it comes to me setting up something this way myself I have no idea where to begin. Yes I have tried reading some of the books on the subject. They all use a similar approach as far as I can tell, “imagine a car it has certain properties like speed and how many chairs…”, “think of an apple it has a colour…” yes yes ok got this how do I make one, define apple; ok there is now an apple we give it some variables; yes ok now its got some vars, hmm now I want to use it now apple = x and for x self x set, oh crap I forgot to write a setter and getter now what do they do and then I need to pass what I know I’m supposed to use self there somewhere, is self the object or referencing the method of set and get, ohh set is just self = self of the input…. then I wake up with a keyboard impression in my face a deep sense of failure and a disgust for how popular this method is.
I understand I have to learn at least the principle and get them working as object oriented programming lends itself to massively scalable projects. If I ever wish to oversee a project I really need to understand what is going on. Currently I can look at the code and see what its doing and even what are the steps involved in most cases but I have no idea how to adapt it to a new situation or how to create such an environment. And thus I need to get my “I get it moment”, back to the keyboard indentations … sigh.