tombombodil wrote:I really don't consider myself a particularly knowledgeable developer. Smart? Sure I guess, my grades indicate that pretty clearly, but being smart doesn't make you inherently good at anything and it certainly doesn't make you knowledgeable.
But interacting with my peers and slightly less than peers has made me realize that many people know even less than I do about a lot of things. I never thought I'd be the go to guru on ANYTHING at this point in my career, let alone stuff that I'd consider pretty fundamental development know-how.
Over a career (I started a career as a developer, I think, in 1988), you end up doing the same thing over and over again. You develop a technique and, if it works, you keep using it. Constantly doing things generally crowds out the time needed to learn new things or better ways to do the things you already do. It's only when faced with either a new problem or a situation where your tried and true method won't work that you actually have to go out a learn something.
When I got out of school and went into the work place, I found LOTS of people that didn't understand things that I thought were basic (like why this loop is faster than that loop). It's just because they never had to know it before.
My favorite memory like that was from about 1989 when these older mainframe guys could not figure out why their letter would never print correctly when they switched from a mono spaced font to a proportional spaced font. I told them what the issue was and they looked at me like I was speaking Klingon. I think they spent a week on it and gave up.