Saturday, March 14, 2009

I BELONG TO 80% CATEGORY OF PROGRAMMERS

As Jeff Atwood mentioned in his famous blog article (http://www.codinghorror.com/blog/archives/001002.html) that there are only two kind of programmers :

There are two "classes" of programmers in the world of software development: I'm going to call them the 20% and the 80%.

The 20% folks are what many would call "alpha" programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90's; the people who write lisp compilers and learn Haskell on weekends "just for fun"; they actively participate in open source projects; they're always aware of the latest, coolest new trends in programming and tools.

The 80% folks make up the bulk of the software development industry. They're not stupid; they're merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them -- usally VS.NET if they’re doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They've never used Linux, and aren't very interested in it anyway. Many have never even used version control. If they have, it’s only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers.


So in retrospective of my little more than 3 years of experience as a software developer i MUST say that i still belong to 80% category of programmers. YES I DO. There are thousands of reasons for this which i can think about but few of them that screams from my heart are -

  1. I never started this profession with a zeal, that is required in this ART of software development for masses or business.
  2. Never really did any useful hard core projects for fun, except few academic ones to fill up the marksheets of my 4 year B.E Computer. PERIOD.
  3. Limited course book or some poorly written ludicrous course manual were my world, even though i am saying "course book" believe me never ever dared to look beyond the pages which was listed in our damn syllabus. FUNNY HUH!!
  4. Big O Notation, finite automata. GIMME A BREAK!!. i swear these things really vexed me a lot. A LOT. I used to wonder what people do with these theoretical shit and why are we ever reading it?? WE are not going to design compilers!! there are already so many damn compilers out there created by few innate supernatural geeks.
  5. Never had a vim to dig more than what is required for those lame assesment and semester exams. Never enjoyed the real motive behind solving and understanding the Producer-Consumer, Dining Philosophers etc. problems.
  6. Totally failed to envision the possibility that there could be an applications like facebook, orkut and others with humongous number of users. Spring, Hibernate and more that are the rock of enterprise applications today. All that came during the time or after i completed my so called B.E Computer.
  7. Perception that all those computer science theory isn't doing any good to get the job, Only concern was how to get a decent paying job. Limited Scope of imagination.
  8. I vacillate too much. Ruby, Groovy, Flex, Scala, JavaFX but never really could come up with any little working project to boast off using all these technologies. That means i read but never act.
I know by this time you must be feeling awfully PITY on me isn't it?? I was a good student though, i worked hard on occasions, have a decent marksheet reports all my life, never had to spend money on my education always scholarships, but somehow the cake never baked the way it should have been. But to be honest there are few odd reasons for my lack of getting it right from the day one. I think it's obvious too when you are in an environment where your imagination is limited by the infrastructure and accessibility issues which every students has to suffer in our country, not to blame my beautiful country but that's the way it is. But WHATEVER, i am getting it now and i am starting to feel the zeal that is needed for being a software developer, it feels good when people use the software that you worked on. I have started doing some projects that involves some really cool stuffs, i am dying to work on projects that involves concurrency management, scalability etc. etc. I can think of few facebook application ideas but still see if i can come up with it. If not haskell i try Scala over the weekends :)

With all this being said there are few gotchas in above 80-20 rule, like i tried linux in early days of my college years i have used version control and sometimes i really act like as if i belong to 20% category.

I wonder how many of you feel the same!! thanks for reading my whimisical ideas that bothers me at times :)