Wednesday, June 30, 2010

An "easier" computer science

Contrary to the situation in India where everybody is dying to be a computer engineer whether they like it or not, the situation in the US is quite opposite. Computer science has been plagued with major recruitment problems, many factual and other mythical. Almost all universities struggle with student recruitment in the IT field, a scenario that was as amusing to me as somebody actually wanting to be darker than they are :-) As I have crossed over to the side of academia, I realize the seriousness of this problem and the solutions being proposed to address it. My take on the whole thing is that it is a largely perceptual problem, and at least some solutions, according to me, seem to address it by creating other erroneous perceptions.

The first major hurdle in convincing someone to take up computer science as a career is its difficulty. Indeed, subjects like operating systems, algorithms, system programming and even flat-out application programming are not for the faint-hearted. My take on the issue is: that is precisely what makes them so special. The reward of mastering something that is inherently difficult is great! The question is, how does one convince others of this?

There have been great efforts at making computer science more "fun" in the classroom, almost all of which I support. There is teaching algorithms through games, programming through commodity applications like multimedia, programming using the iPhone or Droid both of which are immensely popular among consumers, etc. All of these examples represent the "coming out" of computer science, from a field based in mathematics to a field that is responsible for all the digital fun in this world. The fact is that even the biggest bully on the block who would ridicule nerds cannot go one day without some digital gizmo. So why not make the connection between using it and creating it? I wish we had some of this when I was in college.

But efforts to portray computer science as "easy" or commodity defeats the purpose. Are we really sending the correct message by saying there is something that is simultaneously lucrative and easy? College education should be as much about personal prestige as it is about getting a job. It is a great feeling to hold a college degree: why would it be if "anybody" could do it? A college degree is and should be the result of consistent hard work and about mastering skills that are worthy of the money that they will bring in.

One of the subjects that is simplified and diluted to make it "easy" is programming. Programming is like what mathematics is in school: everybody says its important, but it just appears too difficult. In every programming class that I have taught or been a part of, there have been people who struggle throughout the semester (and many more after it), and others who snap their fingers on their way to an A grade. Many introductory programming courses start by taking a "word processing" approach to programming: click here, drag that and you have a running program. It does make it look easy, and there may very well be some who are attracted towards computer science because of it. But it portrays the field incorrectly, as these students realize in more advanced courses. Instead of portraying programming as "so easy even a caveman can do it", why not portray it as "its difficult, but look what you can do once you know it"? I think an honest introduction of the subject would be that it is tough, but always enjoyable. My personal experience has been that programming simply fortifies that age-old truth: "no gains without pains". You want to act smart and make money: you have to work hard. Isn't that true of all lucrative professions?

Another myth about computer science is the seeming dullness of those who adopt it. Nerdy bespectacled people working in their dark cubicles and talking to nothing but their monitors, seemingly without a life in general. Now I know all the computer scientists of today will readily debunk that scenario, but that is what the rest of the world really thinks about us! I have a two-pronged defense against this myth.

First, the seemingly sedentary nature of this job is also its strength. We are one of the few types of engineers who can work very hard in the comfort of a chair and a controlled indoor environment! It is what makes this field perhaps the only one to offer "remote" jobs: people working for a company in a setting of their choice. This has become an increasingly popular option both for companies and for employees.

Secondly, "so what"? In this day and age, can you honestly find even one person who has daily access to a computer (but is not an IT professional) and who does not spend hours on drivel like facebook, twitter or other social networks? How is that life any more exciting or adventurous than spending the same amount of time and actually earning money for it!

So for all you skeptics: computer science makes a great career! Yes it is difficult, but that is what makes it worth every hour you will spend struggling with it and every penny you will spend mastering it!

Tuesday, June 01, 2010

"We Indians"

As an Indian, how often do we use the phrase "We Indians are ...". Or more familiarly, the "desi" attitude towards things, etc. Upon introspection I find that "we indians" are experts at finger-pointing, mostly towards other Indians. If you are an Indian, choose a region. Now recall the word used to describe people of that region (legitimately, not in a derogatory manner). So for example I would be a Maharashtrian. Now remember the last phrase you heard that began with "Those XXX (Maharashtrians for me) are ...". Sound familiar?

Being away from our country has the strangely integrating effect of laying blame on "all indians" instead of a particular region (we all hear our share of those ones too, but more commonly it is the "desi" attitude). Recently I came across a forum on a website managed by local Indians in which an (allegedly) American was complaining about the commonly found obsession of tuition classes that Indian parents have, and how he had a problem with a particular person providing tuition classes outside of his job, and how tuitions were stressing the poor kids. If you have come across such fora online, you will be able to correctly guess the eventual outcome of this particular thread--the discussion became a rant on racism and jealousy.

My personal interest in this particular discussion was the issue of a person providing tuitions clearly in violation of his visa status. Evidently this person is good at teaching--the kids seem to be doing very well thanks to the guidance. As an immensely law-fearing human being I find it impossible to relate to people who would do such a thing. Unfortunately this is more common that one might think. Students working beyond their allowed 20 hours, professionals earning extra (read cash and thus unreported) income by doing odd jobs (sometimes completely belying the status of their legal job), etc. As someone who has been a student and is currently a professional I can empathize with some of the reasons provided, all centering around money. Yes, it is an expensive country, often one has non-earning family members to provide for, or a loan to be paid back in India, etc. However these are excuses nonetheless. The most basic and crystal-clear truth is that doing such things may be illegal depending on your visa status. There will be very little to argue against legal action that will be taken if such activities are discovered.

Personally I am of the opinion that if you are in a country that is not your own, you have to live by the laws of the land, no matter how unjust they seem to you. Unless you were kidnapped, you chose to live and work in another country. If you do not agree with a particular law to such an extent that you seem to have no choice but to break it, you must seriously consider returning back to your country. Despite all the protection that a country would provide to its foreign workers, the fact remains that you being there is a privilege. Yes you pay their taxes, but you also draw an income. So nobody's really obliging anybody here. In this particular forum, the alleged wrongdoer holds an H1-B visa. That means he has a decently paying job, and is unlikely to be in need of money for survival.

So the question I find myself pondering upon is: why do it? Is it just a case of doing something because there is a decent chance you can get away with it? If so, is this attitude cultural--is this another characteristic of "we indians"? Or is it a subconscious training that all Indians are inevitably subject to thanks to the pervasive low-level corruption in India? The biggest question that I have is: will we be consistent and pardon someone else indulging in an illegal activity that is somehow detrimental to us, if there is a reasonable explanation for it? Or as with all illegal things in this world: it is alright so long as we are on the profiting side of the equation?

Can a reader help me to understand this better?

P.S.: This particular forum contained elements of another "we indians" characteristic. One individual immediately pointed out that lots of Americans also have undisclosed incomes and thus swindle the same tax authorities. In short, the "catch them first" argument. I think as a world of 4 billion people, we have comprehensively lost track of "who started it", no matter what the issue is. So again in my opinion, such arguments may contain vestiges of truth, but are totally useless and thus pointless.

The above is a hint to a potential reader who'd like to point out that immigrants of all origins indulge in such activities. Law, unlike democracy, cannot be a victim to the vagaries of a majority. Just because lots of others do it does not make it legal, nor morally correct.