Ask HN: How do people become experts?

55 points by non-entity ↗ HN
I've know a number of people who were really good at one thing or a handful of interrelated things. That might be a programming language or specific technology, some business domain or something else, but I've never quite figured out how they did it.

I've tried the deep dive thing a few times and always come out frustrated. It seems like the important stuff that differentiates the expert from someone with casual knowledge isn't documented. Sometimes it's explained by the knowledge being locked behind a paywall or IP protection of some sort. Sometimes its not, but the knowledge seems to be locked in the brains of a few individuals or organizations and can only be unlocked if your'e lucky enough for them to take you in (employment at a company that specializes in something, or having a mentor type relationship with another expert). On the other hand, a minority of the experts I know are nearly completely self taught and I'm struggling to figure out how to manage. Generally as a hobbysit Like I said every time I've tried to deep dive I reach a point where I'm not sure what I'm missing, where to find it.

58 comments

[ 3.6 ms ] story [ 117 ms ] thread
The biggest factor is Time. It takes a lot of time (in years) and different types of experience (which again mostly comes with time) to become an expert at one thing. You cannot deep dive into something within a short span of time and become an expert.

I would use the analogy that just because a woman can have a baby in 9 months, 9 women cannot have a baby in 1 month. You must spend 9 months to have a baby. So to be an expert at anything, it takes years of practice, errors, lessons learned, experiences to fully grasp a topic as an expert.

I mostly agree. I suppose there's a question of "How much time." There are certainly younger people who are experts in narrow areas. That said, in many of the most obvious cases, they've gotten doctorates or otherwise have really devoted themselves to drilling down into some technology area (and working with other people in that area). So you're still talking years, even if "only" single digit years.
It might be useful if you say what you're trying to become an expert in. Ask a vague question, get a vague answer.

> always come out frustrated

You can't stop there.

Yes, a lot of expert knowledge is locked up in the heads of experts. It is very hard (if not impossible) to write down all the implicit and explicit knowledge that experts have, so it doesn't always happen. It's very hard to become an expert alone. I think this also says something about the nature of expertise: it is something that is constructed by experts themselves in their minds. There was a story that a famous mathematician would tell is grad students, holding up an important book, "You should know everything in this book ... but don't read it!"

The process of finding what your missing is what will make you an expert. PhD is finding novel information that impacts a field. Try to think of something at the level that no one else already knows and consider how you might learn that novel info - read research papers and see how others approach it.
A lot of it is passion. The subject areas I think I am best at are ones that I care about so much that I can’t help but seek out all the information I can on them. When I talk to others about said subjects, I usually find that they don’t care about them nearly as much as I do. There are some things I wish I were better at but don’t feel motivated in the same way.
I think you mean enthusiasm.

Passion is something different. The latter term is often mis-used for the first, but what you are describing is enduring enthusiasm.

Hmm. I wonder if this is more of a perception issue than a skill issue.

At least one person on my work team thinks I'm really smart and amazing, but I don't feel like I'm an expert in anything I do.

I would say that an expert knows how to put together knowledge in a certain area of expertise and can quickly judge whether something is plausible and implausible. An expert can identify problems and potential solutions.

I don't think being frustrated or feeling some level of imposter syndrome makes you not an expert.

Sticking with something long enough to learn the difference between how it seems it should work & how it actually works.
When you're learning something you don't know what you don't know, which is why teaching the thing is often said to be a great way to learn more about it. You need to understand it well enough to be able to simplify it, and you get asked questions by the person you're teaching that will test your knowledge.

Find Q&A sites that talk about the think you're trying to become expert in and try to answer as many questions as you can. You don't have to actually answer the questions -- those sites are often hellscapes.

Experts begin with and stick with a process that builds expertise: reconsidering assumptions, asking questions and examining the answers, keeping notes and reviewing them, explaining what they learn and teaching others, etc.

Though I do not have the citations, I am sure others here could relate many examples.

Apply your motivated attention to any subject daily for many years and you'll be an expert. It's not enough to go through motions, either, you need to seek improvement and growth and overcome your weaknesses and challenges.
Niels Bohr, widely regarded as an expert, has said that an expert is someone who has made all the mistakes which can be made, in a narrow field. If you want to become an expert, you should presumably pick a suitable narrow field and start making mistakes.
Don't forget to also learn from those mistakes! :)

I agree though, expertise comes from trying all the configurations in a space and learning which work and which don't. After a while you start to see the patterns.

I heard something similar from an older boss working in a place with a lot of complicated machinery to maintain.

He phrased it "If you aren't breaking something, you're not doing anything."

Many good answers here, but I want to emphasize one particular facet: other experts help you become an expert.

A thousand years ago, anyone could have invented relatively basic math - but they didn't. The reason is that they didn't have other people to inspire and motivate and teach them.

Very little knowledge comes ab initio or from a vacuum. Expertise is not created by working in isolation for decades. To build expertise, you need to be interacting with other experts. This doesn't mean they need to teach you, nor does it mean they need to be be in person. But you have to be at least reading what they write.

It's much easier to reach the clouds if you stand on the shoulders of giants.

That's why Stackoverflow or this very site exists.
> I've tried the deep dive thing a few times and always come out frustrated.

> Generally as a [hobbyist] ...

It sounds as though you expect that reading or doing something once will confer expert status. Instead, try to think of it more like a lifestyle.

If you study something every day for ten years — constantly trying out new ideas to test the limits of the field and your understanding, and teaching others how to get started to develop a deeper intuition and understanding of the basics — you will most definitely be an expert at the end of those ten years.

At no point will you necessarily _feel_ like an expert; that's just a label people give to those who live/breathe/dream a topic deeply for many years.

> It seems like the important stuff that differentiates the expert from someone with casual knowledge isn't documented.

It isn't documented because it can't. The difference between an expert and a novice is that an expert has been exposed to and working with a particular subject for so long that there are higher level abstractions that have become "chunked" or "codified" in their mind such that they look at the problem differently than novice people.

Example

`for(int i = 0; i <= list.length; i++) { ... }`

A novice will see this and after parsing the pieces can tell you that this takes a counter i and does an action until i is the length of the list.

A more experienced person will see this as a for loop iterating through a list.

An even more experienced person may intuitively map this to the need of the program to operate on a list data structure and begin to immediately start asking why we didn't use a more functional approach, what effect will this have on the program when my list has 0 items, is there a way I can simplfy this code? Etc

The expert knows this not because he has read it in a book or because he followed design docs, he knows because he has practiced 10,000 hours, which includes doing something evaluating what went well, what did not, what could be improved, looking for new knowledge and new ways to do things.

In contrast too the man who has practiced 1 hours 10,000 times that has mindlessly written this block of code and continues to repeat this abstraction because this is his go to and familiar tool.

What about the one who shall notice an off-by-one error?
First thing I noticed too. I’m afraid you’re now the security expert.. ;)
Or just that senior engineer who knows better than to allow a for loop to pass code review!
A for loop, is a better construct than a map or more complicated language features because of the fact that its stupidly easy to understand.

Im not saying maps and other functional paradigms are hard to understand, just that is more complicated than a for loop and confuses people far more.

This simplicity of a for loop is worth far far more than the saving of 2-3 lines of code and some abstract idea of elegance.

> I've tried the deep dive thing a few times and always come out frustrated. It seems like the important stuff that differentiates the expert from someone with casual knowledge isn't documented.

What the experts know is the things that aren't documented. Some of those are things that are hard to document, because the right thing to do requires situational knowledge, others are things that experts don't realize aren't obvious.

The way to become an expert isn't solely by reading documentation, it's by trying to do the thing, and figuring out what works (and hopefully why). For software, that often means diving into the source code, as well as the source code of the environment the code runs in (and sometimes that environment, etc --- prefer less layers and simpler systems, because it's easy to dive down to the bottom)

The internal grokking of knowledge is a side effect of forging a path through life. Can't make expertise an explicit end goal, there's too much to know.

The sharply refined ability to learn, internalize and execute knowledge work looks like expertise to everyone.

For me it's all about experience. Finding chances to do something interesting related to a project. That's basically how I learn anything -- find a useful project that uses the new thing I want to learn. If I'm lucky, the project is at work and there are a lot of resources to go big.

In my mind there are two types of expertise: learning something that exists or making something new.

I've always done the second: find an opportunity to do something new, deep dive on it and figure it out, and then you are the expert by default. Then it's just a matter of keeping up on the state of the art while everyone else starts doing what you're doing but does it better than you.

>> How do people become experts?

By leveraging your academic credentials, legal authority and social connections to promote an agenda (e.g. corporate agenda) through carefully crafted lies which intelligent people in your field cannot easily disprove but which the masses will openly embrace because it aligns with their primal incentives.

It's about being able to bypass people's logic and reasoning skills and appealing to their underlying primal instincts; namely their need to feel safe, to feel accepted, to acquire resources, etc...

The main role of experts is to give people a false sense of certainty and safety.

IMHO, an expert is someone who not only is good at something, but truly enjoys doing it.
For me this has meant, that you start seeing patterns in things. You almost develop a strong gut instinct for things, and sometimes it cannot be rationalized or explained succinctly. This is as it related to traditional software. In sports ( racquetball), which I've played for 20 yrs now, I'll make shots where obviously there is no conscious decision making, it's muscle memory combined with pattern recognition happening in the milli-second range. It's beautiful and a zen state.
Practice. Passion. Stubbornness. Patience. (And a bit of innate skill and luck.)

Everyone I've known who has mastered something simply has done it a million times, observed what they did right and wrong, corrected it, and leveled up each time.

An expert is someone who knows everything about a subject and can look at it from beyond the borders of its context. Knowing everything can be read as: made every possible mistake, or perhaps: re-created the entire concept. Or maybe even: did an exhaustive search of all the possible avenues of thinking/applying/using the subject at hand.

It also depends on who you ask. Some people have a different mental model of the meaning of words or the values attached to them. It can be as simple as: "the person that I ask stuff from and always has the answer" or as complex as "this person doesn't just read, repeat or know the theory or know the abstract theory but is even beyond that".

How do _you_ become an expert? It depends. What do you think an expert should be? Find that, then find where you are and the gap between that and where you need to be and start working on it. An expert at walking your own dog has a different route than say, an expert at silicon substrate doping.

Since we are on Hacker News, we could take being an expert at Linux Device Drivers as a subject. You'd be able to read and test and expand as much as you'd like until you become the expert you desire to be. Examples, documents and sources are all available. It does require base knowledge to build on; i.e. building software, writing and reading C, the specifics of the kernel, the specifics of the kernel build system. At some point if you know how to create and build a module that is a driver, you'd be a beginner and you can start becoming advanced by perhaps expanding on your knowledge by nibbling at the borders of the subject; the build system itself, the configuration system, the hardware underpinnings for drivers. Next you might become interested in memory maps and CPU architectures. At some point you can understand end-to-end how a click of a button translates into an event. You'd be advanced. Now take all of those concepts and things you're reading and the parts you've designed. That is a single subjects within borders. When you go beyond that, i.e. design the theories that define it you're an expert. Not only can you build and work with it, understand its context and modify it at will, but you can re-define and create it based on your own expert knowledge and abstract theory behind the concepts and implementations.

You can also make it much smaller than that. I.e. become an expert at folding t-shirts. Still means you need to know about folding, fabrics, speed vs. quality, quantity vs. quality (are you folding t-shirts for yourself or for a warehouse? is it manual or automated?). Once you know how to define what folding means and how it is affected and how it affects its context (i.e. what happens to the fibers? and what if it's dirty, or new? or when it has been washed 10 times? what about 100?) you could pretty much call yourself a t-shirt folding expert. This is still big, but a lot smaller than a software example.

1. Find a thing you are interested in.

2. Start learning about it and doing stuff with this knowledge. Intermittently look for new information about this thing.

3. Keep on working with this thing. Find ways to use it whenever possible, even if it is not perhaps the most efficient tool for the job at hand.

4. Make mistakes with this thing. Make some little ones, make big ones. Whenever you make mistakes try to ask yourself how to make sure you never make this mistake again. ("Making mistakes" is not a thing you try to do; it is a thing you will do. They can be small. Or they can be stressful and complicated and expensive and scarring. An expert will probably have a few of the latter under their belt, unless they were very lucky and only had a few really, really close calls.)

5. Keep working with the thing. Can you figure out a way to get a multi-year project with the thing going? Do you still fundamentally enjoy working with the thing when you are at the stage when you can do this - and when you are finished with that multi-year project, as well? Can you find a way to work under or with someone who is great with the thing? They'll teach you a lot of stuff that doesn't make it into books, as well as call your attention to really fundamental stuff that you've been blowing off like "kid, the way you hold your tool is gonna fuck your hands up in five years, start doing it this way if you want to be able to keep doing this for the rest of your life, here's some exercises to get used to it". (Seriously: I am an artist and I did not get instructed in How To Properly Hold A Drawing Tool until I was in the animation industry.)

6. Hang out somewhere people ask questions about the thing. Answer them. Answer the heck out of the questions you see allllll the time and are tired of answering and make key expansion shortcuts for them. Play around with the rare, interesting questions and answer them in the most novice-friendly way you can. If you know five ways to solve a novice's question about the thing, then go into some detail on all of these ways and talk about which one you would probably reach for if it came up in practice, and about why that's your choice.

7. Keep on doing the thing. Lots of little projects? Big long projects? Maybe both. It's easier to experiment in the little projects but the big ones are important too.

----

There is a character in Zelazny's Chronicles of Amber who is The Absolute Best General And Swordsman In The Entirety Of Reality. He wasn't born that way. Nobody is. But over many centuries of life, he studied and practiced every day. Every day, for hundreds of years, he spent some time studying the great battles of old, practicing his swordsmanship, playing wargames, engaging in actual military campaigns from every level from top to bottom. He has been doing this longer than everyone else alive, and thus, he is an expert.

You do not need to go to this extreme. You probably can't unless you turn out to be an immortal who can hop between alternate realities to see how various changes effect the ultimate outcome of a huge project over multiple trials. But you need to keep coming back to the thing you will become an expert in.

You can't just do one "deep dive" and become an expert. You have to live with the thing, you have to spend time working with it, time just kicking back thinking about the thing, you have to spend time catching up on the latest news about the thing, you have to internalize some of the thing so that the back of your mind just prompts you with little warnings based on something you fucked up ten years ago. You have to dive to the bottom and stay there.

And you will need to sacrifice some other shit on the altar of this expertise. There's only so many hours in the day, and only so many days in your life.

Malcolm Gladwell’s book Outliers explores this topic and concludes that lots of deliberate practice — which includes making mistakes and recognizing them — leads to expertise and mastery. He says 10,000 hours, but the amount of practice required varies by person and skill. I don’t think there’s any way around lots of deliberate practice, though. That much work requires interest, passion, introspection, diligence, and feedback from mentors.

I don’t think anyone can read their way to expertise. There’s no secret technique or knowledge hidden behind paywalls.

Rather than thinking about “becoming an expert” reframe it as “mastering a skill or domain.” No on is an expert, that’s a shorthand to describe someone who achieved mastery or deep understanding through deliberate practice.

They don't. They just gain expertise on subjects through trial-and-error and first-hand experience.

Anyone who tries to convince you that your should pay for advice on "how to become an expert" has expertise at only one thing: lying.

PS: I can teach you how to be an expert at spotting liars. For 5 dollars I'll tell you the secret.

Behind paywall 1: First lesson - don't pay for lessons on expertise. For 5 more dollars, I'll let you read chapter 2

Behind paywall 2: You are almost there! So close! You should be getting familiar with the trick by now. There was a secret lesson in part one. I'll tell the secret behind the trick for just 5 more dollars.

Behind paywall 3: Fool me once, shame on you. Fool me twice, shame on me. Fool me three times, and now we are here! Wanna know how I fooled you three times? Only 5 more dollars!

Now you are 15 dollars into spending 5 dollars on how to spot a liar. Just 5 more dollars!

Once you figure out the trick, you can consider yourself an expert.

(comment deleted)
Following that method will make you a Scientologist, not an expert.
I am not familiar with Scientology, but you sound like an expert on the matter so I'll take your word for it.