Our guest for this interview Deepan Chakravarthy, has ventured off the beaten path in many ways. Deepan has a B.Tech in Biotechnology from Anna University. In his college years, he got exposed to the professional world of computers and realized that his passion was in technology and programming. He taught himself programming and is now one of the founders of HashCube, a social gamng company. In this interview Deepan talks to us about how he taught himself progamming, and also offers some very good advise for students of IT.?
Parag: Deepan, you have a background in Biotech, and you are also the founder of a successful social gaming startup. How did this happen??
Deepan: I have been interested in programming since my school days. When I went to college to study Biotech, I spent most of my free time writing simple programs for Biotech, attempting to create useful software for Biotech and also writing games. Post college I worked at couple of places and didn't find them interesting enough and decided to do something on my own. Games that I wrote back in college were making small amounts of revenue and became the natural choice to venture into and that led to the social gaming startup.
Parag: So did you have any programming courses as part of your BioTech curriculum??
Deepan: Yes, we had one paper on C programming I guess. But we were forced to use windows and a proprietary compiler.?
Parag: I see, so C programming was the only college course you had for programming. I am sure you had to learn a lot about programming and Computer Science to create games, and eventually your startup. How did you go about learning so many things without the support of classes and teachers.
Deepan: I learned a lot by doing things. Whenever I needed help or guidance, I would email the local Linux user group or ask in IRC or post in Stackoverflow. The local Linux user group was very active and it met twice every month. I used to attend these meetings regularly and eventually made lot of geeky friends. These friends would take interest in replying to my questions in the mailing list, or IRC and became my mentors or teachers. Shakthi Kannan is one such example. He made a presentation on Mambo (now known as Joomla) at the local Linux user group, and within next few days I got my home page up and running on Mambo. It was wonderful. But the most important thing was doing things. I learned the most by doing lot of small projects. A website to solve sudoku puzzles, an auto-respond Gimp plugin, bouncing ball game, Mambo installation for my home page, setting up Linux From Scratch in my friend's machine, installing keylogger in the college computer lab, etc are some of those.
Parag: That is awesome. I totally agree with you. Doing is the best way of learning. Making small personal projects is an excellent way of learning a new technology. Along with actual practice, did you make use of new media resources like blogs, podcasts, screencasts, videos, etc for learning??
Deepan: Yes, whenever I land up in a problem, I searched blogs, forums etc. However back in those days, I did not have a good Internet connection to stream videos. I use videos these days.
Parag: When you learn by doing things, and by asking questions on forums and IRC, there is a lot of unstructured activity going on. For example, if you were learning how to program in Python, there are certain basic things you should know before you can start trying things and making small projects. Did you attempt to familiarize yourself with the basics before doing the projects, or did you just dive in and figure things out, as and when you encountered problems?
Deepan: I learn the basics first. Learning basics for me mostly involves setting up the compiler, writing hello world programs, getting things to talk to each other (webserver talking to PHP, PHP talking to MySql etc). Once I have this basic setup ready I try to do things. I rarely go through the entire tutorial for a programing language before trying to build stuff.
Parag: That's excellent. You have a total hands on approach to learning. If you could give one advice to students who are learning programming, what would it be??
Deepan: If I have to pick one thing, then it would be building or creating something using the programming language you are trying to learn.?
Thanks for taking the time to do this interview Deepan. I am sure our readers will find your learning method very insightful. I wish you good luck and lots of success with HashCube.