How should you start learning programming? It’s all about one unexpected thing.
I learned it early on in my programming career when I was interning at Microsoft.
It happened when my mentor went on stage at a Microsoft conference and lied to the entire audience.
Let me tell you how we got to that point.
I was interning at Microsoft and working on the Office team.
I had to use a programming language that I was completely unfamiliar with, and it was terrifying.
But by the end of my six month internship, I had turned myself into a contributing member of the team. I had a lot of people to thank, but the most important one was my mentor, a senior dev named Ransom. I’ve written about him before.
He took me under his wing and helped me develop a better eye for noticing problems in our codebase.
I remember one specific bug in particular that we worked on. There was a problem with the way our files were synced peer-to-peer. I knocked on Ransom’s door to tell him about it. Our code had a sophisticated organization but this edge case didn’t fit inside the same paradigm. We decided it made sense to solve the bug in a different way.
A few weeks later, Ransom gave a presentation to the entire Microsoft development team. I watched him articulate how our system worked. He broke down our organization perfectly. After he finished, he gave the audience time to ask questions.
After about six or seven minutes, Ransom answered a question in a way that would permanently change the way I thought about teaching others how to code.
An audience member described his interpretation of how he thought our system worked. It was clear that he understood the core of how it worked, but he overgeneralized it and didn’t account for the edge cases that Ransom and I previously discovered.
He then asked Ransom:
“Is it fair to say that’s how the system is built?”
Ransom’s response astonished me:
“You could say that…”
Ransom lied. Well, lied is probably too harsh a term. But he certainly oversimplified. Why did he do it?
Ransom understood that a great teacher knows how to give the right version of an answer.
If you’re starting to learn to code, the most important thing you can do is find a teacher who fits two essential criteria:
- They are confident enough in their skills to not overexplain concepts.
- They know how to give the right answers for you at the right time.
You don’t need to try to understand every complex edge case for every programming concept that you’re learning. You’ll go crazy if you try to do it.
Instead, find a teacher who has the ability to puts themselves in your shoes.
If you do that one thing, you’ll develop the same love for programming that I did.
This question originally appeared on Quora - the place to gain and share knowledge, empowering people to learn from others and better understand the world. You can follow Quora on Twitter, Facebook, and Google+. More questions: