Where are the programmers?
Every year, lakhs of youngsters graduate with computer science, computer application and engineering degrees from Indian universities. A few years ago, Aspiring Minds created a stir when it published a report that stated that 95% of engineers were not fit for software development jobs. The report said only 1.4% of them could write functionally correct code. Computer programs are the foundation of applied computer science, and writing them is an important skill for students to have. Every IT company in India looks for fresh graduates with programming skills. Since the companies are convinced that new computer science graduates don’t have these skills, they screen them for logical reasoning/aptitude tests and train them in programming languages.
Missing programming culture
The problem is that new graduates are often afraid of programming or lack the right understanding of basic concepts. The aversion to programming is so prevalent in campuses that even graduates with high marks prefer to move to non-programming careers with lower salaries. Thousands of talented students drift away from highly rewarding programming careers because of poor teaching of programming. Except some elite institutions, the faculty in computer science departments of a majority of the colleges do not put their knowledge to use, to solve real-life problems. They may have graduated with excellent academic credentials, but they lack expertise in programming. The faculty memorise programs and then go on to teach their students the same method. As a result, over the last two decades, selling graduate-level computer science projects has become a parallel industry. Students buy ready-made projects for a fee from marquee institutes to submit to the university as bonafide projects.
We need computer science faculty with good programming skills. They need to be comfortable explaining or teaching computer science concepts using any computer language in the classroom. For example, data structure and algorithms (ds-algo) must be taught along with a programming language, not just as a separate theory. A minimum of three years of software development experience for faculty should be made mandatory. The college management or even the government could step in and incentivise or bear the cost of this experience. If the faculty are well-versed with programming language and coding, the students will pick up these skills easily in the classroom. And then programming will become the default culture and language in computer science classrooms and we will have excellent programmers.
Before the first year of graduation class begins, students can be asked to complete assignments on platforms like ‘Scratch’ from MIT. A week’s crash course in a simple scripting language like Python can be taught before the first semester starts, so that programming can be used while teaching computer science concepts in the classroom. Nowadays, everyone has a laptop. For programming languages and related subjects, the program needs to be written and executed in the classroom on every student’s laptop while theory is being taught, not in a separate laboratory. Programming assignments must be given frequently. These should be checked into some cloud repositories like GitHub.
Benefiting both parties
If students are guided this way, companies would be more than happy to take these students as interns. These students can assist their development team. This industry-academic partnership will benefit both parties, as industry funds academic research to solve the latest real-life problems and academia provides employable and productive graduates to industry. Once the right programming culture is inculcated in campuses, it will unleash the huge human technological potential of India and help the country become the technological superpower of the coming decade.
James K. Varkey is an IT Professional (Architect) with more than 20 years of experience in the IT industry