Agree with you Rohan - you are spot on. I think it is important understand that programming itself is agnostic of any language (implementations) and Java or any other language for that matter is just a way of implementing a solution. Thus it is important to understand Theoretical computer science - Turing machines, sorting and searching algorithms, complexity of loops in terms of time and space etc etc etc. Joachim Rohde's post in this thread
echoes the same point.
However, most of the service sector biggies in India mostly need people who can deliver workable code - not neccessarily caring about quality and efficiency of the code.
No offence meant to anybody, but I think Rohan makes a pefectly valid point here.