And no, before you jump off your seat (although you probably already have!), I don't mean the M.I.T. (Massachusetts Institute of Technology) but India's very own Maharashtra Institute of Technology in Pune.
This well-regarded institute wished to organize regular industry-academia interactions by way of guest lectures by industry folks for their students. They got in touch with Manav, from ThoughtWorks Pune recruitment team. Manav, in turn, got in touch with Sid and me to do a guest lecture for MIT's 2nd year students on 27 Sept.
We happily agreed and after some thought decided to do a "Rediscovering OOP" session. Too bad, it turned out that our audience was going to be students who've just learnt C and no OOP language yet. But since we were really "lean" the good thing was that Sid and I hadn't prepared anything for the session so far and hence there was no wasted effort.
We quickly changed the session idea into "Industry Programming Practices".
A night before the lecture day, Sid and I paired up on creating a presentation. We went for Sid's preferred style of using pictures on slides instead of text to trigger open discussions as opposed to bullet points which normally bring constraints on what we discuss. After about 30 minutes of Google Images, we were done. We had:
We also had some code snippets in "before and after" style. Example:
if (flag != 0) { ... }replaced by
if (stackFull) { ... }
We stressed on expressing intent, modularity, thinking about scoping of variables, and other good stuff (we had a checklist of such things in the last slide). Like when Sid said, "The best compilers make multiple passes over code, so should the best programmers", and I said, "If you use global variables to solve a problem and not think of alternate solutions, you're just being darn lazy and irresponsible!" And like Sid said, "Modularization is like Mother Teresa", and I said, "Treat variables with respect: they are your program's prized possessions."
During the session, we also drove across the message that in the industry, there is more to a project than just coding. We spoke of
Given the interest than some of the students showed (out of the 180 that attended), I believe we gave them something to think about and to take forward. Even the teachers and lab instructors who sat for the session felt the same. I guess the humour and energy that Sid and I were able to infuse in our session helped us connect. Sid and I had a fun time delivering the "lecture" as a pair, where we complemented each other, and also presented a balanced view about the topics we touched. Pairing in a session helps invoke an informal discussion-oriented atmosphere.
The two of us have been invited to do a similar session again next semester after the students have done some OOP.
I'm encouraged by such initiatives and hope that it'll lead to better-prepared programmers joining the industry fresh out of college.