It seems so natural to talk about programmers in terms of their talent or intelligence, but talking about it in this way might actually be doing harm.
"He is really smart." "She has a lot of talent." "They are all geniuses."
These seem like such complementary things to say. How could they possibly be doing harm?
The problem is that these kinds of accolades focus on innate ability instead of effort, which squashes a growth mindset.
What is mindset?
Mindset is simply one’s implicit views of where ability comes from. For example, you have a more fixed midset if you believe that ability is an innate thing, like eye color. On the other hand, if you believe that ability can be developed with practice and hard work, like a muscle, you have a growth mindset.
According to researcher Carol Dweck, mindset affects our behavior in all sorts of important situations. For example if you believe intelligence is innate, then you only care about looking smart and are therefore more likely to avoid challenging situations where you might look dumb; situations like pair programming or speaking at a meetup, for example. But if you don’t feel the need to prove your intelligence, there is no risk and you are more willing to embrace challenges.
Here’s another example. Learning to program is hard. If you think that ability is innate, then you see effort as an sign of incompetence. When things are hard it means you’re not good and setbacks have a really negative meaning to you; they indicate low intelligence. So your tendency is to get defensive, hide mistakes and conceal deficiencies or avoid the effort of learning all together. On the other hand, if you have a growth mindset, you see effort and hard work as enjoyable and critical to growth. When you have a setback you see it as an opportunity to learn.
People with a fixed mindset also ignore useful feedback, feel threatened when others succeed and give up easily. On the other hand, those with a growth mindset embrace feedback, are inspired by the success of others and are more persistent.
Another interesting thing that Dweck and her colleagues discovered was that it was very easy to influence other people’s mindset. If you praise someone for being a “smart programmer” you immediately put them into a more fixed mindset. While praising their effort has the opposite effect.
Whenever I praise programmers that I admire, I try to be precise about what it is that I admire. Sandi Metz is one of the most well respected rubyists in the community not because she is smart but because of the things she has done and the knowledge that she has acquired. She has a ton of experience with Ruby and OOP. Her talks and her blog posts are always informative and thoughtful. You can tell that she puts a lot of effort into her code and into her writing. And since I love her work and want her to produce more, I hope that if she ever reads this, that my praise actually encourages her to make more stuff and not just feel good about the stuff that she has already made. I hope my praise bolsters her growth mindset
I think this also relates to the topic of diversity in the computing community. The stereotype of the male programmer is part of our culture. The vast majority of programmers that we see on TV and in the movies are male. This leads to a subconscious, and false cultural belief that programming ability is more innate for boys than it is for girls. While we can’t change what we see in the media, we can shift the focus in our community away from innate ability and more toward effort and practice. The more we can do that, the more accessible programming becomes for all people.