Red-Green-Code

Deliberate practice techniques for software developers

  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter

The Benefits of Demystifying Tacit Knowledge

By Duncan Smith Oct 5 0

Knowledge

Can you learn anything you want by reading a book? A blog post by Scott Young last week got me thinking about claims that some subjects are unteachable. Here are some examples:

Claim: Some knowledge and skills can only be learned using an apprenticeship approach.

  • Scott contrasts two learning techniques. One is the standard school model that we’re all familiar with: a student reads textbooks, attends lectures, and turns in assignments. The other model has more in common with apprenticeship: a student finds an expert practitioner, observes what they do, and tries to replicate it.

Claim: You have to figure out your own path to success. You can’t learn the path from someone else.

  • In his book Linchpin, Seth Godin writes: “Telling people leadership is important is one thing. Showing them step by step precisely how to be a leader is impossible.”

Claim: It’s not always possible to teach someone to be a top performer, despite the best efforts of teacher and student. Factors other than practice time explain why some people perform better than others.

  • In her contribution to the deliberate practice debate, psychological scientist Brooke Macnamara published a meta-analysis arguing that practice doesn’t have a large impact on the performance differences between expert performers.

Tacit Knowledge

Tacit knowledge refers to knowledge that is difficult to learn from a book or lecture. The term was coined by scientist Michael Polanyi, who argued that “we can know more than we can tell.” Here are some examples of skills that clearly depend on tacit knowledge:

  • Recognizing faces: Human beings learn to recognize other people’s faces without being taught to do so, and without thinking about the process involved in making the recognition.

  • Speaking a language: Similarly, children learn to speak their native language without any kind of formal training.

  • Riding a bike: This is the canonical example of a skill that, once learned, cannot be forgotten. And there’s no way to learn it other than by doing it.

Other skills require some tacit knowledge, but don’t depend as strongly on it:

  • Writing an essay: This is a standard skill taught in school, so clearly it’s amenable to the “books and lectures” model. But there’s also a big difference between an essay written by a student and one written by a professional writer. The latter benefits from tacit knowledge gained through years of writing, feedback from professional editors, and life experience.

  • Developing a computer program: There’s a well-known gap between the skills taught in the college computer science curriculum, and those needed by entry-level professional programmers. This gap occurs partly because CS professors don’t see themselves as “teaching programming.” But new hires also lack the tacit knowledge that they eventually get by working on a software development team. At least, that’s how it works for most programmers. Some gifted programming students are able to teach themselves to code before or during college, and develop their own software without the need for corporate experience.

Explaining the Inexplicable

Consider a continuum of knowledge. At one end are skills like bike riding. Learning to ride a bike by reading about balance and steering is not a very effective approach. At the other end are more theoretical topics like philosophy. You could learn a lot of philosophy by reading books and attending lectures. Software development is somewhere in the middle.

But as with the deliberate practice debate, the bottom line for most of us is not an academic discussion of the limits of written and verbal communication for each item on the continuum. Instead, the question is how best to learn what we’re interested in learning.

In most cases, I would argue that there is a benefit to turning tacit knowledge into explicit knowledge, or at least making an attempt to do so. Here are some reasons what that is the case.

Building foundations

One of the reasons that college professors resist making their courses more practical is that practical skills get out of date quickly. You don’t have very many chances in your life to get a college degree, so what you learn in college needs to last. One way to make knowledge last longer is to focus on fundamental concepts. This has the effect of making it easier to put into book and lecture form, and it reduces the frequency at which books need to be updated. More importantly, students who learn fundamentals early on can more effectively learn the practical skills that they need later.

Thinking about skills

One of the key ideas of deliberate practice is that you can improve your practice by first observing it. By thinking about the practice steps that you’re doing, rather than just doing them, you can determine where you need to improve.

One way to observe your practice is to try to explain it in words: turn the tacit knowledge that you’re using to perform a skill into explicit knowledge that you can write down and analyze more easily.

New media

Individuals have access to a wider range of media than at any time in the past. If you’re having trouble converting tacit knowledge into words, you can try using images, animation, or live video. Although it might take more effort to create these formats, it’s as easy to publish them as it is to publish essays. They all show up in people’s web browsers. And creating all of these formats has the same beneficial effect of forcing you to deconstruct a skill.

Capturing Expert Performance

The main point of Scott Young’s Learning What Can’t Be Taught is the following: tacit knowledge forms the majority of the knowledge you need to be effective in your field. And although it can’t be taught directly, you can learn it by finding and copying expert performers. He ends his article with this: “It doesn’t matter how good you are at reading books if the knowledge and skills you need can’t be found there.”

I think that’s too pessimistic. Although books aren’t perfect, experts can and have written books that communicate tacit knowledge. Two of the more famous examples in the field of software development are Code Complete and The Pragmatic Programmer. Both of these books distill a body of knowledge that programmers previously had to pick up on their own. They don’t replace real-world experience, but they can give new programmers a head start.

As a field matures, practitioners gradually settle on what skills are required and how to build them. Eventually the core tacit knowledge for that field is stable enough that someone can capture it in a book. But even in the stages before that, motivated writers can track down experts and document how they do what they do. That’s not as easy as finding book or article that someone has already written, but for the reasons I mentioned, it’s worth doing.

(Image credit: Matt)

Categories: Learning Techniques

Prev
Next

Stay in the Know

I'm trying out the latest learning techniques on software development concepts, and writing about what works best. Sound interesting? Subscribe to my free newsletter to keep up to date. Learn More
Unsubscribing is easy, and I'll keep your email address private.

Getting Started

Are you new here? Check out my review posts for a tour of the archives:

  • 2023 in Review: 50 LeetCode Tips
  • 2022 in Review: Content Bots
  • 2021 in Review: Thoughts on Solving Programming Puzzles
  • Lessons from the 2020 LeetCode Monthly Challenges
  • 2019 in Review
  • Competitive Programming Frequently Asked Questions: 2018 In Review
  • What I Learned Working On Time Tortoise in 2017
  • 2016 in Review
  • 2015 in Review
  • 2015 Summer Review

Archives

Recent Posts

  • Do Coding Bots Mean the End of Coding Interviews? December 31, 2024
  • Another Project for 2024 May 8, 2024
  • Dynamic Programming Wrap-Up May 1, 2024
  • LeetCode 91: Decode Ways April 24, 2024
  • LeetCode 70: Climbing Stairs April 17, 2024
  • LeetCode 221: Maximal Square April 10, 2024
  • Using Dynamic Programming for Maximum Product Subarray April 3, 2024
  • LeetCode 62: Unique Paths March 27, 2024
  • LeetCode 416: Partition Equal Subset Sum March 20, 2024
  • LeetCode 1143: Longest Common Subsequence March 13, 2024
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2025 Duncan Smith