August 2019

Volume 34 Number 8

[Editor's Note]

The Feynman Technique

By Michael Desmond | August 2019

Michael DesmondRichard Feynman was a famed, Nobel-prize winning nuclear physicist, author and academic who helped introduce a generation to difficult concepts like quantum mechanics and particle physics. His contributions stretched from the Manhattan Project during World War II to his memorable role articulating how the O-rings failed on the ill-fated Space Shuttle Challenger in 1986. But he was notable first for the remarkable curiosity that informed his methods and his career.

I was thinking about Feynman after interviewing MSDN Magazinecolumnist Frank La Vigne about his transition to the field of artificial intelligence and machine learning, and how he grappled with the many foreign concepts in his new field. La Vigne shared something I’ve heard repeatedly from authors over the years—that writing technical articles is immensely valuable in mastering technical concepts.

“I found that writing about what I learned helped me focus and get a deeper understanding of what I was learning about,” La Vigne told me. “This is an idea I later learned was referred to as the Feynman technique.”

That technique boils down to four steps: Choose a concept, teach it to a child, identify and address gaps in your knowledge by going back to the source material, and finally, organize and simplify. It’s that second step where the magic happens. Complicated language and jargon can act as a crutch. By forcing yourself to articulate concepts in the simplest possible terms, you force yourself to address gaps in knowledge.

I brought this up with another esteemed MSDN Magazine columnist, Dr. James McCaffrey. His response: “Writing articles for MSDN Magazine is one of the most important things I do with regard to learning any new technology.”

For McCaffrey, the process starts with lots of reading (“blog posts, Wikipedia articles, Stack Overflow comments and so on,” he says), followed by digging up a Hello World example that he can code and run. After playing around with the code, he’ll often write a short blog post about his early discovery work. This, McCaffrey says, often uncovers areas that he didn’t quite understand.

Then McCaffrey goes to Notepad (“Yes, Notepad,” he says) to spend anywhere from a few hours to a few months trying to reverse engineer the technology. “In most cases, my Notepad version has greatly reduced functionality compared to the real thing, but if I can’t implement a technology using Notepad, then I don’t fully understand it,” he says.

The final step? Writing an article for MSDN Magazine. McCaffrey says the public scrutiny of his work by tens of thousands of skilled developers is a keen motivator. He puts particular emphasis on crafting the opening sentence of each article, striving to concisely articulate the “what” of the topic. “That’s hard to do,” he says, “and it almost always requires a deep understanding of the topic. The ‘whys’ and ‘hows’ come later.”

Ultimately, in his interpretation of the Feynman technique, McCaffrey’s classroom of children ends up being himself.

“My guiding thought is to try to explain a technology to my former self,” McCaffrey says. “That is, myself back in time when I first started the exploration.”

Michael Desmond is the Editor-in-Chief of  MSDN Magazine.

Discuss this article in the MSDN Magazine forum