The secret of the software developer code
Are great artists, performers, and athletes any different?
Yeah, I can’t code, I don’t have the talent for that.
If you are a developer chances are you have heard that. Software development is a skill. That you must have been born with.
I recently listened to The Talent Code by Daniel Coyle. His findings outline how great artists, performers, and athletes develop.
Talent
Are we just born with it? No, talent is defined as a repeatable skill. It doesn’t relate to your physical size or genes. It has three components.
Coyle did extensive research to determine the talent code secret. Here are the parts.
Deep Practice
Ignition
Master Coaching
He looks at everything from baseball players to concert musicians. How can software development be any different? I see similar traits in the greats I have worked with.
Deep Practice
Developers may need to realize what makes good practice. However, quite a few of us do it often. Coyle breaks it down into three parts.
Repetition
Make Mistakes
Fixing Them
Seems easy enough right? Let’s look a little deeper.
Repetition
Software development is a bit different than learning guitar. I may have tortured some guitar strings in my day. There are no major chords to learn.
Although there are some basics we need to master. Fixing bugs gives a chance to troubleshoot and test. Maybe we missed it. Then we try something else.
Make Mistakes
As a developer, I feel like I have this down. I can make a lot of mistakes. Just ask my friends in Quality Assurance;)
Coding with unit tests can help us identify mistakes. We modify a function. Then run tests and they break. Oh, I forgot the checksum. A learning opportunity!
Fixing them
As a little kid, I enjoyed taking things apart. I would try to put them back together. Occasionally it worked.
Developers get this chance a lot. We get to pull apart someone else code. Then modify it.
Of course, we get to fix our own mistakes too. When I look at my old code I think, “What was I thinking!” Quick and dirty change can lead to problems.
Experience can provide us with some perspective. We make decisions with imperfect information. Fix it and learn.
Ignition
As we practice we will hit obstacles. The developer learning a new skill can stumble.
I am learning AWS technologies. Studying for an exam can be overwhelming. There is a lot to cover.
Ignition refers to the ability to overcome. Where others might quit you keep going.
Master Coaching
The last element of the talent code Coyle has is Master Coaching. This person needs to understand the activity. For us, it is software development.
The coach can help us with deep practice and ignition. In Karate Kid Mr. Miyagi first shares knowledge of Karate.
His approach is unorthodox. Teaching through other work. Then he helps Daniel practice and stay motivated.
I have had many guides teach me along the way. Recently I have been working on Vue.js. Learning from a co-worker has helped immensely.