You know what? I don't like the fact that India is IT superpower. Whenever something gives a good opportunity for people to make money, it just becomes a commodity. It's seen only as a tool to derive money.
This person, Rahul* is my neighbour. He is an MCA and work for a big Indian software company. He's quite close to me, and we use to chat when we get free time. He recently got married. His wife is also an MCA. A few days back when I was talking to him he told me that he particularly wanted to marry an MCA or BE Computer Science girl. He wanted his wife also to earn money for the family. He wanted her to search for a job and start earning ASAP.
He was quite unhappy about his wife. He said, “Payal* (his wife) doesn't remember anything she studied in the previous semesters. Even when I ask her to study certain concepts, she doesn't. I told her that those are really important concepts. But still she doesn't care to learn them. I hate this girl.” He continued, “We can study only when we are in college. That's when we get time. After getting a job, the whole day is absorbed by office and in the evening we really need some rest. I know a lot of people who has never touched a book after completing their college. But I am serious about my career. I go on studying new technologies. Even after 6 years after my college days, now I am continuing to learn.”
I was a bit confused now. He started off with blaming his wife. Then he said, unlike everyone else he continues to learn. I was not sure if both are related or not. (I know very well how he “learns” new technology. I never had respect on his technical skills. Quite often he proves that my assumption about his “knowledge” is not wrong.) I told him, “Oh really.. that's great. I completed my college only last year. Now I cannot even spend 15 minutes continuously in a book. If you are still learning technology, that's really good.”
He said, “At least you have worked for a year. Payal has not even completed her course.” I interrupted him, “Is it? When is she completing her MCA?” “This is her final semester,” he replied.
“She has to get a job soon. I asked her to learn J2EE,” he said.
“Yea.. that's a nice thing. Nowadays J2EE people will get a job easily,” I said.
“She asked me what J2EE is. I was really irritated. She is in college and she doesn't even know what J2EE is. Controlling my anger, I asked her if she studied about Java servlets, JSP, or EJB. She said that she studied only those things covered by Java Complete Reference.”
“Quite a lot of people only use that book. But I hate that book,” I said.
Without even caring what I was saying, he continued. “I told her that she had only studied Core Java in her syllabus. So, I asked her to start learning J2EE. I asked her to start with servlets.”
“Oh good. Is she learning that now?” I asked him.
“No, she always has some reasons for not to learn new things. She says she's not able to understand anything in that. And she says though she had Java in her syllabus she doesn't know Java. So it's very hard to understand the high level concepts without knowing the basics.”
I was about to say something supporting his wife. But thank god, I didn't say anything.
He continued in his flow. “She wants to learn everything from scratch again, starting from Hello World. I told her that it's not going to help her. If she starts to learn everything from the basics, she would need at least three months for Core Java alone. When can she then start to learn other things? Before going for an interview she must know J2EE, .NET, and Oracle at least. I told her to take 30 days – 10 days for each. But she is not at all understanding that it's urgent. She says the same thing again and again that she wants to learn the basics first.”
Let me pause the scene at this place and start my commentary. Most of our neighbours and friends are like this only, no? Why we don't want to learn from the basics? Are we seeing technology as just a tool for making money? All this shit is just because software engineers gets a “lot of money” at the end of the month.
When somebody asks me how they could learn some technology, I would advise them to spend a lot of time in basics so that the higher level concepts are obvious to them. But how many software engineers understand machine language? How many of us know why our OS books say “if we allocate the CPU to another process while one process is doing its I/O, we can improve throughput”? How many of us at least thought once in our life time how does our Pentium-4 CPU understand Java objects?
I have seen people who has learned (or at least tried to learn) how is break statement different from continue statement without knowing how for statement works. All that's because, in an interview we may be asked how break is different from continue. But we don't usually expect the interviewer to ask us how for loop works. I don't get surprised when they're not able to implement a very simple function later in their job. But the irony is that we can manage to survive in the industry even if we don't know how a constant is different from a variable.
Yes, I hate the fact that India is considered as IT superpower (at least by Indians).
* Names I have used are fictitious.