Hacker News new | ask | show | jobs
by PragmaticPulp 1466 days ago
This is a very comforting fiction to tell yourself when you’re faced with new and unfamiliar challenges. However, it’s not really true. Plenty of people within an industry or field know enough of what they’re doing because they’ve gone through it before and/or done all of the heavy research to prepare for these situations.

I see the “nobody knows what they’re doing” fiction brought out as an easy antidote for impostor syndrome or as comforting words to people struggling to learn. While intentions might be good, it had an unintended side effect of creating an illusion that expertise doesn’t exist or that everyone’s knowledge is equal regardless of their level of experience.

The dark side of this mentality is that it creates the same situations whereby people believe their own intuitions are equal to professional scientific research. If you believe no one knows what they’re doing and all adults are just making it up as they go, why would you listen to experts instead of inserting your own opinions based on your Facebook research or some quip you saw online?

The real key is to identify who really knows what they’re doing and to what degree, then leverage those people for advice as much as possible. Going through life assuming everybody is equally incompetent will leave you blind to these huge opportunities to learn from other people’s expertise and experience.

21 comments

I think a better phrase is "everybody is winging it", because once you get good at something, then you tend to end up working on something that's at the edge of your current understanding, either through promotion or some sense of seniority in the industry.

This isn't necessarily true for all jobs, but I think it's especially true in the software industry. I've been a CTO for 17 years, but I still feel like I'm winging it. It doesn't mean I don't know what I'm doing, I have enough experience to make good judgements; but to be the best at something you often have to be on the edge of your understanding at any one point in time.

I don't remember exactly when I realised that everybody is winging it (to one extent or another), but it made it easier to trust my own judgement, it made it easier to push for something I believed in, but it also gave me a sense of how little I still know - which helps me to not get too arrogant about my current abilities.

I'm going to go with "Not everything is designed, or planned. Sometimes the result is just the sum of a bunch of not necessarily coordinated decisions."

Some people know a lot about what they are doing and are highly skilled. A concert pianist doesn't just walk up on stage and wing it. What I think you realize when you grow up is not every decision or outcome was deliberately thought out and coordinated. Sometimes things just happen. They can even be the result of a collection of individual people who each is highly knowledgeable about their individual contributions with no single person responsible for the ultimate outcome. I'd imagine this is the way something like an automobile is designed.

>A concert pianist doesn't just walk up on stage and wing it.

Well, sometimes they have to. There is the famous example where a professional concert pianist realizes when the orchestra starts that she practiced the wrong piece. They happen to have been making a documentary, so we get to see her face as she realizes what is happening. And then she "wings it", and manages to play very well anyway.

[0] https://www.youtube.com/watch?v=CJXnYMl_SuA

I was going to add something about improvisation and jazz. While it’s not planned out you wouldn’t describe them as “not knowing what they’re doing” nor are they just blindly mashing the keys.

They’re feeling their way through a dynamic situation guided by skill, experience and luck.

Really the complete opposite of winging it. Only possible after immense study. And what your seeing is what they are most comfortable playing. They’ll push themselves out of their comfort zone offstage when they aren’t being paid.
That’s not what is normally meant by “winging it” though. That’s applying deep, rigorous expertise, just faster than normal.
This is trully amazing!
>> Not everything is designed, or planned. Sometimes the result is just the sum of a bunch of not necessarily coordinated decisions.

I'll go one further. Almost always. Organizations are basically distributed systems; you theoretically could have fully coordinated decisions with an elegant and efficient network topology (i.e., the decisions involve only those people with relevant information, and don't pass through umpteen unrelated routing layers), but I've yet to see that. Invariably those orgs favoring coordination (CP from a CAP perspective) are slow and inefficient, with too many meetings seeking signoff from stakeholders who have no relevant knowledge or responsibility. The more 'agile' orgs (including suborgs routing around that kind of inefficiency) end up with eventually consistent systems, more AP, and, well, yeah, they're necessarily not coordinated. Hopefully they still have clearly defined areas of responsibility, interfaces, and useful sets of abstraction, but those abstractions are leaky, and the interfaces themselves developed as needs arise.

>Some people know a lot about what they are doing and are highly skilled. A concert pianist doesn't just walk up on stage and wing it.

If I may torture your example to defend the GP, concert pianists trying to improve will wing it during the steps leading up to the stage: negotiating with a venue, exploring new ways to practice, writing or choosing music pieces, and the all the other tasks unknown to this layman.

I like this take. A lot of times for an experienced team there are multiple solutions to a problem that will work and you can quickly start with the one that seems to best fit the circumstances... if circumstances change (and you'll notice if you've been doing it a while) then you can often (and with some hard work) transition to a different solution and still hit timeline (or immediately warn of the miss). If they team works together well, this happens quickly, if not seamlessly. If you don't have experience, just figuring out which way to start is a huge effort and changing direction even a larger struggle, and you're almost guaranteed to take longer, with higher risk, or worse product.

What I found making a few hundred sourdough loaves over the last 2 years, is that there is a recipe (or several), and you should follow it... but then unexpected things happen (changing starter/temp/gluten, humidity/hydration, forgot something or want to add something, different size loaf or tools/oven, not enough time, missed alarm) and the skill is in knowing quickly what to do and how to work with it to make things right. Rarely do I make what I consider a perfect loaf, because I don't make 100/day every day... but even though I often make one/two mistakes or changes, recovery is automatic and almost imperceptible in the final product.

Ruuning a business is like playing a piano at a concert, except the keys sometimes change position and sometime disappear completely.
I think that’s life, except that sometimes the piano becomes a cello, then a pair of bongo drums.
> A concert pianist doesn't just walk up on stage and wing it.

The concert pianist couldn’t wing it with an oboe, violin or trumpet. But that’s what the full stack dev does. Wing it with this service, that framework, some other language, etc

"Real impostors don't have impostor syndrome"

To me, that is even better.

It means that you care and you are in an uncomfortable zone, which means you are probably growing.

Could it be that the more you know, the more you realise how much more there is to know? That would explain the feeling of impostor syndrome in more senior people - they're judging by different standards.
Thank you. I'm hearing enough things along similar lines to feel odd about it.

So many people wear their impostor syndrome with pride I don't know how to handle it. It's supposed to be ok to have no idea what you are doing. Except it's not. We're living in an era where information is more abundant than ever before. Just read the manual. At least get a basic idea how that library or framework works before putting two lines together. If not for the end result then at least for intellectual pride.

It's probably partly down to age, but it's more and more common and I am uncomfortable.

IMHO, the "don't worry, nobody knows what they're doing" advice, has a sort of "Laffer curve"-esque quality to describe its relative danger (or inverse curve, for utility).

On the lower end of experience/expertise (I acknowledge they're not actually the same thing), it is minimally dangerous and highly useful advice -- in the sense that, it helps lower the barrier to entry for beginners into a field. Making something approachable, is generally worth it, even at the risk of giving beginners undue overconfidence or letting them make early mistakes. Just getting someone to even start (and making it easier for them to stick to something new, and not give up too early because it's hard), is more important than doing "the right thing" (pragmatism > perfectionism)... assuming guardrails exist to prevent beginners from doing fatal damage (not true in all domains).

In the middle range of experience, is where this advice becomes maximally dangerous and minimally useful -- it doesn't just give false confidence, but specifically to those in this range who "know just enough to be dangerous." The advice can become an impediment to learning, if someone comes to believe "I don't need to learn anything more, since no one else knows anything, and therefore nobody can teach me anything." People who get stuck here, are the most dangerous.

At the high end of experience/expertise, the advice actually becomes useful again. The expert can appreciate the dangers of ignorance, while also appreciating the need for them to manage/mentor/guide beginners in the field. Likewise, the expert generally re-learns a certain level of humility, because now that they "know everything there is to know", they also appreciate how little they actually know in the grand scheme of things (e.g. see cosmologists or particle physicists).

I seem to recall some kind of saying, something about how hard and precious/valuable it is, for an expert to be able to re-learn the ability to approach problems with a beginner's mindset, with naive curiosity and unburdened by years of accumulated fears or biases? So anyways, the "nobody knows" advice becomes useful again, and helps experts renew their perspective.

I'm pretty junior in terms of YOE, but I hate when I see people say things like "don't worry, I have no idea what I'm doing and I have x YOE. You're fine!" to people on the internet.

I have a decent understanding of what I'm doing, but I worked for it by doing exactly what you described in your last paragraph and then synthesizing that knowledge into an explicit process.

If you don't know what you're doing you're either bad or don't have a conscious understanding of your process. Both are not good.

Well said! I would add that, I’d you feel you don’t know what you’re doing, there’s a third possibility: you actually do know what you’re doing, in any meaningful sense, but your memory of your past work is dominated by the few cases where there wasn’t a clear right answer, and you made a call you couldn’t rigorous justify, even though you were doing most of the job very competently.

Those situations make it seem like you’re just shooting from the hip/groping in the dark all day … but that belief is wrong.

Either way, the right response to the feeling of impostor syndrome should not be to shrug and say “oh everyone’s like that” (which is how you get the Elizabeth Holmeses of the world); it should be to look for objective heuristics to identify whether you are, in the large, performing competently.

Edit: earlier comment on this issue: https://news.ycombinator.com/item?id=19214749

I sometimes say it for fun, but yeah, it’s weird. I worked very hard over multiple decades to acquire specific sets of skills that are hard to acquire. It’s fun to plunge into something and maybe joke about not knowing what you are doing, but the reality is if you spent as much time as I have and don’t actually know what you are doing that is very sad indeed.
Not to mention that people who say that they don't know what they're doing, but are earning 6 figure salaries are being extremely condescending to everyone else. The idea here is that you get paid for your expertise. If you don't have it, get it!
> The dark side of this mentality is that it creates the same situations whereby people believe their own intuitions are equal to professional scientific research. If you believe no one knows what they’re doing and all adults are just making it up as they go, why would you listen to experts instead of inserting your own opinions based on your Facebook research or some quip you saw online?

Well there's a reason to resist this notion on the grounds that knowledge is personal, not transitive. Following John Carmack on twitter does not transfer the ability to design game engines onto me, even though he surely has deep expertise in the area.

My opinions may not be the result of professional scientific research, but that is also true even if I echo the opinions of someone who claims to be a practitioner of such. At least if we accept a definition where justified true belief is necessary for knowledge. Either I know something, or I don't know it. There is no middle ground where I know something by extension of faith in an authority that claims to know it. That's the entire point of science, it isn't doctrinal! The scientific authority may well possess an ability to produce true statements through their knowledge of the topic, but I don't share this knowledge by parroting their true statements; I need to understand why in order to know.

Wrt to imposter syndrome - I often have this feeling, especially since I don't have any formal training in anything IT related.

Recently a kid showed up at work to do an internship. He's studying computer science, all kinds of advanced algorithm stuff. He's utterly clueless at even beginning to find the cause of a simple bug in a php application. Incapable of interpreting a bug report, finding the class that serves a certain route etc.

Made me really reconsider my imposter syndrome feelings.

> ... studying computer science, all kinds of advanced algorithm stuff. He's utterly clueless at...

One thing I notice in some rhetoric (not necessarily yours) is the idea that people are static. That if one is clueless now, they'll always be clueless.

People continuously evolve personally and professionally. The road to mastery and understanding always begins with confusion and uncertainty. It's totally reasonable that a student learning complex theoretical material will have a hard time, initially, with the day-to-day grind of doing practical work in a job.

Many workplaces have unreasonable expectations usually framed around the vaguely militaristic notion that their people have to "hit the ground running". It's based on bull. The only way to progress towards mastery is to periodically do stuff that one is "unqualified" for, sometimes that involves failure, re-tries, wasted time, and being seen as incompetent.

So many folks who are now "ninja's", "rockstars", or "10x-ers" started out as clueless newbs who were willing to put themselves out there, make embarrassing mistakes, be called cargo-cult practitioners, and who nonetheless continued with grit. Along the way, some helped and mentored them and others dismissed them.

That's the essence of the issue yes. Learning on the job is considered bad, but learning on the job is how most people learn. So really, we just fake it till we make it[0], and then we start doing what top comment mentions, actually knowing what we're doing.

This is then exaggerated by sayings such as "it takes half a year to get to full speed" in an attempt to either try and lowball learners, or as a defense mechanism as to why society should just cater to the whims of companies so they don't have to carry the risks. Despite the fact most people will be profitable very shortly after they get hired in a job remotely fitting them, if the company has any proper documentation on procedures.

[0]: And this is bad for the more anxious / modest / shy people. "Fake it till you make it" should be good advice, but it doesn't overcome massively inflated "must have but not actually must have" lists discouraging them on the spot, or the hundreds of mismatched job interviews and time wasted. I still don't know who benefits from the status quo aside from middlemen getting jobs that shouldn't realistically exist.

I think the GP’s point is that, despite not having a formal education in CS/CE their self taught skills are pretty good and the formal education doesn’t appear to be teaching computer engineering in any case. So while this intern will probably have a better understanding of how to traverse a tree or w/e, they’re still starting in the same place the the GP did when it comes to actual CE.
Because people don't understand what a CS degree is and what it isn't, and that's assuming most CS degrees are fairly similar (they aren't).

A CS degree isn't a 3-5 year road to understanding the protocols and nuances of webdev. Personally, I was able to choose courses in webdev and took zero of them. I came out of it with zero knowledge of how routing works in practice, even if I could guess it in theory.

What a CS degree is (or at least should be), is a set of courses teaching fundamentals, how to think in logic, solutions and pseudocode, and being able to map this decently well to some language. Which means there's a high guarantee they will pick up the skills necessary on the job.

And yes, I know some people get through degrees without being at least okay programmers. I do consider that a failure of the system.

You're right, it's probably unreasonable to expect them to be able to grasp the day to day grind immediately, it's just that 2 months later he still wasn't able to work independently and we had to spend a lot more time with him than we expected. We assumed he had enough common sense to pick things up quicker.

But no doubt, he's probably smarter than I am and will go further in his IT career.

I was that kid not too long ago. All the classes I took started from first principles, most of my assignments began with an empty file. I had very little experience working with existing code or navigating w an IDE. It was humiliating taking hours to make a one-character change, or getting lost looking for a server endpoint, especially when I expected I should already know what I was doing!
How long do you think it would take someone who has the learning capability to understand algorithms well, to read a bug report?

I find this sentiment very strange. I think you're right that jobs require a different kind of work than they may have previously encountered, I just don't think it's very difficult.

To put it another way, some developers are not smart enough to understand inductive proofs of algorithms not matter how much time they spend, the reverse is not true. Perhaps the individual you know likes to use a lot of academic vocabulary which gives such an appearence.

This is just an honest assessment of one individuals experience. I've heard it myself from my father who was at the top of Europe's largest corporation. He definitely is an expert in his field, but still had a healthy dose of doubt and was clearly honest with himself. Hubris is a far more dangerous imo.
I've been around some very successful people and execs at mature companies and you're sorta right but also so is the title. People with experience have more expertise than most people but they're also just much more comfortable making low-information decisions because they know they'll get away with it most of the time and they can recover from a mistake. There is a common misperception that they know exactly what they're doing when they really just know slightly more than the rest of us and are comfortable being decisive.
> The dark side of this mentality is that it creates the same situations whereby people believe their own intuitions are equal to professional scientific research. If you believe no one knows what they’re doing and all adults are just making it up as they go, why would you listen to experts instead of inserting your own opinions based on your Facebook research or some quip you saw online?

Or folks on your own team?

I've got a colleague with over 20 years of software/web/dev experience, working as a contractor on a poorly run team. Routinely there are questions about "how should we do X?".

My colleague has done much of these X situations for 10+ years, and says "we need to do it like Z. I've done Z for 8 years and this is the normal pattern for this scenario".

There's always regular pushback from others on the team with "well, I read $foo which says Z can't scale!" and similar things. These are typically coming from people with ... 1-2 years experience. One guy just graduated high school last year, but the PM gives everyone's views equal weight because "well, no one can know everything, and everyone's got a right to their opinion!"

Just because the 20 year old doesn't know how to do X, or read that Z is 'slow' does not mean their views are equally as valid as someone who has actually done X multiple times over years, and in some cases has already implemented the X on a project.

He's likely not going to be there much longer - he's already splitting time with other projects, and will ramp down if there's not some bigger changes on that team.

This is common, and so is the 1-2 years experience dev churning out a ton of code. It gets work done and builds credibility, but then they make some glaring architectural mistake thats tough to rip out. PM can't see it, and eggs the dev on to keep delivering. Sometimes this is great, sometimes not. Depends on the company and the needs of the tech stack
Further to the point above, the 20 year old in this story does not actually deliver anything. But his protestations about 'slow' and 'legacy' and 'best practices' are like a siren song to some other non-tech folks who keep saying "well, sure, we don't want to be slow - we want to scale - let's do what $person is suggesting". Except... nothing gets done. Months have gone by with no measurable progress, but lots of 'review sessions' identifying $newStackX as the gold standard.

If someone wants to challenge or push back on decisions I make (for example), you better be able to deliver something a) good or b) fast. IDEALLY both, but... if you give me POC code quickly with obvious issues BUT demonstrate some improvement - that's great. We can iterate, if it's quick. Give me some fully fleshed out measurable improvement that takes a bit longer, but has some tests, docs, etc. That's good too.

Sit around and just continually 'back seat dev' on stuff I ship, while literally being incapable of delivering working software of any size, or even supporting your own stuff that you think is 'awesome'... we won't be in agreement on anything.

> no one knows what they’re doing and all adults are just making it up as they go

IMO the most interesting software engineering happens at the edge of the adjacent possible. Where nobody knows what they’re doing. Because it hasn’t been done before. You’re adding net new knowledge to the universe.

Doesn’t even have to be a ground breaking new idea or a completely new technique. It’s already net new if you’re adapting an otherwise well-know solution to a new situation. Or dealing with a unique set of constraints that haven’t been seen before. That’s fun.

But that’s not the same as walking into a thing blind and hoping for the best. You can only do that by relying on a wealth of experience and expert intuition that’s been honed over a long series of smaller challenges.

The optimal situation is to always aim to work at the very edge of your understanding. Not so easy that it’s boring, not so hard that you don’t know where to even begin.

“Expertise” is often less and more valuable than perceived, depending on the situation.

Give me a programming related question and I could have solved it a two decades ago on paper. The expertise allows me to solve it with more efficiency today.

Similarly, there are things that lack of expertise help you with. You can see different perspectives. Have to research the topics fresh (find latest frameworks, etc).

I also think expertise is far more transferable than ever. I hadn’t driving a tractor in 18 years. But I was able to watch a few YouTube videos for an hour, go out and immediately attach equipment, start one up and get to work.

The internet is still amazing. To your point though, there are things I could miss that would get me killed (using a tractor), so a neighbor helped me with some tips after watching; expertise is still very necessary.

>expertise is far more transferable than ever

Small nitpick on this statement that makes a significant difference to me. I think the spirit of what you are saying is that "Experts are far more accessible than ever"

The youtube video that helped you, your neighbor, the instruction manual, are all sources of expert information. In earlier times people would have to find the right book in a library, or travel the world in search of an expert.

You are still trusting experts, which implies that they exist, which is different than assuming "well, some guy on youtube could do it - so it cant be that hard ill figure it out myself". you are instead acknowledging that the "guy on youtube" is an expert that you thankfully have access to because of youtube

Fair enough! You’re correct
I feel like "find latest frameworks" as a positive might get you downvoted here. I get what you mean, unless I don't, in which case.. really?
Just mean you don’t have any preconceived notions
yeah, but, preconceived notions are not necessarily wrong. I think there's a reason why Software companies disrupt each other a lot more than they disrupt other industries. its because of their obsession with the beginner's mind when whole industries have been created and studied for a long time. Sometimes, starting from first principals is a terrible waste of time and capital.
Yes, it also degrades the possibility of getting higher confidence from practice and training.

I can recommend Kathy Sierra's book "Badass - Making your users awesome" on a refreshing perspective on learning, teaching and communication https://www.goodreads.com/book/show/24737268-badass

I think this comment is a comforting fiction as well. Of course "no one knows what they're doing" isn't literally 100% true - it's just hyperbole. The essence of the message remains: the vast majority of people only know just enough to survive (and that's okay!). Survive well enough, long enough, and fortune may favor you.
While I agree with most of what you say, I’m almost on a daily basis hit by how clueless many so called tech leads and architects in the field are. A lot of cargo cult programming and blind repetitions of what someone heard on the latest conference.
I think the problem is that people will optimize for a task they are incentivized for. Many people are just incentivized to appear competent enough to get a promotion or some sort of reward: votes for a politician, sales for a salesperson, a promotion for a manager. This means they don't actually have to be competent, they just have to have the appearance of competence to who ever is doling out those awards. These also happen to be the most visible professions. These things combined create the impression that no one knows what they are doing, and everyone is faking it.
On the contrary, I've been inside of institutions that appear to be a bastion of knowledge and expertise, a castle of wisdom and englightment; only to see the stilts that the whole thing is sitting on after entering inside. Having worked in extremely large corporations and government institutions, leading teams and people, auditing suppliers and vendors; it is humbling to see the contrast between external appearance and internal construction.

I like Peter Thiel's take on this:

Between excessive dogmatism and excessive skepticism, therein lies human progress.

I see it as coming from 2 different perspectives. One is as you note, an antidote to imposter syndrome ("no one else knows what they are doing so I'm not alone"); the other coming from the opposite perspective: the autodidact who realizes no one around them understands the underlying systems and principles as well as they do, and so is frustrated for the opposite reason.
In software development, a lot of this sentiment gets thrown around to avoid the perception that one's knowledge is somehow gatekeeping others from entering the profession.

This doesn't actually level the playing field, it probably makes it worse because it discourages people from doing the thing that would cause them to get better at software development.

Spend more time developing and less time signaling.

If you really know what you're doing, are you learning anything?
Knowing what you're doing doesn't mean you're omniscient. In an unbounded domain it might mean you have very good intuition for what to do and you're often directionally correct. There's still a lot of room for learning there.
Absolutely. There is a massive spectrum between knowing what you are doing and knowing everything there is to know about a subject. We are all constantly adding to our knowledge base… no matter our starting point.

In addition to the base knowledge is the ability to do something well. I know how to do a lot of home maintenance tasks. Due to a lack of practice, I don’t have the skill to do them all very well.

I don't know by exactly which route I'm going to reach delivery of X project, but I know that I know how to navigate.
The article is specifically talking about starting and running a business, not imposter syndrome in general.
* Except politics.

It's verifiable that no politician can possibly be qualified for whatever they're doing at any point in time as there exists no threshold of experience for doing any job to which they might be assigned and it (at least in democracies) actively ignores experience and selects for pandering.

My theory is that any person running for President (US) has to be narcissistic enough to believe that they should be the most powerful person in the world. Any person who believes that they should be the most powerful person in the world is too narcissistic to be the most powerful person in the world, and thereby by the act of running, should be disqualified.
Do you think of president Zelenskiy of Ukraine is an exception?
Why did you choose him in particular? Do you believe him to be the most capable politician today?
Yes. He certainly shines in the spotlight but maybe that's not how we should judge him.