Today morning , I was at the Centre of Artificial Intelligence Research staring rather stupidly at a page covered with strange squiggles and cryptic sigils . I had gone there to "gather requirements" and the person in charge dropped a couple of papers from the
IEEE transactions on Machine Intelligence on the table and proceeded to talk in a language that brought
back faint memories of drowsy classrooms from oh so long ago .
Sample sentence = "To solve the problem defined in expression (1), a single unconstrained problem equivalent to expression(1) is obtained by defining the augmented Lagrangian function denoted by phi ".
doh...
After ten minutes or so of this, i put up my hand and said "what does that mean in English? i didn't understand
anything".
My friend Mridul caught on and both of us asked increasingly dumb questions till the scientist gave up the struggle
and patiently explained the math to us term by term translating into English and into a 2 dimensional diagram . I was very skeptical that i would ever understand anything but ever so slowly the squiggles resolved into a stunning set of ideas laying out a new way to do machine learning.
After few hours, we were nodding along, even chipping in at various points with ideas that made sense . I had gone from skepticism to bemusement to fascination to awe.
It is hard to state this bluntly but i came out of that meeting convinced that a programmer who doesn't know math is somehow crippled(so is a mathematician who can't program, but that is another story).
The power of those equations ,drawing down a whole set of tremendously
complex abstractions into clean lines of force that thrummed with power ,
and seized even our bumbling thoughts and flung them unceremoniously into a world of bewildering possiblities, seemed to have affected Mridul too.
The first thing he said after the meeting was
"Damn ! we should learn math.If we could wield it the way these scientists do, we could create so many fantastic programs ".
We had a long discussion over lunch on what we had perceived and distilled it down to these basic points.
- the combination of deep mathematical skill and expert level programming ability would be the ultimate "level up"
- the first step in mastering math is be to learn to read the notation. just like learning the syntax of a new programming language
- the second is to grasp the reality expressed by the notation at a gut level , like understanding the paradigm and patterns lying underneath a programming language , like ,say ,beginning to grok "oo"
- the third is to use that understanding to create new possibilities
- the fourth is to use a programming language to embody and refine those possibilities , thus creating programs that do what has never been done before.
Strange .In one day, I have gone from hating mathematics to bedazzled wonder and a craving to learn .
Life is so wonderful .