The following is an autobiography of events relating to my programming knowledge. My programming adventure started at the age of 14 with VB and has transformed into a way of life at the age of 21 with c, python and ruby.
"VB was so cool":
When I started my first year of engineering, I already had a growing list of half-completed Visual Basic projects(about 15 odd experiments). VB was in my school syllabus and I picked up an interest in programming because of the ease with which magic can be created in few mouse clicks. Sadly I lost a few projects when my harddrive failed(I had no idea what the word opensource meant at that time).
"TurboC was a good IDE":
It was only near the end of first year I got into c(turboc to be accurate) programming. I didn't know, when I started, that TurboC and C programmming are different things. I remember solving my first c puzzle in under 5 minutes, swapping two variables without using a third variable. Data structures lab and System software lab helped me learn TurboC and its debugger. I used to create my own versions of college given programs and have version controlled few of them.
"Java was a real programming language":
I spent most of my second year loving the beautiful object-oriented world of Java. I remember modeling chess game elements in Java and re-using some of the code to solve N-Queen's problem. I learnt c#.NET through NIIT despite my recently found love towards Open-source world of Ubuntu. I started believing that Java is more powerful than c(I regret it now).
"I am a proud pythonista":
I met yuvipanda in my third year and it is amazing how much I have changed since then. It was almost the same time when the icell was formed. Since my college's website was awful I decided to take it up as an icell project. When I asked yuvi for the way forward, he suggested me to use django. Thus I became aquainted with python and since I am comfortable at learning through examples, I forked the busroutes.in code and started looking at the code. I used BRI to develop most of my web development skills. I contributed to BRI by implementing A* routing, little changes in UI, fixing bugs and server maintenance stuff.
Yuvipanda encouraged me to attend the unconferences happening too often in Chennai. Attending the unconferences brought me more contacts than I had saved all my school days. Our friendship grew steadily and I got busier and busier doing more "off-academic learning".
"Ruby on Rails 3 is a nice pet":
After having an year of django experience, I wanted to learn RoR way of doing things. I joined a startup as an intern and learnt rails programming by developing an in-house project. I should remind myself to continue with rails 3 in the near future.
"I have great respect for gcc":
I regret that I should've started with gcc instead of turboc. The difference dawned on me when I started building source of software in Ubuntu. Using Ubuntu was a learning experience every day. I was exploring TORCS and Flightgear when I realised that the final year projects need to be decided very soon. I proposed to improve TORCS by implementing machine learning. The funny thing was TORCS source code is in C++, the language which I never tried learning. Having completed the project's stated objectives early, I helped one of my classmate with his project(PCICV) redone in C using ffmpeg library and a GTK+ frontend. This drill, though ate through my busy schedule, gave me opportunity to learn GNUMake and other gcc friendly programming practises.
PS: Motivation for this post is two-fold. First is that it has been long since I updated my blog and felt I should register the memories before the harddisk becomes full. Another reason to do it today is that I am going to apply for GSoC this time and need to keep an updated version of my programming history to share with my would-be mentors.