This is a reaction to SpecializationIsForInsects. Sam put his comments in the middle of my comments, and I did not like that, so I broke them out here, where I could answer them.
The original quote just says, "should be able to". I shall assume that it includes, "if the programmer wants to". Seen this way, I do not really see how this is dangerous. In fact, the opposite statement would be. -- Sam Shard
The original quote does not say "should be able to learn". If it had, I would have agreed with it. Given enough time, a human can learn just about anything. I could have been a doctor, a lawyer, or a chef. However, I didn't go to medical school (I dropped out of a pre-med program to study computers), haven't studied the law, and only cook simple things. There isn't time in life to learn everything. It is important to know what you can do. I am not able to diagnose cancer, to make an air-tight contract, or to make an elegant dinner. Fortunately, I know people who can do those things for me. --RalphJohnson
But making mistakes is part of the learning process. I have seen enough projects run to the ground by so-called experts that I think an ambitious, willing-to-learn programmer with experience has about the same probability of success. -- Sam Shard
You are arguing on my side! I think one of the biggest problems is that people don't know the limits of their expertise. They think that just because they are experts in one area, they can handle problems in other areas. I know that I make that mistake, and I see other people make it all the time. You can tell an expert by the results. You are only an expert software developer if you succeed at developing software.
Making mistakes is certainly always part of learning. And so-called experts often fail. But when a *real* expert says "that is easy and I can do it in two months" then you know you will probably get it, even if it takes a bit longer than two months. --RalphJohnson
If you do have the luxury of access to a real expert, by all means indulge -- Sam Shard
This is completely wrong. Never think it. Getting access to a real expert is not a luxury, nor an indulgence. It is almost always possible, is much cheaper in the long run, and it is getting easier and easier. Even if you are in the wilds of Illinois, you can usually get help over the internet.
I tell my students that when they want to learn something, their first recourse should NOT be to go look it up in a book, but to find an expert. The expert will tell you which book to read, will answer questions, will point you to other experts. Learning how to find real experts and how to get them to help you is an important skill that everyone should have. For example, one good technique is to invite them out to lunch.
Experts are not a luxury. Some experts are overpriced, but not all are. In the long run, you save so much time and money by having people who know what they are doing that specialists are worth the price.
Of course, you have to know how to use specialists properly. See SpecialistsAndXp. --RalphJohnson
There are situations in which over-use of "find an expert" can send the experts into hiding.
A "perils of success" example: Sun Microsystems experienced explosive growth in the mid 80's, to the point where the average tenure of an employee with the company was measured in weeks (in the high 10s range at one point, as I recall). Among other system effects of rapid growth was that many old-timers were swamped by newcomers seeking help up the learning curve. Friends who were new to Sun complained that they couldn't find anyone to answer their questions. Friends who were old-timers (being there a year qualified) complained that they had take protective measures to avoid a high level of interruptions from newcomers.
I've seen similar effects in some of the comp.lang newsgroups in late September, when school is back in session and fresh undergrads get their first CS homework. The noise level in some groups goes way up as students plea for help. While some experts are gracious with their time, others go absent until the noise level subsides.
I've been involved with financial tele for about 15 years so that I get a great many questions when I'm on site (I consult). I don't see a vast difference in the kind of *usage* being done by the college entrants and the newer horde of programmers that comes every few years. I usually draw my line at the readiness of the questioner to go and read that provided reference. When I am used more like a dictionary than a mentor, I become a little absent minded.
As for the college kids on newsgroups. You can usually tell from the building-block kind of question it is. --HergerThomann