Saturday, July 23, 2011

How I got introduced to the world of geeks and fun programming


Programming. Geeks. Both were initially new to me when I entered college. Apart from few basic programs which I had done using C in high school (as part of academics), I really didn’t know much about programming. However, in college I took an instant liking to subjects like Data Structures and Algorithms which involved lots of problem solving. I enjoyed applying logic and reasoning to arrive at solutions rather than just memorizing and rote learning theory. But I was largely disappointed at the examination and evaluation pattern. The examination scheme tested neither the understanding of concepts nor the application of the concepts in real life.

In my later semesters, subjects like Compiler Design and Artificial Intelligence intrigued me even further. I was the topper in my class and I was satisfied. But then I met @justjkk, the class geek, who changed my whole view on academics. I began to realize that getting 93% in Compiler Design doesn’t in any way prove me as a good CS student. I am ashamed to say I had never used computers in my everyday life except during lab sessions and to send emails – till my 7th semester. @justjkk pushed me into the magical world of computers and internet. I dumped my college textbooks and spent more quality time researching topics on the internet and gaining extra knowledge apart from textbooks. 

When I entered final year, we were given Placement training in our college. The sole aim of this seemed to be “How to get an IT software job without knowing any bit of programming and not caring a damn about it”. I was surprised at how any company could recruit such students and more surprised at why students would want an IT job if they weren’t interested in programming. Shockingly, many students seemed to care more about societal status rather than pursuing their passions.

Towards the end of 7th semester, @justjkk introduced me to his best friend, @yuvipanda and he opened a new door for me – geeks and programming. I slowly began to see the whole different world of geeks – how they code with passion, how they really care about good programming and how they really apply engineering to arrive at solutions – compared to the  ‘work for a living and societal status’ attitude of normal people working in so-called reputable IT MNCs. It stirred my inner passion and I was inspired. I dreamt of becoming one among them someday, though I was unsure about my capabilities.

@yuvipanda gave me the encouragement and moral support and I started writing simple codes apart from my regular academics. I implemented algorithms like sieve of erastothenes, mergesort, quicksort, etc. They were mostly evaluated by @justjkk who then gave me valuable tips to improve. What a budding programmer can learn from an expert programmer at his side proves to be more valuable than learning got from any book.

It was during this time that I realized how much fun, programming was. Learning Data Structures and Algorithms in college was interesting. But implementing them using a programming language was even more interesting. It was kinda like solving logical puzzles which I had enjoyed since my childhood. I stumbled a lot initially while implementing some tough logic. But then the tougher it was, the more satisfaction you get by solving it. Sometimes, when I found a bug too hard to discover, I thought I would give up, thinking I hadn’t got the capabilities. But then my conscience used to taunt and mock at me. And after lots of patience and hard work, when the result came, it was more satisfactory.

I then got to know about IDEs. I worked with Eclipse and Netbeans and couldn’t help admiring the auto complete options, quick fixes and easy deployment features which made a programmer’s life much easier.

At the end of 7th semester, we were asked to choose electives for the next semester. Majority of the class students chose subjects in terms of easiness and easy to clear. I wondered at their total uninterestedness and lack of thinking attitude. I prefer selecting a subject because I find it interesting, challenging and useful. But in the end, they won and we had to put up with boring theoretical subjects. Maybe that was an advantage on one side because during my 8th semester, I rarely studied. My focus shifted more to learning new technical stuff. I joined a course in NIIT, Pvt. Ltd. for Java. And I started implementing small, small projects using the concepts I learnt in my daily class.

When I became fairly good in the concepts, I asked @justjkk to give me a real challenge in Java. And he suggested me to implement Game of Life. I loved anything involving Artificial Intelligence and so I got hooked on to Game of Life. I struggled with it initially and developed a crude model which @justjkk later refactored. When I looked at the refactored code, I was purely amazed and kept looking at it for several minutes. Who said only paintings and natural scenery can be beautiful? A properly written code is the most beautiful thing to the eye of a programmer. I admired the design and coding style deeply and vowed to follow it in future. Though, it took a bit more time than expected, I finally managed to develop the logic and CUI for Game of Life.

One day I decided to take up OCJP 6.0 exam. I thought it to be a good way to test my Java skills. I registered for the exam in the Prometric testing centre in NIIT, Pvt. Ltd. and they sent me a set of sample questions which they called as ‘dumps’. I went through them thinking it to be some sort of model questions. But I was really disappointed when I took up the exam. I discovered that all the questions were from the dumps and many students scored above 90% by just mugging up the options rather than understanding them. I then felt that the certification was totally worthless. I realized the saying, “Those who can, do, those who can’t, get certified.

I then learnt about version control and how to work with git, its features and advantages. I also came across Latex, a document markup language for typesetting documents. I really liked its cool features which made formatting much easier and output device independent. I used latex to create a sample resume.

One day, @justjkk informed me about Yahoo Open Hack to be held in July 30 in Bangalore. I was excited to hear about it. I had always been thrilled to hear about geek workshops and geek weekends which my friends used to attend. I thought it was a good chance to meet lots of like-minded people and geeks and immediately registered for it.

At this time, @yuvipanda told me about Thoughtworks where he had attended Functional Programming workshop. I looked up their recruitment procedure and came across the Sales Tax problem which I found interesting and decided to implement it.

Today I am learning some new stuff everyday and working toward my aspiration to become a geek. Life is fun with geeky programming.

1 comment:

  1. Hey archana, awesome to get to know yet another geeky senior of mine. @juskjk failed you tell you one thing which i am having the pleasure to share. Please blog in WordPress because it's a lot more cool and sexy than eblogger :). Looking forward for lot more blog posts from you

    ReplyDelete