This is a more or less a summary of the folowing article written by Allison Kaptur about effective learning strategies for programmers.
The good programmer should have the following skills, among many others:
- respond well to confusion;
- recover from setbacks;
- embrace challenges;
- be persistent;
The skills above belong to a kind of mindset called growth mind however the prevalent mind in tech industry is fixed mind.
| Growth Mind | Fixed Mind |
|---|---|
| Intelligence is maleable | Intelligence is static |
| Focus on effort | Focus on praise |
| Move well in confusion | Get stuck in confusion |
| Share the knowledge | Keep the knowledge like a super secret |
| Believe that people can change throught effort | Believe that people can not change |
| Kill heroes | Adore heroes |
| Resiliant to failure | Brittle with failures |
| No fear for hard challange | Fear for hard challenges |
Of course
The first step to change is to identify the fixed mind in oneself. Be awere of your thoughts and pay attention to those phrases begining with "I am..." for example "I am not a kind of person that...", "I am not good at...", "I've never been good in ...", they are probably a good signal that you are in fixed mindset.
- Reframe failure
- A huge part of a fixed mind or growth mind is how you respond to failure. Do you say... "Maybe I am not the best person for this job after all" or on the contrary you say "I have learned an important lesson here, next time I will..."
- Reframe praise & success
- When people say to you "Good job, you are so smart" translate to "Good job, you worked so hard"
- When something goes well don't think "Of course, I am awesome". Instead think, "I used an effective strategy"
Face the challenges with a good attitude, if you have a super weird but in Python say.. "Awesome, I love weird Python bugs"
Ask people how they do some tasks specially if they fixed a bug or something, learn from others.
More than techniques or strategies to be a better programmer, this is a reflexion about the reality of the tech industry. Most of the people have a fixed mind and the consecuencies of having such a mindset is a lack of motivation and consecuently a negative impact in the software we develop.
There is a way to change it, first of all one has to deeply see the importance of not to have a fixed mind and then take the journey, of course it is a live journey which means that never ends. The first step is to realize when one is having a fixed mind in every challenge, in every situation and then change the way one comunicate with oneself. At the end, the nature of a programmer is to solve problems but before solving them one has to have them, so we have problems all the time, haven't we? then it is crucial to have a good attitude in confusion, problems and difficultities. Nobody said it was easy.
- What does it mean to live life with a growth mindset?
- What is the base of a fixed mindset in life?
- Why don't we look at life with a growth mindset and see what happens?