Ask HN: Generalists, when do you say "I know enough" about any particular topic?

35 points by AbstractH24 ↗ HN
The idea is generalists know a lot about everything and when to pass it off to a subject matter expert.

In 2025, with everything in tech changing by the minute, I’m realizing I need to set boundaries about how deep I go on any particular topic. But I’m unsure how. Particularly if I don’t want to get left behind as things continue to evolve.

Curious how other folks approach this?

66 comments

[ 2.4 ms ] story [ 71.9 ms ] thread
once i have determined the leading exponent in any field and understanding his views, i ask whether i know enough to determine whether the information is useful to my purpose. if so, i continue to go deeper; if not, i know enough.
Isn't this dictated by your available free time?

Or project-based? If you are a writer, for example, it's usually project based.

Otherwise, if you really have a hard time setting boundaries, then you might be the type to orient yourself around the states of your social circles. They definitely have boundaries when they stop listening or caring.

If you can't say enough is enough yourself, let someone you trust, or in whose competence you trust, do it for you.

I would say something like "when does it stop being useful" but the 'real' infinite game is all about curiosity and there's almost no players, just uninterested and destructive shareholders, so I'm gonna go with "do you have a thread that connects it all or not?" If you don't, and it only leads to more and more excursions, fix that point of depth where some subject still interfaces with the other stuff and stop there.

> Isn't this dictated by your available free time?

Yes, and at its core I’m asking how to use my free time most efficiently

I often find myself feeling like an imposter when describing (I know enough of) the different skills I possess i.e Product Design, UX Design and Frontend Engineering. In my opinion the person solely doing one thing will probably know more than you in any of the above. But when it comes to a problem and solving the problem it becomes easier (saying I know enough) after researching and learning about it from different perspectives. The scope is narrower here than talking about an entire discipline. I don't know if it made sense tho
I stop when I find a solution to the problem. Most of the time the learning happens along the way, not necessarily in the solution itself but all the things you try and iterate on your journey to the solution.

Everything changes in tech by the minute ... but also nothing changes. For web applications it has been HTML, CSS and JS for nearly 30 years. XMLHttpRequest/AJAX came out 25+ years ago. There have been many improvements along the way, like applying design patterns instead of cgi-bin directories with scripts that had a +x modifier on them in the file system. But the base technologies have not changed all that much. We still submit HTML form's with input fields to a back-end server that handles that data. We're still rendering HTML and using CSS to style it. Gone are custom UI toolkits like Flash or Java Applets. Maybe WASM is something to look into but it feels like its not mainstream to me.

If you don't want to get left behind, learn the basic building blocks at a deep level, they don't change much.

When you notice that you may be getting too deep into the wrong topic. Solving a problem is not just taking one approach, one relevant topic, one way to solve it. That depends on the problem, the situation and the system it is in, it might worth it to go all the way down for some of them, but you have to evaluate.
I learn what I need in order to achieve my task or solve a problem at hand. So that is the "i know enough" point. And that goes for everything, even my main focus do day to day work. It is good to be aware of some tech/capabilities but learning it only for the sake of learning it is a waste of time as if anything that you do not use, you forget. For example, you can learn 70% of features of a new language you are picking up and that will get you through 99% of your time. There is absolutely no need to learn the remaining 30% of the features that you'll never use.

So in short, learn what you need, but be aware of the options in case you might have a use case for some of them in the future in which case you will know where to look and what to learn.

In my case, my “generalism” is mostly driven by ADHD, it happens when my brain gets bored with one subject. I don't think it's conscious in any way. I tend to go through phases: I’ll get into a topic, then switch to another, then another. After a few months, I circle back to the first subject, picking up where I left off (minus whatever I’ve forgotten). And the cycle repeats.
When I get bored of the topic. I have ADHD so that factors in to this.
Utility, mainly. I know just enough to Provide Value; the concept of 'enough' doesn't really exist for my true interests.
I think it goes in cycles. I used to work with Kafka and so I learned something about it. I haven’t touched kafka for 4 or so years, not sure what has changed but I feel like I want to revisit it. Same for k8s, clickhouse, etc.

Happens the same with the fundamentals (networking, OS, etc). I revisit new aspects of these topics every now and then. I still haven’t worked deeper with llms. Last week I tried for the first time coding with an agent. I take it slowly.

For instance, I never cared about learning react or vercel. I guess it paid off.

I’m not setting boundaries - and I think you will notice when to shift! When noone and no book seems to teach you anything new about a certain topic. When you read the latest book and think, „hmm yes, but i think they omitted a and b and c and in reality this isn’t so nicely separated and way more nuanced“. Then it is definitely time to shift your attention to a different topic. I’m doing this for decades now - and i think lots of others too. You will never learn all about everything. But it’s fun to try :-)
Usually, when 'specialists' start asking my help to debug their area of expertise.
I learn about something when I need to know in order to do something I'm trying to do, or when I'm curious. The second one is kind of self-limiting - when I don't have time or energy, I'm less curious.

I don't feel that I "ought" to know. There's too much. I can't. So I learn what I need, and what I want.

Left behind? You have no choice. When you're learning A, you're not learning B through Z, except that there are a lot more than 26 options. You can't learn it all. There's simply not enough time.

The real question is, of the limited amount of time you have for learning, what's the most important/valuable thing for you to be learning now?

In my case being a generalist is less about knowing a lot about everything, and more about knowing how to work things out, and how to bridge the gap between specialised fields.

I do end up knowing a little bit about lots of things, but in terms of "knowing enough", I only need to go into a scenario with enough knowledge to get some traction on the issue I'm working on. Once I've established a bridgehead, the rest follows naturally.

when you finish the task which originally drove you to learn about the topic
You don't become a generalist intentionally, you become one by wanting to do something that requires learning a bunch of things. So, I've never consciously thought "I know enough", I've just learned enough to do what I needed to.
>The idea is generalists know a lot about everything and when to pass it off to a subject matter expert.

https://www.youtube.com/watch?v=5eW6Eagr9XA

https://en.wikipedia.org/wiki/Four_stages_of_competence

It's all about history repeating; or better yet understanding when it's something new and often forcing that.

They say 10,000 hours to become an expert, but that's brute forced learning. When you actually learn how to learn, what universities USED TO teach and have since stopped teaching, you can do it much quicker. People who know how to learn can become an expert in under 1000 hours.

>In 2025, with everything in tech changing by the minute, I’m realizing I need to set boundaries about how deep I go on any particular topic. But I’m unsure how. Particularly if I don’t want to get left behind as things continue to evolve.

that's the wrong way to approach it; or perhaps definition of depth? Depth to me is about a subject that cant be understood until certain other learning milestones have been learnt. Which is perhaps a depth, but also something you can force as something new. A new pattern that will as above be part of the learning.

It's fine to go deep, so long as you're seeing a new pattern you cant predict. The limit isnt about depth, it's about seeing something new.

From time to time.

Then I come back some time later (minutes, days, years etc) and realize I didn't know what I was missing.

The cosmos is vast and beautiful. Humility helps, but may not come easy.

You never know 'enough'. You just have broad interests and see how all things are more interlinked than any one specific branch of knowledge captures. So you naturally wander through a host of subjects rather than exclusively deepdive into a single specialization.
Entirely dependent on the people and projects you’re working on.

If the projects are simple and the people you’re working for or with don’t even know how to do the work themselves, you can be the relative expert with only a shallow knowledge of a subject.

If the people you’re working with are experts or the project is complex, you’re not going to be considered capable at all unless you can demonstrate you have significant experience and understanding on the topic.

Generally, some amount of production deployments in a tool, language or ecosystem over time. Having an application, any application, being used by X number for Y years will expose you to the frayed edges. Sometimes you dive in on an edge case but that is when you know how deep the ocean is and how shallow your knowledge. That, vague as it is, is the line between generality and specialty in software. When you finally have to peek into specialist issues.
As others have said, generality of knowledge and skills is the effect, not the cause; the cause is diversity of interests and restlessness.
> with everything in tech changing by the minute

This is only true if you are studying the wrong thing. Irrelevant implementation details change by the minute, but they are irrelevant expect in the very moment you need that detail, so only learn them by repetitive use. Meanwhile the fundamentals do not change, as a generalist you will be looking to learn those so that when you need details you understand what the implementation is doing. As you get older (more experienced) you will start to see how the the latest implementation is change either for the sake of change, or corruption (that is you can convince someone it is innovative and thus make money even though you are making things objectively worse - see touch screens in cars), soon you with be shaking your first at the stars and yelling to the wind how much better it used to be (while ignoring all progress!)

Tech is not changing by the minute. There have been only minor changes since I was in elementary school in the 1980s. 8 bit to 64 bit CPUS are a minor change since they fundamentally do the same thing. We were doing some interesting GUIs in the 1980s. (I'm not old enough to remember the XEROX systems of the 1970s much less tech before then). Learn the fundamentals and things won't be changing fast.

When I understand enough to determine the up and downsides of an approach / way forward and also a good grasp of the limitations of my knowledge.
I never aspired to be a generalist, but I have come to realize my process has made me into one.

If I had to generalize how I work, I'd say it comes down to:

1. Identify the highest value thing I can work on that is feasible

2. Learn what I need to finish the work. Invest as little time/effort as possible into topics that have not proven to be timeless. Lindy's Law is your guide here.

3. when the solution is good enough, go back to 1.

Being a generalist doesn't mean you aren't an expert in anything. There are topics that I've identified as being so timeless and high value that I've more time and effort into them than others (making me a relative expert, I guess).

For me, it is more about targeting the goals at hand and learning just what I need than setting out to master the tools I like. Over time you will become an expert in the tools you trust.