American software development managers often complain that Indian programmers are too literal-minded, and that they lack the intuition and entrepreneurship characteristic of American programmers. But to listen to Nayar tell it, American programmers have swung the pendulum too far in the other direction. Can it be that we're too in love with the hacker ideal of the 1980s to produce programmers who are truly prepared for today's real-life business environment?
Is it time for developer education reform?
Part of the problem may lie in the way that computer programmers are educated in American universities. If you want to develop software, you'll be directed toward a degree in computer science. But as anyone who as obtained an advanced degree in computer science can tell you, computer science could easily be described as a branch of mathematics. At its more advanced levels, it's a far cry from the practical, hands-on training that programmers need to succeed in business environments.
Maybe what's needed is a new kind of computer engineering degree to complement the computer science track: one that's targeted toward the student who is more interested in succeeding in industry than exploring computing theory. Programmers often have titles like "software engineer" and "software architect," but the training they receive is a far cry from the rigorous certification that real-world engineers and architects must undergo. (In some countries, "engineer" and "architect" are even legally protected titles; computer programmers aren't allowed to use them.) A true software engineer would undergo intensive training not just in software development essentials, but in processes, methodologies, business strategy, and effective communications -- all the areas that Nayar finds lacking in today's students.
Don't get me wrong; I'm still proud of being a hacker, and I believe that young students with the hacker spirit will always be able to excel in computing professions. But the hacker ethic alone isn't enough to succeed in today's economy. Rather than clinging to big-fish stories from the 1980s, where fluency with computers meant instant success, we should be teaching young hackers to temper their enthusiasm with discipline. In short, it's time for the software development profession to grow up. Hacking is fine, but teamwork and good collaboration skills will be the keys to tomorrow's successes. Until our education system provides a foundation in these areas, they're letting our young developers down.