First, as the article says, people lack motivation.
In India, the decision of choosing IT/CS does not come from children, it is often influenced by family or friends. Tell anyone that this field pays well and they will be happy to join it without second thoughts. This happens with majority of people.
Second is education system. Article clearly states:
I don't blame the quality of education here. That's a common
excuse. If a person is motivated, he'll surpass that
constraint.
Well, motivation is one thing but when you have non-programmers teaching programming courses, it becomes hard to surpass that constraint. Last semester, we were asked to make a project in a class. I was really motivated as I had a side project idea (a personal attendance tracker) and wanted to do it. When I presented it to teacher, the response was this:"Why are you building a 2 page project? Others are making big projects, expand it and make something big!"
I tried to explain that it would take time to nail down UI and design and it was good enough for a single person project. But teacher just didn't understand. And in the end, I ended up making a "Learning Management System" using WordPress.
And in final viva, the questions asked were these:
"What is SSL?" "What does "collapse" button do?" (This is a standard WordPress button, just hides the menu)
Since number of students was large, no time was given to explain/present it! This system of having such people as teachers kills any motivation one has. I can't say about others but for me, spending 6 hours in an environment like this and then staying motivated about programming is very very hard!
Add to this that you need to be an expert in Physics, Chemistry and Maths to get to the top institutes (IIT, NIT) even if you want CSE/IT course. This filters majority of people with interest in programming. I have been programming since 9th standard but I wasn't good in Chemistry and Physics, so I couldn't go to a good institute.
Quality of education is a big factor. The education system is blurting out engineers who are experts in cramming and lack any interest in programming.
Edit: Spelling and grammar.