Learning Programming-the ‘DO’rai way!

“The way to get people to write programs is to not talk about programming at the start!”

Presenting Dorai Thodla – ‘Infovore, Serial entrepreneur and aspiring geek ‘, in his own words. Dorai teaches, gives talks, conducts seminars/workshops and runs a couple of innovation centers in India. He is a part of a couple of Silicon valley communities on Improving Improvment including The Program For The Future (PFTF).

Read on to find out more about Dorai and his work with college students..

Twenty19: Your blog has a post named ‘Learning about Learning’. It says that, the effectiveness of working with a colleague on a task is 67%, whereas the effectiveness of learning from a manual or textbook is 2%. This is quite amazing..

Dorai: That’s a Deloitte study. It actually surprised me. I knew working with people is better, but didn’t know the extent of its influence. That’s one of the reasons why I have been promoting the concept of innovation cells in colleges. I try to get a bunch of students to work together on projects. This is called project based/ problem based learning. You take a problem and try to solve it. In the process you learn about the problem itself and various ways to approach it, and other solutions and which one to pick. This forces students to think and apply what they are learning.

Twenty19: A huge majority of the Indian student population is forced to work with exams, lectures and homework. How do you think students should break out of that and do more projects?

Dorai:  The current metrics colleges use do not really measure student’s performance well. For example, there is nothing to measure their innovativeness and initiative.

First of all, make learning interesting and get them hooked on to it. Fortunately, I deal with computer programming which is very easy to make interesting. When you go to colleges, the syllabus is decided by someone like Anna University. They use antiquated stuff like C, C++, and Java. But, when you go to foreign universities like MIT and Berkeley, they start with a really easy language like Python. You start with something simple and within one day the student is actually writing programs. And, this joy of creating something new gets them hooked on to it. This gives them confidence and they say to themselves- ‘Hey you can do this. This isn’t so hard’.
When I meet with students, I don’t assign projects. I just set a mind-map and pose these questions: Why do you want do projects? What would you like to learn? What are the steps you need to take? I list down the spaces where there are interesting projects to do…mobile devices, cloud computing, business apps, gaming, animation. Students pick their favorite area and projects, and they have awesome learning and fun!

Twenty19: Wow… You do really like working with students! What drives you to work with them?

Dorai: I want students to experience the joy in creating products. When someone uses the product that you created and comes back and tells you about how much it helped them- it creates an enormous amount of joy. It could be any simple product- a Google gadget or a simple mash up or a Firefox plug-in.

Also, when a student walks into a job interview, and if they have really worked on something, they will lose their fear of the interview and will happily engage in conversation and talk about their project, because they are dealing with an area they are comfortable with. It improves their job prospects. One of the goals of the icell is to improve the confidence and job prospects of students.

Twenty19: Sure there are quite a few gems hidden among the whole mass of college students. Do you have any examples of outstanding projects done by such students?

Dorai: A couple of years ago, I was at KCG College of technology to give a talk to the students on emerging technologies. That night I come back home and check out a Google alert mentioning me.  I click on it and find this student who blogs – Yuvaraj Pandian. ( Read more about him: http://www.twenty19.com/blog/going-code-crazy/) He is a Google summer of code student; he went to code contest in IIT and was called back as a mentor the next year He also goes to motivate teams and organizes Python workshops, and built a team to set up websites for the icell at college. He is an awesome achiever.  Yesterday when I met him, he said he had an offer with Zynga for an internship. Another person is Nupur Maheshwari from SMK Fomra College and a few others from SSN.

These people have the potential to be ‘rainmakers’. I would love to watch them and see where they go. What happens is when you go to the college to talk; these students hang around with questions after the talk. They follow up on Facebook, twitter and email!

Twenty19: We’re talking about 3 to 5 such ‘rainmakers’ in each college. But, ideally we’d all like to see more people joining the tribe and getting smarter, learning and doing more. Do you think colleges are the key here? Do you think college education will evolve in India in the next few years?

Dorai:. In addition to the current conventional methods of imparting education, colleges can start experimenting with other methods. Some kind of blended learning models, more emphasis on peer-based learning would help immensely.The self taught /learning model is also highly scalable. There will be more innovative learning/ teaching methods.
I think at some point of time, talent will be recognized because there will be a crunch for talent. People will stop looking at fancy engineering degree and will start looking at proof of performance like participation in Open source movements,Code Competitions,  GSoC. Etc

Twenty19:  A lot of times, students are scared of programming- even if they are CS students. How do you remove that fear?

Dorai: I think the system scares them. The kind of problem they are asked to solve scares them. The first programming language needs to be very gentle and very simple. Within a couple of hours, they should be able to write the first program.  That is the requirement. That is one of the reasons why I picked Python, which is free and easy.
The way to get people to write programs is not start with talking about programming. The first thing I do is ask them to describe the process of making a sandwich at Subway. So, you take some bread, slice it, you chop onions, cucumber, tomatoes, sprinkle some cheese and pack it.  Now we start thinking about it. When you are running a sandwich shop, you can’t keep slicing tomatoes and cucumbers, so you just pre-slice them and keep them around. What will the process be now? Now, assume that there are 5 or 6 employees making sandwich for a large group of customers, how will the process change? What tasks run in parallel?  These are all the same notions in programming too. You need to bring it a common sense level and simplify all the hard concepts like parallelism, sequencing and repetition. Programming is really complex, but the entry gate need not be so complex.

Twenty19: You were talking about the self taught model.. What sort of resources would you suggest for students?

Dorai: There are several things. What you guys do at Twenty19 is great in creating awareness about opportunities. I think we need to have a blended learning model. I did a couple of Python courses in colleges. The trainees came back and said they wanted to learn more of such things. The reason for this is that- 50% of the time was spent in the labs doing projects and learning.
One of the kids from SMK Fomra College posted on the Chennai Open Coffee Club forum saying – ‘A lot of students ‘buy’ their final year projects. I don’t want to do that, I want to build something real. Can I get some help? ‘I connected with him, and his team met with me and I gave them my inputs.

Twenty19: What are your views on internships?

Dorai: Many students do internships since it is a mandatory requirement, just like passing an exam. So, everyone ends up building a hospital management system or a library management system which is completely useless. If you want to learn and earn- you should go and seek out companies that do very interesting work.
The performance of people in an environment without any regulation or check marks or metrics, is a great indication of what kind of people they would become later. I’ve seen interns work on really high level projects with just vague guidance. These folks research and figure things out. Interns need an initial push and some navigation help as they go along. That’s all they really need.

Twenty19: If you are looking to recruit students for your company, what qualities would you look for in them?

Dorai: The first thing I look for is whether they are self-driven( high initiatives). If you have initiative, you will learn and fill gaps in knowledge.  And of course some amount of smartness and the passion to learn. Eagerness to learn, high initiative, people who need not be managed, self motivated- those are the kinds of people I want. I don’t have any pre-requisites. They can have zero knowledge in programming. I will start clean with a fresh programming language.

Twenty19: We know that you have an awesome blog and tweet regularly, but, whose blogs and tweets do you follow?

Dorai: I have a whole bunch. There is a person by name Jon Udell. He does these podcasts called ‘Interviews with innovators’. Another favorite is Paul Graham- The first essay of his I read was ‘Why nerds are unpopular’, and the theory about why girls in the US want to look beautiful but not intelligent. (Intelligent looking girls intimidate boys!) For the first time I understood the psychology of what happens in US schools. Peter Norvig (director, Google search) is also awesome.
I have a big blog roll. Nowadays, I find a lot of tweets and links to articles and that way I discover some bloggers. What college students need to answer is: Why do they want to read blogs? Is it to learn more? Have fun? Improve knowledge? Come up with new ideas?

Twenty19: What would you like college students to do? What is your advice to them?

Dorai: Students have to be multidimensional. They should explore. They should try out everything, and keep at it for a few months. This helps them decide what they want. It could be studies, sports or anything else. My friend’s college-going son said – ‘This is my quarter of biology. This quarter I’m going to immerse myself in it and learn everything about it.’ And every quarter it is a different subject.  Students can pick 4-5 things to explore, learn, read blogs and talk to people.
Also, in addition to your core discipline, they need to have the ability to communicate. They should write and read. Once you get past the first couple of years of work life, communication creates all the difference between awesome guys and ordinary guys.  You might have tons of great ideas buried in your head, but if you can’t write them down in a manner in which people can understand, there is no use. Students should definitely blog. But read a lot before you write.

Read Dorai’s blog athttp://dorai.wordpress.com/
Dorai’s Twitter handle: @dorait

Comments Closed