Saturday, July 01, 2017

To my students who are learning AbstractSingletonProxyFactoryBean


Few days ago, I stumbled upon this particular AbstractSingletonProxyFactoryBean class. For somebody, who has studied a bit of design pattern would definitely reread the name of this class — what on earth this class trying to do?

My students who finished MCA from the University where I teach, most of them are for sure heading for Hyderabad — the Mecca of IT training. They go there because perhaps I failed to teach them Java properly or they are feed with the idea that to get a job, you need to learn so called "advanced Java". And this is what perhaps they learn in the name of Advanced Java —AbstractSingletonProxyFactoryBean!

This OMG AbstractSingletonProxyFactoryBean class from Spring, a popular so-called-advanced-Java framework. Even experienced Spring developer would find it difficult to reconcile such advanced stuff, leave alone these poor freshers who seems to find these things accommodating! Could be because somebody teaching this to them for a mere 4K.

Sir... J2EE or .NET what should I learn ? One common question I am asked by my students who complete their degree.

No matter how I dissuade them in such things and advise them to stick to the fundamentals, they often land up at Hyderabad ending up taking one such course and to my dismay, I haven't heard much of success stories.

Who is responsible?

We teachers. Period. We are responsible for producing engineers who can build things.  You blame it on the education system. Who is the system ? Well, we are the system. It's we who define the system, it's we who design course curriculums. We must accept that we have failed collectively to be in sync with what's happening in the industry. We never really bothered to involve people from industry for our curriculum design. We avoided them, because we feared, this will bring extra load of learning for us. One of us will shout — "You want me to learn Scala at this age"!!!

Most of my colleagues and teachers of other colleges and Universities may not agree with this. But this is a fact. This is a fact that we are out of sync. Our teaching and evaluation methods are plain outdated.

"Come on... we are products of that same University/College... and we are successful techies/teachers today..." — one may argue. True, but I feel  world has changed since then. And it's ever changing rapidly. While the ability to learn, hard work and a positive attitude is what we needed to fetch a job in those days, students of this generation need something else. They need to  be smart, social and up-to-date. Gone are the days that knowing "the difference between malloc and calloc" or "how to reverse a linked list" was enough to fetch a job. Today competitive programming rules the roost.

Thanks to us, our students are outdated. Let me give a simple example. It's an irony that students across India other than tier-I institutions, still compile their C code in Turbo C++ Compiler. I was under the impression that it's prevalent in Odisha only but after talking to few teachers outside Odisha I came to know that Turbo C is still in use.  My apprehension is supported by this quora post (https://www.quora.com/Why-is-Turbo-C++-still-being-used-in-Indian-Schools-and-Colleges). Few exceptions apart but majority end up in using Turbo C++ compiler because their teachers know that as the only method to teach C programming practicals. We teachers didn't learn new compilers so our students. And such mistakes result in the findings that "95% engineers in India unfit for software development jobs" (http://www.thehindubusinessline.com/info-tech/95-engineers-in-india-unfit-for-software-development-jobs-study/article9652211.ece).

I am not saying that we should incorporate Spring or Angular in our curriculum because that's not what will fetch a job for the students. What we should do is, make them ready to be agile, adaptable and able to learn new things at speed with ease. Before expecting the same from the students, we teachers should first practice it.

One famous quote by Alvin Toffler goes like: "The illiterate of the 21st century will not be those who cannot read and write, but those who cannot learn, unlearn, and relearn."


Learning and relearning is fine. To me, what's most challenging is "unlearning"!