I feel as if the only thing I know is how to pick up any new stuff fast, but ultimately it's not gonna last.
BUT, now that you know (intellectually) that it's a normal mental illusion, it can be disregarded. This doesn't make it stop happening, any more than knowing about the blind spot makes it stop being a blind spot. But, you know not to listen to it, like you know that something disappearing in your blind spot doesn't really mean it's not there.
In fact, I now use it as a metric of whether or not I'm learning enough new tech, or if I'm staying with what I'm comfortable in too much (which is a path towards obsolescence when you're a programmer). When I get feelings that I recognize as Imposter Syndrome, I know (intellectually) that it means I'm working on new knowledge, and that's a good thing. It doesn't make the feelings go away; learning more about the new thing will eventually help with that (temporarily). But intellectually I know I've worked on enough projects to not be an imposter, more or less by definition, and I know that the feelings of "I don't know what I'm doing maybe I'm not cut out for this" are normal, and not an accurate guide to whether or not I am able to do this. They are, of course, an indication that I need to keep working on learning whatever the new thing is.
If you know you will not be able to answer some things when asked about them - then you know you lack a specific piece of knowledge. That is not impostor syndrome.
The converse also happen, where you know enough to overestimate your knowledge of the thing.
Ultimately, you have to look at the specifics and some objective criteria. What are your achievements? How does your understanding and skills compare to you peers? Be careful not to get fooled by bullshitters who just pretend to know by using lots of fancy buzzwords in random sequence. You can only tell this through deeper technical conversations.
There's a lot of feel-good answers out there that boil down to "oh, nobody has any idea what they are doing anyway, everyone is just winging it" etc. This is not true. Through conscious effort you can master and build strong mental models of technical systems and processes. It's entirely possible to feel confident in one's expert knowledge of a field after many years of experience. It doesn't mean you feel invincible, and much of this kind of knowledge is indeed about your own gaps of knowledge but also knowledge of pitfalls and illusions of easy answers and knowing when you're entering unexplored but enticing territory that feels simple to beginners, but you expect it to be extremely complex as an expert, etc.
Keep on learning and studying. If you feel embarrassed that you don't understand a particular thing and this bothers you, take some time and dive into it. In my experience there is no better cure than to realize that everything in tech can be understood. It's all logical from the highest part of the stack down to the lowest electronics level. Once you gain enough experience and have a rough mental map of this whole territory, you will know that there's a lot of details you could learn if needed, but not everything is worth knowing for your own case. Apply an engineering approach to this as well. You have a limited lifetime and no single person can know everything. That's the constraint. Now pick out the actually important parts and discard those that aren't necessary for your development. And feel comfortable that you will pick up whatever is needed along the way.
It's a similar case with general personal confidence. There are people who exude this level of confidence which in effect says "Whatever happens to me, I will take care of it. If I'm dropped into a foreign land tomorrow, I know I will rebuild my life. If my house burns down, I'll recover. If I'm thrown into prison, I'll figure out how things work there and will adapt. I don't know what will happen tomorrow, but I'm prepared."
In tech, you can also not know exactly what you will have to learn in the coming years, it will never be like I've now learned everything, from now on I'll just apply it. The best you can do is have a good overall mental overview of the kinds of things that exist and be able to zoom in on any of it when needed.
But what matters is also are you providing value? Increasingly value is more in inter-personal, teamwork and collaboration, rather than conjuring up magic codes nobody else can relate to.
There are simply no objective metrics. Software development is not bridge building or an engineering practice. Evidence is how everything is in flux and nothing is ever truly settled. At the same time any old code can be extremely low cost, valuable and maintainable, regardless of the code itself!
> Increasingly value is more in inter-personal, teamwork and collaboration, rather than conjuring up magic codes nobody else can relate to.
The problem is, this is exactly the area where bullshitters can do well. I do think that office politics and social strategy is the most lucrative one (e.g. winning allies, getting credit and recognition and visibility, generally buzzing and being in the center of attention), but I don't think it connects much to impostor issues. You may be winning at the social game while still feeling like an impostor.
In reality, the solution is to work on your fears of failure, of looking ignorant, or of being a fraud.
To be clear, you always can (and hopefully will) be discovered ignorant. It happens often as you grow as a person. You should learn to tolerate that fear and see it as normal and human, rather than something to try to destroy with extra education.
You can also learn social skills that make those inevitable situations (where you fail or are wrong) easier to deal with. If you're intellectually humble and listen to your peers' ideas, you can share in the "blame" for the defeat.
1. I recall to myself that the stuff I do is hard. If I feel like I'm in over my head, it's because most people would find what I do challenging.
2. I also look back on things accomplished. Imposters, by definition, haven't accomplished the things they say they have. Engineers with imposter syndrome worry that their accomplishments are somehow insufficient, but they have accomplishments to point to. There is a big difference.
3. Something I learned from a math professor of mine: ask simple questions about a new topic to check your understanding. The act of asking a simple question can help you validate that you actually understand what you're learning.
4. I tell people "I don't know" when I don't know. I've found that almost always, when you say you don't know something, the person will acknowledge that's reasonable. (That person might still want you to come back with an answer later though :-) ). The education system serves us poorly in training us that saying "I don't know" is somehow a bad thing.
At the same time, I feel stupid trying to learn how to program properly at my age. I should already know all this at this point in my career so it feels really demeaning, depressing, and embarrassing to do programming exercises. I can't get out of this middling-tier programming skillset, and I have to keep up appearances that I am not middling.
Every time I do go back and try to fix my understanding I'm caught in a loop. I get bored/upset by shuffling through the same basic intro-type work that I already know if I go back too far into intro material I already know by heart. At the same time, when I try to pick out less introductory projects/exercises I just end up spending the whole time googling for stackoverflow questions every few minutes. Getting me back into the "this project is just a string of answers I looked up" head space. The project never feels like a true accomplishment.
> I don't know that I have very many things that I have genuinely accomplished, which I think gets at the heart of the issue.
Good. Maybe you actually haven't accomplished much, maybe you have. But clarifying it is important and you have to face it honestly to have a straight up baseline. It may also be okay. Clarify why you want to achieve those things in the first place and what those are exactly.
> I have in fact built tons of projects and worked on large codebases, but I'm not certain that makes me an engineer or that any of this is a genuine accomplishment. It isn't.
Clarify why do you want to call yourself an engineer. Vague envy of an imagined idealized capital letter "Engineer" is not useful. Engineers aren't some kind of demigods. The important thing is to apply the best techniques to the job at hand, not to cargo cult and clone prestigious other fields. Try to collect examples of "genuine accomplishments" and dissect them. Are they really that magically genuine? Or were they the product of a lot of stumbling, tries and retries, sleepless nights and luck? Focus on humble, respectable people and take their advice, not the bullshitting LinkedIn blogger and CV streamliner who wants to make everything look like they just accomplished one thing after the other purely out of their natural genius. Difficult things are messy and not a straight arrow from scratch to genius accomplishment.
> At the same time, I feel stupid trying to learn how to program properly at my age.
The first step to learning is admitting that you don't know yet. Pretending won't help. Give up your ego and keep honing your skills.
> I should already know all this at this point in my career so it feels really demeaning, depressing, and embarrassing to do programming exercises.
Perhaps you should know it already! But you can't time travel, so the best recourse is to learn it now.
I think overall, it's much better to approach things as they come up. Instead of setting out to "now do this project to feel better about myself", you just see what topics come up when you try to accomplish a real-life goal. Say you want to build some nontrivial application or machine for a real existing use-case that you genuinely want to have and will use. Then who cares if it's all glued together existing code? Most of the time the existing code won't work for your exact use case and you need to read documentation and understand that domain, how their algorithms work, what the constraints are what the design looks like. That's learning.
You don't have to create prize-winning earth-shaking inventions each time you do a project. The point is to learn a technology and the theory behind it.
But if you only copy code without understanding what you're doing that's also not great. Don't be ashamed to sometimes read books, to doodle diagrams and bullet points on a physical notebook or pace in your room up and down submerged in thought while you try to grok what's going on.
Read some Feynman interview books, like "What Do You Care What Other People Think?" and "Surely you're joking Mr. Feynman!" I always get inspired to cut off the bullcrap and focus on curiosity and learning for the sake of it, without caring about stroking my ego. If I'm a noob in a new language and make mistakes, who cares? I'll do my best and try to achieve what I can.
It's also a fine balance to learn how to respect others who are genuinely more skilled than you are and have the humility to learn from them. The two failure modes are 1) to idolize them and think you are a zero and will never achieve anything and it's too late and everyone is leagues better than you and 2) to try to downplay their achievements and pretend they aren't actually more skilled than you are or that merit doesn't actually exist, or that self-improvement doesn't exist and everyone is already perfect, etc.
> When I do mimic accomplishing various things, this mostly comes from taking various portions of online example code, reformulating it, and doing some basic data plumbing to make it work the way I want it to.
What you've described is common. It's the basis for the punchline to https://xkcd.com/1988/ .
> I have in fact built tons of projects and worked on large codebases, but I'm not certain that makes me an engineer or that any of this is a genuine accomplishment.
I don't know your background, you'll need to figure out some yourself.
I've heard in my career two conflicting opinions. Opinion A: "You can't be a real engineer unless you built something from scratch." Opinion B: "You can't be a real engineer unless you've worked on a large scale project." The number of engineers that have worked continuously on one project from inception to millions of customers is pretty small. Most of us either take a project from inception to some small scale over the course of a couple years, or we are dropped into an existing project that has scaled to one size and we keep it up and running (and maybe growing) for a couple years. There are different challenges with both taking a project from inception to a small scale and with managing something at a large scale, and they are both valuable.
> I should already know all this at this point in my career.
I don't know how far along you are in your career, but programming exercises are valuable whether you've been programming for a couple years or several decades.
There's always more to learn. Not knowing something about software engineering doesn't disqualify you from being a software engineer.
One other thing I do I forgot to mention: ask others for specific feedback. If you're not sure about how you did on something, hearing from someone who you trust to be honest can be helpful relieve your concerns, or help you to at least make your gaps more concrete.
I have sat in on job interviews where the candidate was asked questions that I felt confident I wouldn't have been able to answer if I were the one in the hot seat, and that definitely triggers feelings of imposter syndrome. But in many cases, the best response to that isn't "Oh my gosh, I shouldn't let anyone discover that question is too hard for me" but "Could our hiring process be screwed up? Is this really the right question to be asking? Is it more of a gotcha question or does it have real relevance to the position?"
Over time, having been in many job interviews as both a candidate and an interviewer, I've come to see how much of a difference it can make to say to yourself, "Even if you're completely right that you're an imposter, let's just pretend that you're not and see how far you get." I'm now at a point in my career where I have enough successes under my belt that it's a little easier to reassure myself, but whenever I hop into a meeting, I still feel like I'm jumping into character, pretending to have confidence even if I don't. I have mixed feelings about that strategy, though, because pretending to have a level of confidence in my abilities greater than I actually have might be a contributor to other people's imposter syndrome. But maybe the solution to that is to be willing to "take off the costume" in frank conversations, to clear up any misconceptions.
Like, I still feel terrible in the moment, but the knowledge that this feeling will pass makes it bearable.
... actually, now that I think about it, the act of documenting my mistakes might be unusual. I keep a brief daily log of my activities, including stuff like time spent reading documentation or source diving for understanding. That helps my days with fewer (zero) contributions to the project still feel productive. Maybe that could help?
There are of course experts, but usually their expertise is constrained to fairly narrow niches.
It's possible people are lying to you of course, but that's pretty unusual and you'd probably see other red flags to indicate things are just not right at your job. In normal companies with normal people, you should be able to use your colleagues as good measuring sticks to whether or not you're an imposter.
Being a newbie at anything is natural at any stage in life. Is environment supportive of that?
Trust in the fact that whatever state you're in now, you'll be in the other one soon enough.
Trust that this is true for everyone.
With mastery and experience comes faith -- that is, an attitude of trust that permits unfettered action -- in the fact that the oscillation will continue. There is not any guarantee that you'll always be a space-god and never a dog; just the promise that you'll always come back to the other state from whichever one you're in.
The most important part of confidence is honesty with yourself and others. If it turns out that honesty suggests you are not qualified for a given job or task you at least will not have imposter syndrome.
Sometimes being honest with yourself means forming critical decisions and defying trends. If you have mastered a given skill while ignoring a related trendy new framework you may have trouble getting a new job in that knowledge domain but you won’t have imposter syndrome because you are clear about your real world performance.
After a while of fully over coming imposter syndrome, a couple years, in a domain where it is common you will perceive things very differently than your peers. It is never about knowledge gaps but delivery and product quality. People frequently engrossed with imposter syndrome where those people are TGIF majority will continue to believe it’s all about knowledge gaps. This distinction influences differences in a variety of decisions. The differences of behaviors form patterns that are insecure and defensive.
Get deep expertise in one or more fundamental domains where knowledge doesn't age out fast. Things like performance analysis, security, etc. that apply regardless of what language or framework you're working in. All that "useless" stuff taught in college that some HNers like to look down on turns out not to be so useless after all since they underlie everything about how software and computers work and evolve slowly. And if diving deeper into tech areas is not your thing, fundamentals in other areas like business, leadership, etc. also are timeless and valuable tools if you make the effort to add them to your toolbox.
If you don't want to feel like an impostor, get to a point where it's demonstrable, even to yourself, that you aren't. Sure, there's always someone better out there but there's always someone not better too and with effort, you can make sure that there are more of the latter.
Now I look at the cloud computing space where there's hundreds of components, overlapping functionality, and nothing that easily helps me to determine what things are important to know, flash-in-the-pan fads, or long term career building skills.
But it's the same in other domains as well. There's too much Entertainment to hope to discover everything you might be interested in, there's expansion in social communication...and my monkey brain is hyperventilating over it as the things that made me feel valued (that I could take pictures, edit video, write software) have been commoditized so that my skillset isn't necessarily as spiffy as it used to be.
Travel in the way that makes you happy, talk about your friends travels, compare notes, get ideas for where to travel, and where you have no interest in traveling. When you meet someone that is well traveled, don't feel inferior. You're on your own journey, it's a path you picked. There's many reasons you chose this path and many ways you could change your path.
In short, don't compare yourself to others. Be confident with what you know and learn what you want with the level of depth that interests you.
If I understand correctly, "impostor syndrome" is a term coined by ivy league university psych counsellors. It does not apply to the workplace. It refers to ivy league freshmen not thinking of themselves as geniuses and/or mistakenly believing you have to be a genius to be admitted to the ivy league.
That doesn't seem to be your problem though. It seems more like you feel that you're not learning anything permanently. That seems unlikely but... maybe it's true? Maybe your job is all about pointless details of framework X which you then promptly forget again.
It's like I have accumulated too many shiny stuff, but the real gold is missing/hidden.
happily hiding in the backend :-p
I felt like an imposter in prior jobs (product/bus-dev) until I built my own startup. Then I learned the hard challenge of building a reliable product that is used regularly, and is profitable. I know now that I am not the best at any of the steps involved but I know what it takes to be successful and can appreciate when others do so.
In sum: I was an imposter before because I achieved titles largely due to my general competence, work ethic, and academic qualifications. I stopped being an imposter when I deeply understood a specific field and gained key insights through much experimentation.
So - it's good that you pick up new things fast. Now focus on a problem you care about deeply and spend a few years working on it. That gets rid of imposter syndrome.
The crux of that philosophy is that you should only worry about things that are in your control. Most things in life aren't such as the made up comparisons of you vs other people.
The other solution that helped me is just to get good at one thing (for me it was keyboard optimizations). So I have at least something I can say I am better than probably anyone.
In a span of 6 odd years having to learn all this, it's been taking toll on me as I didn't know where I was going with all this. Hence the feeling of being lost :-)
I believe most of imposter syndrome is self-inflicted and other people's view of you is likely higher than your view of yourself. It's separate from self-esteem. Self-doubt has a way of creeping in and really making you feel like your contributions are not worthwhile.
Take breaks throughout the day and start with the assumption that you're not an imposter and focus on doing your job and being a valuable member of your team without focusing on the "accomplishments" of others.
No matter how it trivial it may be, I'm sure your projects have brought some kind of new experiences in your life.
I have tried a lot of things, and failed more than I could count but each and every failure helped me to get better in my 'next big thing'.
Be confident! :)
Bringing fresh, but worldly, eyes to existing project can help see solutions to problems that are similar to solutions in other domains that weren't apparent to those on the project long term.
If you feel totally and completely lost still, consider therapy if it’s an option. If you have some sort of stigma against therapy, you need to throw it away. Just talking through what bothers you with a professional could help.
Secondly if you just different domains and languages over 20 years (like me) you probably aren't better than someone who has been doing one thing for 5 years. If you want to be like that guy, stick to one thing.
Best of luck!
I can't recommend Albert Ellis's books enough on these subjects, see for example this video: https://www.youtube.com/watch?v=3tZnQvgFZms
If you are successful, your problem is most likely somewhere else. Find a good hobby. Check your lifestyle.
I have never been sacked.
I started my own company. If it fails I will go back to full-time employment.
I think we are too pre-occupied with our feelings. I know I used to be.
One of the nicest things about learning, is powering through the "Jon Snow Trough," and becoming a lot more confident. We often give up, at that point, and that's a tragedy.
One of the things that I always need to accept, is that there's probably some kid in a Hanoi Internet cafe, that can totally smoke my best, but that's OK. Maybe, one day, I'll benefit from her contributions. In the meantime, I just keep doing the best I can, with what I have.
(edit: actually it is impossible to dance with an impostor syndrome, so there you go).
2.only >lacanian< psychoanalysis. most useless kind of psychoanalysis.
I think actual suffering is mainly down to our natural focus on 'what we can't do' - combined with some mal-tuned sense of empathy, projecting this from blissfully unaware others onto ourselves.
I don't have an IT background, and drifted into it as "I like computers and they said yes". Learnt to code a bit to get stuff done, and was OK as built up proficiency. Then moved into more customer-facing stuff - gathering requirements, then coding them up. Then I stopped doing the coding. Then technology moved on under me when I wasn't paying attention. This made me miserable - was working in IT, knew what I/they wanted to make, but was incapable of actually producing it myself. What was the point of me?
Then I moved into Product Management and found it clicked. I could just write down what I wanted (or draw some pictures, design a flow) - then just wrestle that idea out of my head (which is quite satisfying). Present it, clarify it - and 2 weeks later it had become reality. It was magic. I didn't have to do the thing I was crap at.
More importantly though, I started to learn how other people liked/disliked to 'consume' work. Some people seem fine with being given a picture and being told to "make it just like this". Some people get upset when you don't give them the painful new technology. Some people will blithely create something obviously stupid, as you didn't explicitly say not to. You're told some people are 'behind with their work', but it's as they've gone out of their way to create something with elegance. Some people need to be separated from others, by the throwing of your protective body between them, as you don't bruise easily.
By this point, I should probably try to write a conclusion. We're a social species and form groups. The goals of that group become our goals. By meeting my goals, the group meets their goals, and we collectively succeed. My imposter syndrome is where I'm just looking at the gap between my abilities and responsibilities - and I feel I'm betraying the group. Feels like something useful, that's just gone a bit too far (like an auto-immune disease). How to over-come it? Maybe be brutally honest with yourself about what you like/dislike. What made you want to throw up and what kept you blissfully occupied in the office until the lights were turned off. Then be open about it, and ask others.
Simile time - I'm thinking it's like office secret-santa, where you get a random name. If you know the person well, you might come up 'the perfect gift' for them. Makes you happy. If you don't, you end up buying something generic and inoffensive - a box-ticking exercise. This is just a silly activity that takes up maybe 15 mins of the year - but somehow we don't see the latter case as an issue for the rest of the year where you're interacting more.
I've spent my career working in: supply chain, business operations, sales support, marketing, IT, data engineering, web analytics, business intelligence. And a few other bit parts like a stint at a healthcare consulting firm.
I fully get exactly what you're talking about, as virtually every job change involved a completely new functional area but also generally involved an entire industry change. Which involves a whole helluva lot of "starting over from scratch" while simultaneously dropping into more and more senior positions where a more typical hire would have a far more well-built foundation than I have.
> I feel as if the only thing I know is how to pick up any new stuff fast, but ultimately it's not gonna last.
The thing is, this is an incredibly valuable skill in and of itself. It's natural for you to be able to do this, but many people can't. Even if you forget the specifics of what you've picked up before, you
- Still retain the concepts and mental models you've developed previously, which causes you to look at things from a very unique/different perspective than those without that diversity of experience. That's infused in how you approach your work, even if you don't notice it. Think of it similarly to dogs - mutts are more robust from a lot of inherited disorders that purebreds suffer from.
- You have fewer sacred cows and domain biases. Depending on the situation, this can be a strength or a weakness. It's usually a weakness in highly regulated areas where those sacred cows and domain biases grew from a place of compliance and legal requirements, but a strength pretty much everywhere else.
- Your history is indicative of (successful) flexibility. This too can be a strength as much as a weakness. If a company/team/project is in a mature and stable place and wants to remain that way, you run the risk of getting written off as a job applicant due to your potential as a disruptive force to that stable-state or as a likely flight risk due to the lack of interest you'd likely have in doing the same thing for a long period of time. But for a manager/team with a diversity of needs or a likelihood of changing needs over time, you're seen as a perfect match and considered a valuable find.
The best advice I can give around imposter syndrome is just changing your perspective - you're a mutt, not a purebred. Lean into that as your strength, rather than dwelling on that as a weakness. Just like purebreds (i.e. someone who has only ever worked in a specific domain using a specific technology/language) will outshine you in some areas, you absolutely outshine purebreds in other areas.
Also have faith in whomever hired you. They were both aware of your history history when they hired you and knew the situation (and position) they were hiring you into, and determined out of all the candidates that you were the one they wanted.
My supply chain job came from a college job fair - I walked into the interview with the opening statement of "To be upfront, I know virtually nothing about supply chain, I just really wanted the neat swag bag you were giving away". Turns out they didn't care at all; they had one of the most sophisticated supply chain orgs in the world and were fully confident they had that expertise covered and could teach me whatever I needed to know; they were far more interested in a completely unrelated skill that none of their traditional applicants tended to have, which they were in desperate need for on a particular team. I learned after the fact that me getting this job caused a whole lot of drama within the college, because the supply chain program was so miffed that a non-supply chain student had "stolen" an apparently very coveted slot/offer that they place their students into while being completely ignorant to anything related to that domain.