My first reaction was pretty much identicle, right now you can do well at almost anything purely based on conscientiousness, including video games, work, school, and social interaction. I don’t know of any good way to measure general talent, but when I learn most things I tend to be quite bad at them until I enter tsukoku naritai mode. Perhaps this should influence my career decision somewhat, its hard to tell if talent or effort is more crucial for programming.
Perhaps this should influence my career decision somewhat, its hard to tell if talent or effort is more crucial for programming.
Effort. Always assume effort. Talent will speed up the learning process in the early stages, is likely to make effort easier (because it is more fun) and at the extreme upper ends of of performance probably gives a higher limit. But in general effort plus social politics skill will determine your career success.
Despite what they are taught likely to be about themselves, what they might think of themselves, and what western culture expects of them, programmers are more creative artists than analytic engineers.
The difference is most tangible from the management perspective since motivating programmers is less like motivating chemical, mechanical, or any other sort of engineer and more like motivating commercial artists with less pretense, who were never led to believe they were meant for something greater. Dissatisfaction from programmers grows in much the same way it grows in commercial artists as well, though they programmer is less likely to specifically identify his or her complaint and the artist is more likely to complain about having sold his or her soul.
Common responses to criticism of work among programmers align more with those among artists than those among engineers. Again, I learned this from a managerial perspective.
The most important advice that may be given to starting artists (excluding all the low-hanging fruit advice that is best for everyone in general, of course) isn’t about discovering your own inner talent or anything similar, instead it is about discipline: “Ideas are not swords you can brandish about in triumph. What matters most is the Sit Down, Shut Up And Get It Done. Only there will you find the true steel for your craft. Only there, will you know if you are worth the words out of your mouth.”
its hard to tell if talent or effort is more crucial for programming.
I would suggest talking to some programmers.
My intuition is that there’s something of innate talent involved in programming, so that you can divide people into two populations: those whose brain makeup causes them to find programming intuitive and fascinating and cool, and those to whom it just doesn’t make sense. If you’re considering it as a career, presumably you fall into the first category. Beyond that, I would guess that conscientiousness is the biggest predictor–my one-semester programming elective was enough to show me that it’s really time-consuming.
But I’m not a programmer by specialty. An unusual percentage of LWers are, though, so maybe someone can give you advice?
“The Camel Has Two Humps”, which IIRC has been linked here before, does purport to find a bimodal distribution between people who can and can’t program. I’m not at all sure if that has anything to do with inborn talent, though, at least beyond basic general intelligence.
At various points in my career I’ve found reasons to teach people programming skills, and my n=1 impression is that the ability to internalize basic programming has little to do with personality (though conscientiousness helps, and I suspect openness to experience might too) and a lot to do with the student’s level of comfort with mathematical thinking. Not necessarily advanced math (you don’t need anything more complicated than algebra to program except in specialized domains), but you do need to be very comfortable with a certain level of abstraction. I suspect that might have more to do with the distribution in the linked paper than the “geek gene” concepts I’ve heard tossed around elsewhere: at the level of the math prerequisites for CS 1 it’s still possible to do well by solving problems mechanistically without a good grasp of the abstractions involved, but that won’t cut it in computer science. And it’d probably be difficult to teach that in a semester.
The thing that wasn’t replicated was their attempt at a predictive test of the distribution (based on a particular explanation they thought applied), not the existence of the distribution itself, which is something that was observed in grade patterns in CS compared to other subjects (though I don’t know how rigorously established it is).
Well, their original paper claimed that (eg) math grades are typically a bell curve, whereas CS grades are typically bimodal (with examples from one university). But again, I’m not sure if this is something that’s been rigorously demonstrated.
Good to know. I thought it had a bit of a questionable odor to it, but I wasn’t able to find any replications in the brief time I spent looking into it.
I don’t think it has much to do with personality either, except, like you said, willingness to work hard (especially if you’re someone who starts out finding it very difficult.) But I think that a lot of people, even people who can work up to the level of calculus in math, go at it with the mindset of “memorize that Formula X gives Answer Y” instead of trying to understand how and why Formula X relates to the underlying structure of the problem so that it’s obvious that it should give answer Y, but gives Answer Z in a different context… You can get by with memorizing formulas in math classes, at least the way they’re currently taught and tested. It’s a lot harder to get by with that habit that when you’re programming.
(On the whole, the people I’ve known whose minds appear to work like this aren’t noticeably “lower” intelligence, however you define that. They just don’t think of math as something where they should be applying the analytic part of their mind.)
Your intuition relating to “innate talent” is wrong. There is nothing innate about any of the “talents” required for programming, other than what generally comes with the package of most human brains. This might be a simple question of wording though, as if you change the words to “inner” talent, I would be more inclined to agree.
Simply put, unless a person is simply incapable of mental change and learning, then they will be able to “learn” and self-adjust into “obtaining” the “talents” required. However, this usually requires much more effort than people (read: the small sample size of the people I know who are not programmers but have attempted to learn how to program, which amounts to eight individuals) are willing to put forth, hence the common misconception that there is this “innate talent” that you simply must have to become a programmer.
I was using ‘innate’ means “something present in a person’s brain and/or skill-set when they start trying to learn how to program.” It might have something to do with how open-minded they’ve been in the past to learning new ideas, because if they’ve been open to that, then they’ll have a wider base of knowledge and practice thinking about problems at a certain level of abstraction. I don’t think it’s necessarily innate as in “determinable at birth”–in fact, that seems really unlikely to me, but what I know about the subject doesn’t allow me to distinguish those possibilities. (The phrase ‘inner talent’ is one I’ve never heard used before and would not have thought to use, so I don’t know exactly what area it would cover.)
Do you agree that some people will start learning programming and find it easy, intuitive, and immediately fun, and not have to put in a lot of conscious effort, whereas others will need to lean much more on their capacity for mental change and learning? This is what I’m talking about.
Yes, on that I agree. I suppose I was more disagreeing on the choice of word than on the concept of something being already there in some and lacking in others. The dictionary definitions (referring to Dictionary.com and my old pocket dict) of “innate” all seem utterly inappropriate for this usage.
However, I’ll still nitpick on the point of conscious effort. My “definition” of inner talent is that of an abstract representation of the “source” of the talent in question. An “outer” talent is one where, to explain by example, a person’s genetic profile is directly favorable to athletics by producing the required muscle mass more efficiently with less prodding, and recovering from exercising damage more easily, and so on. By contrast, an “inner” talent is one where synergies, “affinities” in the system, side-routes, or other indirect or invisible. I always fail to find the words to explain complex dynamics where various seemingly-unrelated things converge to the same location to push in the same direction, but that’s about the kind of psychological or physical events I’m trying to refer to with “inner” talents.
Some person will have no particular skill or strength that is directly beneficial towards chopping wood, but once they try, suddenly a bunch of unrelated past experiences or other points about their current self help them catch on quickly to just the right way of holding the axe and establishing their footing and swinging and so on.
What I want to make a point for is that both the processes of awakening an inner talent or slowly going through all the steps from nothing can be either conscious or unconscious. This will depend on many factors that may not be obvious.
I agree that I probably shouldn’t have used the word ‘innate’; given the meanings people associate with it, it was more likely to confuse people than help. Maybe “prior talent” or something similar?
My “definition” of inner talent is that of an abstract representation of the “source” of the talent in question. An “outer” talent is one where, to explain by example, a person’s genetic profile is directly favorable to athletics by producing the required muscle mass more efficiently with less prodding, and recovering from exercising damage more easily, and so on. By contrast, an “inner” talent is one where synergies, “affinities” in the system, side-routes, or other indirect or invisible. I always fail to find the words to explain complex dynamics where various seemingly-unrelated things converge to the same location to push in the same direction, but that’s about the kind of psychological or physical events I’m trying to refer to with “inner” talents.
I think I understand the concept you’re trying to convey, but I find that youre’re using the words ‘inner’ and ‘outer’ in a very unconventional way that I’ve never heard before, which is also likely to confuse.
Simply put, unless a person is simply incapable of mental change and learning, then they will be able to “learn” and self-adjust into “obtaining” the “talents” required. However, this usually requires much more effort than people (read: the small sample size of the people I know who are not programmers but have attempted to learn how to program, which amounts to eight individuals) are willing to put forth
This is an untestable claim. How would you distinguish between your claim being wrong and a person not putting out enough effort?
I fail to see how it is untestable. It might be impractical to test, but if the survival of all humans suddenly depended on their future programming skills (e.g. because a dictatorial alien appears and decides to kill off any human they can’t use in their programming slave workshops), it would certainly be tested, as far as I can tell.
I also didn’t really define my usage of the word “effort” very clearly or unambiguously, which is intentional: I’m not in the best position to determine/figure out the exact line at which the scope of the term “effort” should be drawn for the statement to be solid.
The alternative, however, being that a person simply cannot learn and obtain talents, would imply that some individuals have a meta-talent for obtaining talents, as it’s been demonstrated before that people can (and often will in extreme situations or environments) adjust in such a manner. This, to me, seems much more complex than “Everything can be learned, including talents and how to obtain talents”, so by Occam’s Razor I prefer to believe the former.
I don’t know to what degree innate talent is important in programming ability. I tend to agree that most people would be capable of learning to lot of things that are generally thought to require innate talent.
However, I’m not sure that “effort” is the most important hurdle stopping the learning from happening. First, people may not even believe that they can learn—they go from finding something hard to understand to assuming that they aren’t the sort of person that is good at this. Secondly, they have to find out what to learn. In the case of programming an average set of lecture notes or a “teach yourself language X” probably won’t do the job. A really good textbook may—but it won’t quickly diagnose misunderstandings, which a good tutor will (I lectured and tutored computer science and programming for a number of years).
Yes, I attempted to infer this when saying that it requires “much more effort”. First, they need to make an effort to be more aware of themselves, then to be able to learn and develop new mental models of their own accord on things of their choosing, in a conscious manner.
Then, they need to, as you say, find out what to learn. This can be achieved through the effort of looking for resources (including “human resources”) that can help you figure it out or give you the right information.
Notice that at every step, there is effort required. You might call it a “meta-effort”, in a sense, since you also need to make the effort of doing effort, but I like to simplify and just say that it’s a lot of effort that most people aren’t willing to make. After all, I’m usually explaining this to the very people who aren’t, in an ultimate play to get them to either start gearing up for a long trek into Better-Person-Hood or give up about becoming a programmer/researcher/etc.
If you define “talent” as a product of your current ability to produce and visualize mental models of complex systems, especially “from nothing”, then it is the most defining factor for the higher maximum awesomeness of programs you can code at present.
This “talent” can be enhanced and self-improved through effort, however, in a very similar manner to making oneself more “luminous”.
My first reaction was pretty much identicle, right now you can do well at almost anything purely based on conscientiousness, including video games, work, school, and social interaction. I don’t know of any good way to measure general talent, but when I learn most things I tend to be quite bad at them until I enter tsukoku naritai mode. Perhaps this should influence my career decision somewhat, its hard to tell if talent or effort is more crucial for programming.
Effort. Always assume effort. Talent will speed up the learning process in the early stages, is likely to make effort easier (because it is more fun) and at the extreme upper ends of of performance probably gives a higher limit. But in general effort plus social politics skill will determine your career success.
Despite what they are taught likely to be about themselves, what they might think of themselves, and what western culture expects of them, programmers are more creative artists than analytic engineers.
The difference is most tangible from the management perspective since motivating programmers is less like motivating chemical, mechanical, or any other sort of engineer and more like motivating commercial artists with less pretense, who were never led to believe they were meant for something greater. Dissatisfaction from programmers grows in much the same way it grows in commercial artists as well, though they programmer is less likely to specifically identify his or her complaint and the artist is more likely to complain about having sold his or her soul.
Common responses to criticism of work among programmers align more with those among artists than those among engineers. Again, I learned this from a managerial perspective.
The most important advice that may be given to starting artists (excluding all the low-hanging fruit advice that is best for everyone in general, of course) isn’t about discovering your own inner talent or anything similar, instead it is about discipline: “Ideas are not swords you can brandish about in triumph. What matters most is the Sit Down, Shut Up And Get It Done. Only there will you find the true steel for your craft. Only there, will you know if you are worth the words out of your mouth.”
I would suggest talking to some programmers.
My intuition is that there’s something of innate talent involved in programming, so that you can divide people into two populations: those whose brain makeup causes them to find programming intuitive and fascinating and cool, and those to whom it just doesn’t make sense. If you’re considering it as a career, presumably you fall into the first category. Beyond that, I would guess that conscientiousness is the biggest predictor–my one-semester programming elective was enough to show me that it’s really time-consuming.
But I’m not a programmer by specialty. An unusual percentage of LWers are, though, so maybe someone can give you advice?
“The Camel Has Two Humps”, which IIRC has been linked here before, does purport to find a bimodal distribution between people who can and can’t program. I’m not at all sure if that has anything to do with inborn talent, though, at least beyond basic general intelligence.
At various points in my career I’ve found reasons to teach people programming skills, and my n=1 impression is that the ability to internalize basic programming has little to do with personality (though conscientiousness helps, and I suspect openness to experience might too) and a lot to do with the student’s level of comfort with mathematical thinking. Not necessarily advanced math (you don’t need anything more complicated than algebra to program except in specialized domains), but you do need to be very comfortable with a certain level of abstraction. I suspect that might have more to do with the distribution in the linked paper than the “geek gene” concepts I’ve heard tossed around elsewhere: at the level of the math prerequisites for CS 1 it’s still possible to do well by solving problems mechanistically without a good grasp of the abstractions involved, but that won’t cut it in computer science. And it’d probably be difficult to teach that in a semester.
Camel seems to fail replication: http://www.gwern.net/Notes#the-camel-has-two-humps
The thing that wasn’t replicated was their attempt at a predictive test of the distribution (based on a particular explanation they thought applied), not the existence of the distribution itself, which is something that was observed in grade patterns in CS compared to other subjects (though I don’t know how rigorously established it is).
Isn’t the predictive part the interesting thing? I wasn’t aware that bimodal grade distributions were unique to CS.
Well, their original paper claimed that (eg) math grades are typically a bell curve, whereas CS grades are typically bimodal (with examples from one university). But again, I’m not sure if this is something that’s been rigorously demonstrated.
Good to know. I thought it had a bit of a questionable odor to it, but I wasn’t able to find any replications in the brief time I spent looking into it.
I don’t think it has much to do with personality either, except, like you said, willingness to work hard (especially if you’re someone who starts out finding it very difficult.) But I think that a lot of people, even people who can work up to the level of calculus in math, go at it with the mindset of “memorize that Formula X gives Answer Y” instead of trying to understand how and why Formula X relates to the underlying structure of the problem so that it’s obvious that it should give answer Y, but gives Answer Z in a different context… You can get by with memorizing formulas in math classes, at least the way they’re currently taught and tested. It’s a lot harder to get by with that habit that when you’re programming.
(On the whole, the people I’ve known whose minds appear to work like this aren’t noticeably “lower” intelligence, however you define that. They just don’t think of math as something where they should be applying the analytic part of their mind.)
Your intuition relating to “innate talent” is wrong. There is nothing innate about any of the “talents” required for programming, other than what generally comes with the package of most human brains. This might be a simple question of wording though, as if you change the words to “inner” talent, I would be more inclined to agree.
Simply put, unless a person is simply incapable of mental change and learning, then they will be able to “learn” and self-adjust into “obtaining” the “talents” required. However, this usually requires much more effort than people (read: the small sample size of the people I know who are not programmers but have attempted to learn how to program, which amounts to eight individuals) are willing to put forth, hence the common misconception that there is this “innate talent” that you simply must have to become a programmer.
I was using ‘innate’ means “something present in a person’s brain and/or skill-set when they start trying to learn how to program.” It might have something to do with how open-minded they’ve been in the past to learning new ideas, because if they’ve been open to that, then they’ll have a wider base of knowledge and practice thinking about problems at a certain level of abstraction. I don’t think it’s necessarily innate as in “determinable at birth”–in fact, that seems really unlikely to me, but what I know about the subject doesn’t allow me to distinguish those possibilities. (The phrase ‘inner talent’ is one I’ve never heard used before and would not have thought to use, so I don’t know exactly what area it would cover.)
Do you agree that some people will start learning programming and find it easy, intuitive, and immediately fun, and not have to put in a lot of conscious effort, whereas others will need to lean much more on their capacity for mental change and learning? This is what I’m talking about.
Yes, on that I agree. I suppose I was more disagreeing on the choice of word than on the concept of something being already there in some and lacking in others. The dictionary definitions (referring to Dictionary.com and my old pocket dict) of “innate” all seem utterly inappropriate for this usage.
However, I’ll still nitpick on the point of conscious effort. My “definition” of inner talent is that of an abstract representation of the “source” of the talent in question. An “outer” talent is one where, to explain by example, a person’s genetic profile is directly favorable to athletics by producing the required muscle mass more efficiently with less prodding, and recovering from exercising damage more easily, and so on. By contrast, an “inner” talent is one where synergies, “affinities” in the system, side-routes, or other indirect or invisible. I always fail to find the words to explain complex dynamics where various seemingly-unrelated things converge to the same location to push in the same direction, but that’s about the kind of psychological or physical events I’m trying to refer to with “inner” talents.
Some person will have no particular skill or strength that is directly beneficial towards chopping wood, but once they try, suddenly a bunch of unrelated past experiences or other points about their current self help them catch on quickly to just the right way of holding the axe and establishing their footing and swinging and so on.
What I want to make a point for is that both the processes of awakening an inner talent or slowly going through all the steps from nothing can be either conscious or unconscious. This will depend on many factors that may not be obvious.
I agree that I probably shouldn’t have used the word ‘innate’; given the meanings people associate with it, it was more likely to confuse people than help. Maybe “prior talent” or something similar?
I think I understand the concept you’re trying to convey, but I find that youre’re using the words ‘inner’ and ‘outer’ in a very unconventional way that I’ve never heard before, which is also likely to confuse.
This is an untestable claim. How would you distinguish between your claim being wrong and a person not putting out enough effort?
I fail to see how it is untestable. It might be impractical to test, but if the survival of all humans suddenly depended on their future programming skills (e.g. because a dictatorial alien appears and decides to kill off any human they can’t use in their programming slave workshops), it would certainly be tested, as far as I can tell.
I also didn’t really define my usage of the word “effort” very clearly or unambiguously, which is intentional: I’m not in the best position to determine/figure out the exact line at which the scope of the term “effort” should be drawn for the statement to be solid.
The alternative, however, being that a person simply cannot learn and obtain talents, would imply that some individuals have a meta-talent for obtaining talents, as it’s been demonstrated before that people can (and often will in extreme situations or environments) adjust in such a manner. This, to me, seems much more complex than “Everything can be learned, including talents and how to obtain talents”, so by Occam’s Razor I prefer to believe the former.
I don’t know to what degree innate talent is important in programming ability. I tend to agree that most people would be capable of learning to lot of things that are generally thought to require innate talent.
However, I’m not sure that “effort” is the most important hurdle stopping the learning from happening. First, people may not even believe that they can learn—they go from finding something hard to understand to assuming that they aren’t the sort of person that is good at this. Secondly, they have to find out what to learn. In the case of programming an average set of lecture notes or a “teach yourself language X” probably won’t do the job. A really good textbook may—but it won’t quickly diagnose misunderstandings, which a good tutor will (I lectured and tutored computer science and programming for a number of years).
Then you need the effort.
Yes, I attempted to infer this when saying that it requires “much more effort”. First, they need to make an effort to be more aware of themselves, then to be able to learn and develop new mental models of their own accord on things of their choosing, in a conscious manner.
Then, they need to, as you say, find out what to learn. This can be achieved through the effort of looking for resources (including “human resources”) that can help you figure it out or give you the right information.
Notice that at every step, there is effort required. You might call it a “meta-effort”, in a sense, since you also need to make the effort of doing effort, but I like to simplify and just say that it’s a lot of effort that most people aren’t willing to make. After all, I’m usually explaining this to the very people who aren’t, in an ultimate play to get them to either start gearing up for a long trek into Better-Person-Hood or give up about becoming a programmer/researcher/etc.
If you define “talent” as a product of your current ability to produce and visualize mental models of complex systems, especially “from nothing”, then it is the most defining factor for the higher maximum awesomeness of programs you can code at present.
This “talent” can be enhanced and self-improved through effort, however, in a very similar manner to making oneself more “luminous”.