Hacker News new | ask | show | jobs
by jibolash 2103 days ago
Imposer syndrome alert. First, wait till tomorrow, see if you feel the same way. From experience, you're probably just in a mood bad because of some difficult task. If you still feel the same way tomorrow, then my advice will be to just take a more deliberate approach to learning. Nobody holds on to details like "very basic OOP concepts" all the time. If you're in a funk because of an interview screw up, get over it. Interviewing is a job in itself. Take time to prepare (3 months at least) and see if you still feel the same way.
2 comments

why do we always say it's "imposter syndrome". not everyone can have "imposter syndrome". some people are actually imposters
It's a pragmatic thing. Telling an imposter syndrome sufferer that they have imposter syndrome is more productive than telling an imposter they're an imposter. On the internet when you can't be sure which person you're talking to, it's better to give advice that could be helpful if it turns out to apply to the person you're talking to, than to share commentary that wouldn't be too helpful either way.
i think it's less pragmatic and more "nice". such as telling people they can be anything they want to be even if they are 5'2 and want to be in the NBA
Programming ability is based on far fewer immutable characteristics and the pool of programmers is far less exclusive than that of the NBA, though.

I think it's more common that someone is simply not confident in their programming prowess and without that confidence may never achieve their goals. Knowing this, knowing that neither you nor I likely have the credentials or ability to prejudge someone's ability, and barring some obviously shady/impostor behavior like having bummed most of an assignment off of someone else and then asking for my help laundering it... you will almost always find me encouraging people to not feel like impostors and instead feel like programmers that are just early on in their careers.

I think such a default makes sense, and not even because it is "nice". Even pragmatically, people can often improve.

People can't improve if they lack self-knowledge and others are wiling to bullshit them.

"I've got skill gaps as a programmer, especially at broad-level architectural design" is a belief that a mentally healthy person can have.

"If I express concern about my skill level, people will just say that I'm delusional" is a belief that will mess somebody up, especially if it is repeatedly re-enforced by reality.

You're not replying to the comment I wrote and to the comment I was replying to.

There is no equivalence between "bullshitting people" and encouraging them to think of themselves as early on in their careers. There is no equivalence between encouraging someone to improve and ignoring someone's self-concerns about their skill level. There is no equivalence between someone currently lacking programming skill and someone being too short for the NBA.

In case I wasn't clear about it before, you shouldn't bullshit people who clearly aren't putting the work in or are having trouble getting to where they want to go. You should encourage them to think in a healthy way about their current progress and encourage them to find ways to get better and allocate the resources needed for their growth.

This guy was 5'3" (though, granted, that's the record and a significant outlier): https://en.wikipedia.org/wiki/Muggsy_Bogues
Definitely made his mark and I can only imagine the feelings of imposter syndrome he had. Fun anecdote for those who aren't familiar: He's one of the players in Space Jam whose playing talent is stolen by the Monstars.
I think this just makes his point.
Telling an imposter syndrome sufferer that they have impostor syndrome without any additional evidence is telling a pyrophobic that you won't sell them a fire alarm -- and that they shouldn't expect anyone else to.
I think the main issue with imposter syndrome is everyone realises they suck but don't realise so does everyone else. If you look at the majority of private code bases in the world, they'll look like crap. Even the stuff getting leaked out of the major companies look like crap. Even some of the offical open source stuff coming out of the major companies get pulled apart for valid reason.

Everyone feels like they suck at programming, because they do, it's ok, everyone else sucks too.

> If you look at the majority of private code bases in the world, they'll look like crap

I sometimes think that the first set of people working on most software are just trying to get it to work at all, with limited expertise and lots of duct tape. Then come some journeymen who have to add more things. And, well, when I am writing code it tends to look a lot like the stuff around it... things just get Progressively worse!

I am not a dev. I don't intentionally write bad code, but the code I write sometimes hits prod. I don't really know what "good" and "clean" really look like. Just "works" and "doesn't".

You're correct that not everyone will be able to / will want to every single job. "X is not for everyone" is true, where X could be programming, or managing, or sales, or teaching, etc. We all have a finite amount of time on this Earth and no one person can learn everything about everything - sooner or later you gotta decide what things you're actually going to do.

So when someone posts something like this, why is it good to talk about impostor syndrome? Because encouraging a growth mindset [0] leads to better results. Saying "Yep, you suck" isn't going to lead a person to try harder. Saying "Yep, it's natural to feel that way, everyone feels that way sometimes, and Science^TM confirms it (aka Imposter Syndrome)" allows people to step back, go easier on themselves, and focus on what they do have control over (time invested, quality of time, how they get help when they're stuck, etc, etc).

One point I'd like to make to the OP: Whether you go into professional programming or not I think that the skills, background, and experience that you're accumulating can pay off. Maybe you decide that you'd rather not program all day. Perhaps you can go into a technical & interpersonal job, like management, or developer relations, or program/project management, or Q+A, etc, etc. There's a lot of jobs in the tech field and having a background in programming will make it a lot easier to talk with programmers.

Good luck to you, whatever you choose.

--------- [0] https://www.psychologytoday.com/us/basics/growth-mindset

An imposter is: "a person who pretends to be someone else in order to deceive others, especially for fraudulent gain."

So if you're honestly questioning whether you are capable or not, then by definition you're not an imposter. Some people are actually imposters but they are not the ones openly asking for advice about it and asserting that they don't belong.

So is "fake it til you make it" fraudulent or good advice?
Early in my career I faked it many times just to get those jobs. I dont have a degree so i did what I had to to survive. I didn't fake any documents or something like that, I just lied in interviews and lucky for me they didn't background check deep enough.

Now I don't have to lie about my education. I would like to think its because of my skills I developed over 16 years but it could also be the times changing.

Like many here I also enjoy hobby development projects. I also suffer from imposter syndrome probably because to some commenters' point, I am an actual imposter.

Telling someone to fake it, means you are telling him to lie. Telling someone he is probably too harsh on himself, is not telling him to lie or cheat.

So no, fake it till you make it, taken seriously, is not a good advice.

Things are not that simple. Many times I have encountered that people do not know that they know something, lack of confidence can undermine their abilities. By default they will say their perceived version of "truth" that they "do not know it" while in fact they do. In eyes of their boss lack of confidence can be perceived as reason for demotion or endless cycle of easy tasks that do not lead person to improve their skills and learn by doing. Fear of judgment can be parasailing.

Also, sometimes pressure forces person to learn something in a very short period. So, if you "fake it", but also put significant effort to quickly learn what is needed to succeed then it is not lie but a 'future promise' it would be lie only if you don't succeed.

The phrase "fake it till you make it" is also bad programming. Variable names should be intention-revealing.
Because the question contains many common symptoms of a good programmer:

The author can easily read code from others, there is no implication of other people complaining about his code, and can program in several languages.

There are also stuff that commonly causes impostor syndrome up there:

Very general surface level knowledge, problems with interview questions, and difficulty on understanding "very basic OOP concepts".

The only thing pointing to a bad programmer is that "although my solution is more likely to be a complete mess", but it's thrown there without any context on problem difficulty, code size or environmental restrictions.

Any of the best programmers I have ever met could have written that same question if they got reasons to doubt themselves.

Most are not. If you bet on the capability of most people to be able to reach a reasonable goal, you're likely to be pleasantly surprised.
Because the alternative is less likely/wrong - This is just the best you're going to get and you just have to accept it.

also TIL impostor and imposter are both correct spellings (even though I got dinged for the o spelling in middle school)

The impostors aren't (IMO) concerned with improving their skill level. They're normally just worried about what position they can hold on to, how much money they can make, or how to hide their incompetence.
People who are actually bad at what they do rarely realize it! I think that's the difference between an imposter and "imposter syndrome".
From the wikipedia page: In the field of psychology, the Dunning–Kruger effect is a cognitive bias in which people with low ability at a task overestimate their ability. It is related to the cognitive bias of illusory superiority and comes from the inability of people to recognize their lack of ability. Without the self-awareness of metacognition, people cannot objectively evaluate their competence or incompetence.
> People who are actually bad at what they do rarely realize it

Apparently, they may often think that they are good at it! See https://en.wikipedia.org/wiki/Dunning–Kruger_effect

Because this guy doesn't seem like an imposter
Imposter don't present themselves as such.
Because actual imposters don't care.
My guess is the real imposters probably don't even realize they're imposters. Think the Dunning–Kruger effect. Often the most insufferable developers also have big egos and no drive to learn.
Mayvr. I've felt this on and off for maybe the past year or two alternating with short bouts of motivation
Imposter syndrome is not something that just goes away magically. People often feel it throughout their entire careers. Also right now everyone is under additional stress, so I wouldn't be surprised if this is exacerbated.

Also, you may want to get checked for ADD/ADHD if you find you can fixate on things, but have trouble focusing on broader tasks.

You're a couple years into developing and feel like an imposter? Welcome to the club!

Literally every programmer I know has been wracked by doubts and existential dread over their skills. I've mentored a lot of interns and I always stress how impostor syndrome is normal, everyone gets it, including everyone above them in their teams.

My history is more of the "programming wunderkid", been programming since I was 13 and (like many on this site) find reading HN and programming news relaxing and recreational. I say all of this to highlight the fact that I got impostor syndrome. It was particularly bad the first few years. Once you realize everyone feels this way it's liberating. In fact you can even use impostor syndrome for good; either by motivating your learning or by empathizing with others.

I'm constantly learning and growing, which means I still feel like an impostor in these new areas. I'm the Kubernetes expert for multiple startup and government projects, but I still feel like a beginner in out of his depth.

The way I see it, you have two options. You push your comfort zone, and get comfortable with being uncomfortable, or you stagnate. You either become a constant learner who always has a niggling impostor syndrome, or your knowledge becomes static.

Be like Socrates. "I know that I know nothing."

Be kinder to yourself, and at the same time try to design a plan that motivates you to learn more.

Usually, if you have impostor syndrome, a good cure is to learn something that is unique in your environment and makes you feel valuable. Or to build something on your own and see it finished and working.

> "alternating with short bouts of motivation"

I think you might have pinned it here. It may be that you are just fine as a developer but that you have burn out or some other mental health issue honestly. I don't mean that as a negative. I was burned out very badly a few years back and I felt exactly like you describe. It led to anxiety, depression, a lack of motivation, pain... nearly a mental breakdown.

I had been on a bit of anxiety medication for a while. I had a near breakdown (some would say a total breakdown). My doctor literally said "You need to go see a therapist. I mean it. You can either go on your own or I am locking you into the trunk of my car and taking you and you won't be let out until you talk to someone." (So, my doctor threatened to kidnap me, and thank goodness!) So I went and talk to a therapist. And talked. And talked so more. For months, then years. It has changed my life for the better. I am a better developer. I work better. I am a better husband and father. I FEEL better.

I really can't recommend highly enough that you take a look into your mental health. It will help a lot. So what now? Talk to a professional.