In other words, keep your mind open. Don't become a domain expert, as advised, and then convince one's self that that domain is The One True Path. Conversely, don't glance at a particular domain, assume that casual knowledge to be canonical, and then write off that domain as A Path of Fools.
Young programmers are especially susceptible as the myopia of youth prevents one from grasping the miniscule nature of their own knowledge. Once one gets a bit older, he/she tends to realize that what they know is but of grain of sand in the ocean.
> Don't become a domain expert, as advised, and then convince one's self that that domain is The One True Path
I first parsed this as "Don't become a domain expert, as advised. Also don't convince one's self that that domain is The One True Path".
Lest someone else confuse it the same way, this does not imply that becoming a domain expert is wrong; it means that after you become a domain expert, you should still keep an open mind.
Importantly, domain expertise is how you get to the big $, which I'm sure is of interest to most young programmers... The amount I can get selling myself as a developer with expertise in my field over selling myself as a generic developer in some other field is quite substantial.
As I've matured, my confidence in my own knowledge has only increased. People who play the "It is a truly wise man who knows he is not" card are usually trying to limit you. The main thing to keep in mind is that your intelligence doesn't preclude others from being intelligent either. Have confidence in your abilities, but don't let that stop you from having confidence in others' abilities.
> People who play the "It is a truly wise man who knows he is not" card are usually trying to limit you.
I've always felt just the opposite. Acknowledging what you don't know can furnish you with the drive to learn it - thus becoming better. Understanding you're not "wise" is the first step to becoming so. The moment you get to confident in your abilities is the moment you stop learning.
I'm very confident in my abilities, and learning new things is my favorite thing to do. One can be confident without facing petrification, just like one can be unconfident and decide to give up learning new things.
I'm not saying this point of view doesn't have its place. I just think it's important to understand the dynamics involved with it. You don't tell someone they don't know as much as they think they do unless you're trying to stop them from doing something (you feel) they shouldn't be doing. Trying to paint it as enabling them is disingenuous. If you want to enable them, you have to work to help them learn good behavior in addition to limiting the bad behaviors.
I think I understand what you mean, but I don't think that's what the comment your are replaying to is all about. I think it's good to do both, trust in your knowledge (and so don't "join a priesthood") and still know that you "nothing" (or just a tiny bit).
Hmm, or maybe I didn't understand you or the first poster and that's what you meant. Sorry, I'm a bit confused right now.
Also I wonder how many people ever read this. Most of these things you'll realize sooner or later as it is what really makes you a good and experienced programmer. I'd just suggest to be open minded and think for yourself, but I guess that's a good suggestion for your whole life.
The way I read "become a domain expert" was not really as an expert in, say, Java or .NET, but in an area like web development or game design.
With a less technology-based focus it's easier to avoid One True Paths as you have a better perspective on (and soon a better knowledge of) the alternatives to whatever you happen to be using at the moment. It's also easier to stay knowledgeable when things change.
Comments
I would also add this: don't join a priesthood.
In other words, keep your mind open. Don't become a domain expert, as advised, and then convince one's self that that domain is The One True Path. Conversely, don't glance at a particular domain, assume that casual knowledge to be canonical, and then write off that domain as A Path of Fools.
Young programmers are especially susceptible as the myopia of youth prevents one from grasping the miniscule nature of their own knowledge. Once one gets a bit older, he/she tends to realize that what they know is but of grain of sand in the ocean.
> Don't become a domain expert, as advised, and then convince one's self that that domain is The One True Path
I first parsed this as "Don't become a domain expert, as advised. Also don't convince one's self that that domain is The One True Path".
Lest someone else confuse it the same way, this does not imply that becoming a domain expert is wrong; it means that after you become a domain expert, you should still keep an open mind.
Importantly, domain expertise is how you get to the big $, which I'm sure is of interest to most young programmers... The amount I can get selling myself as a developer with expertise in my field over selling myself as a generic developer in some other field is quite substantial.
Yes, that was poor phrasing on my part. It should have read something like "By all means, become a domain expert, but don't convince..."
Meh.
As I've matured, my confidence in my own knowledge has only increased. People who play the "It is a truly wise man who knows he is not" card are usually trying to limit you. The main thing to keep in mind is that your intelligence doesn't preclude others from being intelligent either. Have confidence in your abilities, but don't let that stop you from having confidence in others' abilities.
> People who play the "It is a truly wise man who knows he is not" card are usually trying to limit you.
I've always felt just the opposite. Acknowledging what you don't know can furnish you with the drive to learn it - thus becoming better. Understanding you're not "wise" is the first step to becoming so. The moment you get to confident in your abilities is the moment you stop learning.
I'm very confident in my abilities, and learning new things is my favorite thing to do. One can be confident without facing petrification, just like one can be unconfident and decide to give up learning new things.
I'm not saying this point of view doesn't have its place. I just think it's important to understand the dynamics involved with it. You don't tell someone they don't know as much as they think they do unless you're trying to stop them from doing something (you feel) they shouldn't be doing. Trying to paint it as enabling them is disingenuous. If you want to enable them, you have to work to help them learn good behavior in addition to limiting the bad behaviors.
I think I understand what you mean, but I don't think that's what the comment your are replaying to is all about. I think it's good to do both, trust in your knowledge (and so don't "join a priesthood") and still know that you "nothing" (or just a tiny bit).
Hmm, or maybe I didn't understand you or the first poster and that's what you meant. Sorry, I'm a bit confused right now.
Also I wonder how many people ever read this. Most of these things you'll realize sooner or later as it is what really makes you a good and experienced programmer. I'd just suggest to be open minded and think for yourself, but I guess that's a good suggestion for your whole life.
Good advice.
The way I read "become a domain expert" was not really as an expert in, say, Java or .NET, but in an area like web development or game design.
With a less technology-based focus it's easier to avoid One True Paths as you have a better perspective on (and soon a better knowledge of) the alternatives to whatever you happen to be using at the moment. It's also easier to stay knowledgeable when things change.
"I know that I know nothing, therefore I am wise." - Socrates