Friday, November 14, 2008
Peter Norvig , the director of research at Google, wrote an article Teach Yourself Programming in Ten Years . He asked why everyone was in such a rush to learn programming languages in a hurry, resulting in an endless offering of books, websites, blogs that promised to teach programming in 24 hours or 7 days.
Peter Norvig did a good job explaining why good programmers took years to refine their crafts. I could agree with him. But maybe there is a plethora of reasons why developers are always in a rush, and why they must. I used to think that learning one language, taking the time to fully understand it was much more important than trying to catch the next silver tools. But now I realize that this is a completely non sensible strategy.
Developers are not coding robots; they have family to feed, bills to pay and peers to compare. They are smart, well, at least smarter than the average population, and maybe no less smarter than doctors, lawyers and bankers. But their earning is never as high as doctors and lawyers, and certainly cannot compare to the bankers'.
Now, if the developers stay in a field for a long time, there is a real danger that they will lose their marketability. Once that particular skills are no longer available, the developers have no way to go.
This is a real world, my friend. No one really cares how good you are with the so called dinosaur languages unless they are also doing those languages. Even though design patterns and unit testing are important , but headhunters and HR are more interested in skills and languages , thank you very much. Tell them that you are very good in GOF in C++ but know nothing about database design... I think you will be the first one to be filter out.
So yup, even though no one has the time to learn everything, but they have to learn as much as possible. It was like buying insurance to cover as much cases of accidents as possible, just in case. In other words, the developers have to pick up as many technologies and skills as possible just to remain marketable and stay competitive.
We are in a rush to jump into the latest bandwagon, even though we know it's more important to just learn the fundamentals. But we have no choice. Without doing so we will become dinosaurs and at the mercy of our current job.