Thursday, June 25, 2009

Software Development Professionals = Problem Solving Capability

Quite a few people have asked me what does it take to become a software development professional. I have also been asked what should I learn in order to become a software development professional. I think the most important thing that a software development professional should learn is how to be able to solve a problem. It does not matter what means are used in solving the problem, all that matters is if the problem is solved and is it solved in the most efficient manner. The language does not matter, the tools don't matter; just the approach matters.

I had a professor when I did my Masters In Computer Applications - she taught us C, Pascal and Fortran. Yes we had all three languages as one subject in one semester. The teacher who taught us that subject was brilliant. She spent the whole semester teaching us how to solve problems in plain English. That is all we did in class, just solved problems. She taught us the languages for just a few classes. At that time we all thought she was nuts - but I find that what she taught us then is invaluable. I don't use any of the languages that she taught us but I use the problem solving skills that she taught us without which I would not be the software development professional that I am.

So its important to take each problem as a challenge and to attack it with enthusiasm and vigor. You should have the curiosity to solve the problem. You should have the curiosity to investigate how problems have been solved in the past and learn from it. It is very important to be excited when presented with a problem. It should not be a big burden. If you have these kind of thoughts then you are destined to be a great software development professional. Tools and languages are just a means to an end.

1 comment:

Kiran banda said...

One other thing that a s/w developer needs is to "think basic". The other day, I was asking my cousin to write a small program in his favorite language that tells me if a number is even or odd without using the module (%) operator ! All of us now that a number divisible by 2 is even, but to program this, you got to "think basic", isn't it?