How the smartest dev learns to learn

“Muad’Dib learned rapidly because his first training was in how to learn. And the first lesson of all was the basic trust that he could learn. It’s shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.”
Frank Herbert, ‘Dune’.

The Importance of Learning

Through the acquisition of knowledge and understanding, one makes possible what previously was impossible.

The knowledge you and your team already possess will only help you solve problems like the ones you solved in the past. If the problems of the future are different than the problems of the past, then you will need new mental tools.

The Smartest Developers see this challenge as an opportunity. Their competitive advantage is learning velocity.

This is why the Smartest Developers are selected to spearhead new initiatives and trail blaze the path for others. The architecture and design patterns are in place. The system carefully designed. Neither over nor under engineered.

Later, others may continue the path, wondering if there is a difference between the levels if they all write the same code in the same projects? This doubt is the sign the Smartest Developer has prepared well the path.

Frank Herbert said: “A beginning is the time for taking the most delicate care that the balances are correct”. Walking the path is easy when all is balanced.

The Importance of Inspiration

I used to always carry with me a small notebooks for ideas and insights. Usually taking brief notes with few words. Enough to capture the essence of a thought, without risking a gem being lost within a sea of text. One quote I found in my notebook years later:

Inspiration only has value in the presence of wisdom and bravery

Everyone has brilliant ideas. Few have wisdom to recognize it’s brilliance. Even fewer have the bravery to translate those out-of-the-box thoughts into action.

Frank Herbert said: “growth is limited by the necessity which is present in the least amount. And naturally, the least favorable condition controls the growth rate.”

The Smartest Developers are not smarter than others. They don’t have more frequent good ideas. However, their wisdom and bravery exceeds that of others. By consequence they make more impact with the ideas they have.

Practice to Learn

The most efficient way to learn any skill is the most direct one. Don’t read a book about how to climb, just climb. The mother bird pushes her baby out of the nest forcing it to learn to fly.

There is an abundance of books, blogs, videos, and courses on programming. These are a valuable resource when trying to solve an obscure problem (i.e. reference resource). They may also be valuable for an initial boost at the start of your studies. But the only pathway to proficiency and mastery is through practicing the craft itself.

The Smartest Developers maximize the time they spend on meaningful work. The delivery of that work both delivers value and achieves fastest learning.

The Fastest Path to Learning is the Fastest Path to Feedback

When coding, time spent optimizing your REPL, pays off dividends in time (productivity) and learning velocity.

When designing an architecture, time spent getting early feedback, pays off dividends in time (less rework) and learning velocity.

Getting feedback requires more up-front time commitment. It saves time in the end. The Smartest Developers know this well.

Humility is a Condition for Learning

The Arrogant Developer will not accept feedback. They will actively dismiss, punish, or push back against criticism. They will use their title and status to promote their opinions over others.

The Arrogant Developer may take a small optics win today. But their career will not progress. Even if they continue to deliver value. The value they deliver is only enough to maintain their level.

They can’t learn and grow without first accepting they have weaknesses in need of improvement. Without that necessary learning, they will not be prepared to solve neither the problems of tomorrow nor the problems being solved by those above them at next level.

The Smartest Developer has humility. They will listen and observe with the intent to learn. As Frank Herbert said, “Muad’Dib knew that every experience carries its lesson”.

The Smartest Developer will waste less time than the Arrogant Developer spends to “prove they are right”. The Smartest Developer will use that saved time to become smarter.