In the beginning
I was around 14 when i started coding. At first, i only wrote batch files. Later my dad got me a visual studio 6 and a friend of mine lend me a copy of a learning vb6 book. I was thrilled. It was a completely new world. I spend all of my summer vacations in front of the pc. I loved it. While i was at it, i learned of access databases and some sql. Later i learned foxpro 2.6 at school, and since i already had a vfp6 copy, i started coding in vfp as well.
I used to read a lot back then. I still do. One day i found an article in MSDN called something like vb6 business objects. As i read on, i became confused: ‘objects’? ‘Inheritance’? ‘Events’ i was familiar with, but what exactly mean ‘polymorphism’? .
Fortunately, Rockford Lhotka (the author) had put a primer on object oriented concepts. Just that was enough for me to understand what the next step on the ladder was.
Unfortunately, there wasn’t much info on the subject at the time (or at least that i have access to), so all i could wish was to learn the whole thing when i enter college. But that was not the case. They did tell me about encapsulation, inheritance, polymorphism and all the mumbo jumbo words. But i never learned to think in an object oriented fashion. I did however had a decent internet connection at school and so i began to search for more info on the subject. I stumble upon uml, xml, html (what’s the deal with the ML thing?).
Even when had a course in c++ (which was more like c in nature) and java (forms over data kind of) i still feel more comfortable using my dear vb6. I even tried to practice object oriented programming (OOP) in vb6 but found the lack of inheritance an obstacle to most of the exercises found on the net.
A glimpse of hope
Around my 7 semester i had a chance to work in a small software startup. I was so excited! Finally! A place to learn all i was craving for! And learn i did! C#, sql server, and the .net platform. I had the chance to work in real world projects. But somehow i felt that i was missing something. It took me a couple of years to realize that i wasn’t doing oop. I was programming foxpro in the .net platform. I was still procedure oriented. Even when i was using objects, there were nothing more than data containers that were passed aroumd amongst different functions. I was not there yet. And so i tried looking at things from a different perspective. This time i really tried to create object oriented code. TDD, DDD, BDD (again, what’s with the DD?) And it slowly began to pay. I began to make the shift towards an object oriented mindset. I’m still far from reaching my goal, but i’m steadily getting there.
It’s all in the mind
As i’ve been working on different places, from small software shops to moderately big enterprises, i’ve seen all kinds of code. And it has became very obvious to me that a lot of people are in the same position i was a few years ago. They have the new tools, but still doing the same things as before. Since i became aware of this, i’ve been wondering how to help these developers to start the transition towards a more object oriented train of tought. This blog is an attempt to do so. And i’m not alone. There are tons of books, blogs, courses, etc. that i’ll direct you to. These are things that have worked for me and hopefully for you too. So stay with me. The fun is about to begin 😉