Tuesday, October 03, 2006

Of geeks and coders

Recently, I had this discussion around the issue of qualification for a software developer. Indian IT services companies often issue recruitment ads asking for first class engineers from the best colleges in India. Notably the IITs. That was how some of the companies started. Then they climbed down, going to the best non IIT colleges. Then they climbed down and now almost any engineer with a first class can make it through to most companies.

There are many other companies who ask for best in class graduates. Some companies prefer NIIT graduates - who are not engineers, though many of them are engineers too.

Really, what is the level of qualification required to be a software developer? This is a funny question if you ask me, since it is like asking what qualification do you require to be a driver. To be a driver, you need no qualification. If you are an MA or a M Ed, well, good luck to you but that has no bearing on whether you get a driving licence or not. As long you can drive a vehicle well and convince the RTO inspector that you can, you get a licence and you can drive.

To be a coder, is exactly like that. In India many people (and companies) make us believe that you need a science background to learn coding. It is like asking for mechanical engineers when what you really want are drivers.

I have some of my friends as young as 8th standard who have waded knee deep into coding. I know of some who have created small tools and other patches even before they cleared their class Xth exams. I know of accountancy grads who are experts in coding/hacking. One of the guys who studied with me had created his own game - and he was not even a graduate - his dad has passed him a defunct PC which he had made good use of. Qualification - well nothing. Except that they loved doing what they did.

Google Jam is a step in the right direction. I wish service companies in India too tried and picked up geeks this way rather than a traditional formal-tie interview process. These are the geeks who will create more code juice and innovate - they may not follow coding standards though and geeks oten come with their own idiosyncracies - which service industries hate. But Google and Microsoft? They love 'em.

The highly qualified educated coder who gets into the IT service industry today wants to "get out of coding" even as he sets foot in the industry - with the result that the industry is filled with (generally) low technical skills. The industry also "rewards" good coders with management positions with the result that they lose their technical skills and that is often seen as the only way to grow in the firm. (That last part is changing though the hiring is still done the old way.)

One point here is that good educational qualifications (ranging from any graduation to post graduation or an MBA) help in assessing whether a potential employee can create documentation, processes - but thats not the same as coding. What IT service companies do need is a mixture of low to medium end coding skills at the entry level followed by good communication, presentation and documentation skills at the next levels. Honestly, you need neither first class engineers nor first class graduates at the entry level in an IT service company. You do need a high level of presentation skills, negotiation skills, strategic thinking at a managerial level and beyond.

Coming back, coding is a fair bit about self interest, which is about the geek - someone who lives, talks and breathes code - and nobody can teach you to do that (not for code, not for music, not for blogging). This is for those whom computers (or central excise or dance) is a passion.

The other part is around technical training, which is for the NIITs and their ilk to milk. The engineering colleges should really get out of creating newer engineering streams for Information Technology (IT - this thing sells like crazy) and focus on creating engineers not coders.

Make no mistake, the uber technical chaps are highly regarded, paid as much as (if not far better -look at any core tech companies payscales) than uber domain guys and there will always be a continuous demand for technology professionals at all levels. And, once again, it does not matter what qualification you have as long as you have a licence to drive (or code).

15 comments:

Anonymous said...
This comment has been removed by a blog administrator.
Prasanth said...

Hi,

You raised a pertinent point about "good coders getting promoted to managers". It happened to me. I love coding but once I became a "manager" I hardly code at work (though I do in my spare time). The issue is, Indian companies do not have a well laid out career path for "coders" as it is considered an "entry level" or "junior level" activity.

Regards,

Prasanth

Rangachari Anand said...

A very nice post! I took my current job at IBM research explictly in order to get time to write code. There are a few places where you don't get penalized for wanting to actually build things :-)

Anonymous said...

I agree with some parts of your post... but not wholly. The whole point behind a whole formal interview and such process is that you need someone presentable and someone who has the right aptitude to become a coder. That is why the puzzle-solving and such stuff come into the picture: the better you are at these: the better the chances of you being a good coder in the future. Companies like Google and Microsoft can do with the idiosyncratic variety of coders, but not any random software & consulting company.

On the whole I liked the analogy of the drivers and such stuff :)

abhinav said...

Bingo, ur post is right on the spot. There is absolutely no connect between your educational qualifications and your ability to code(especially in context of a service industry). I have no idea why the companies could not recruit much much cheaper coders by means of online exams of the Google Jam/SAT kind, right after high school.

prope//er said...

Once in an interview some 10 years ago, Steve Jobs said of Microsoft,


The only problem with Microsoft is they just have no taste, they have absolutely no taste, and what that means is - I don't mean that in a small way I mean that in a big way. In the sense that they they don't think of original ideas and they don't bring much culture into their product and you say why is that important. Well, you know proportionally spaced fonts come from type setting and beautiful books; that's where one gets the idea. If it weren't for the Mac they would never have that in their products and so I guess I am saddened, not by Microsoft's success - I have no problem with their success, they've earned their success for the most part. I have a problem with the fact that they just make really third rate products.


A number of Steve Jobs employees were poets who were also computer scientists. Writers who were graphic designers. This is why mac is what it is.

Here is Steve Jobs about design:


Steve Jobs: Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it's really how it works. The design of the Mac wasn't what it looked like, although that was part of it. Primarily, it was how it worked. To design something really well, you have to get it. You have to really grok what it's all about. It takes a passionate commitment to really thoroughly understand something, chew it up, not just quickly swallow it. Most people don't take the time to do that.


So you see, creating software is not just about coding but looking at the big picture. If software has class, it will show up. What we have going on in BPO sector is that people are being passionate and they don't have to be passionate. They are simply given the class, sequence diagrams and asked to code a bunch of JSPs displaying data from a Mainframe or some Oracle database. When people are forced simply to do x,y,z, there is no incentive to look at the larger picture or what the application is about and why one is even writing the application.

By that rationale, creating any kind of software requires skill and class. Writing bits and pieces does not. Earlier, when the demand was high, they chose to select the so called best of the crop and they went to the IITs. You would see boatloads of IITs getting recruited at TCS etc and at that time those guys thought they were gods. Six years later, a grad with MCA and a decent grade probably makes more money and gets promoted than the IIT grad at TCS 6 years ago. The point I am trying to make is that our educational qualifications do matter. For example, one would be 100 times much better at coding if one clearly understands how compilers and operating systems work. But to acquire that knowledge, one need not be from IIT. That does not mean, everyone out there knows completely about compilers and Operating systems. You need good technical education, read some great literature, and be passionate.

Someone rightly said, "code is poetry."

prope//er said...

small correction... The sentence, "What we have going on in BPO sector is that people are being passionate" should have read as "What we have going on in BPO sector is that people are NOT being passionate even if they want to"

To add, please note that we are in the software services sector, anytime, you hear services, you provide services in exchange for money, you do not have the freedom to be creative because the solution may not require you to be creative at a larger level. Had you been writing a product on your own or writing code for opensource, it would be a different. However, our brethren are so screwed @ 12 to 14 hours a day that they don't really have time to think about what they like and what they want to do with their skills rather than simply making money for the employer.

later
//

Varun said...

Take 1000 random engineers and 1000 random accountancy grads. Which bunch will have more number of better, more easily trainable coders?

The examples that you have quoted about your 8th Standard ubergeek and your accountant friend are rare exceptions than the norm.

Neelakantan said...

//, Varun

The point I am trying to make is that the qualification aspect is overrated when you have to work in the IT services industry. But if you need to, say, create a product, you need your share of maverick coders.

The other point I am trying to make is that having said that qualification is overrated, companies can fish for talent across the spectrum of qualifications.

prope//er said...

The point I am trying to make is that the qualification aspect is overrated when you have to work in the IT services industry. But if you need to, say, create a product, you need your share of maverick coders.

---> I disagree. I believe that irrespective of services or product development, people need to feel empowered and creative to generate the best output. Currently, the Satyams, TCS', Infosys' all treat their IT workers as skill for some change and not as creative people. That is not good.


The other point I am trying to make is that having said that qualification is overrated, companies can fish for talent across the spectrum of qualifications.


---> Agreed.

Anonymous said...

I started it as a comment to your post. But instead made a separate post in my blog. Check it out at

http://kpanchayat.blogspot.com/2006/10/myths-about-computer-science-and.html

Came here from DP.

-Siva

Freudian Slip said...

There seems to be more and more of a need for management. My friend was also promoted from a coder to a manager. He misses coding though!
Matt

Ankit said...

Hi,
Just came across your blog ....I just recently appeared for placements this season(I belong to IIIT,Allahabad).Well most of the Indian based companies(I got in TCS) are not even asking coding questions anymore.My tech interview lasted 3-4 min.They are literally taking anybody who they can find.Their only emphasis is on personality and communication skills .Some companies like Induslogic do emphasis solely on tech perspective.They are even relaxed on formal interviews.The next thing is that most of the students in good colleges are looking for jobs in high end product companies like MS,Yahoo etc.No one from my college is planning to go to TCS,Infy etc whatever maybe the package

Anonymous said...

The Indian IT revolution so far is based on cost advantage.Cheap labor and the first mover advantage got us this far.What we need is more product companies from india to move to the next level.Working in a product environment is lot different than services play.You will have a mix of talent and question of coders nirvana do not arise

Cat said...
This comment has been removed by a blog administrator.