I’ve probably suffered from impostor syndrome throughout a large part of my personal/career endeavors (I just didn’t know it was a thing). Looking back, I suppose it’s not hard to understand why. I have a history of stretching way beyond my comfort zone and biting off way more than I can chew.
I never finished college, and at 18, went head-first into a pretty successful career that had me going from being a timid girl working in accounting, to being a VP of Marketing with a lot of responsibility and direct reports. Then I got this crazy notion to teach myself to code, and got my first “real” developer job in 2007 (a job I still work at part-time to this day). Two years ago I decided to learn an entirely new stack, which brought about entirely new waves of impostor syndrome — and now I’m about hip deep into getting my own startup off the ground and launching my first app.
Fighting impostor syndrome for me has been a consequence of either being a late starter, or choosing to go down riskier paths, and the discomfort caused by doing so. The “fake it ’til you make it” thing. Pushing outside of my edges always brings about deep self-doubt initially, and then eventually I find that perseverance overcomes, thankfully! I’ve never quite felt entirely comfortable, or entirely confident while stair-stepping my way to new places, and yet somehow I've continued to do so. I’m also someone who has spent years performing on stage in front of crowds, with terrible stage fright, too — so go figure! I mention that because the feelings are somewhat the same for me.
In addition to all of these experiences of my own, I have so many questions about this topic!
Why does impostor syndrome seem to be so prevalent among software developers in particular? Is it really experienced more by software developers compared to other professions, or are we just more aware, and talking about it more? Is it because we are confronted more with what we know or don’t know on a day to day basis compared to other professions? Is it the constantly changing, ever-morphing vast universe of things to know within the technological landscape? Is it because we BUILD things that are visible and able to be critiqued so easily, and that there are 100s of ways to solve the same problem and the “right” way is always debatable?
What about personality? Is software development a career that attracts more people who tend to have impostor syndrome tendencies for some reason? The reason I ask that is because I did feel some of the impostor syndrome feelings throughout my career, when I was not a developer. Having worked extensively as both a marketing professional and a developer, I can say that although I’ve had some moments where I felt impostor syndrome as a marketer (in the presence of those who I considered marketing geniuses, no doubt), I do feel it way more on a day to day basis as a software developer.
Isn't this impostor syndrome stuff more self-inflicted amongst ourselves as peers? I mean, do our end users care at the end of the day, if things work well, whether or not we "knew all the things"?
Is it possible to have a healthy dose of self-awareness, without the fear of being found out (whatever that means!)? I mean, it’s okay to not know everything…to not have all the answers, right? I am definitely proud of the fact that I’ve been able to Google my way to building things that work.
It helps knowing that I’m not the only one who suffers from this affliction, though, so I’m appreciating this thread a lot. It's great to hear everyone's stories. Thanks.
I'm a career switcher who was given not very challenging tasks at my first tech job. The first day of my second job, I was thrown into a new language, framework, and codebase and given (what I thought at the time) was an impossible task, and no one else worked on the project. I remember just sitting at my desk thinking I should quit. That there's no way I would be able to do this, so why not quit before I was found out. Luckily, I took a deep breath and told myself I would just try my best.
2 things have always helped me when I feel like an imposter:
Breaking things into smaller tasks. When something seems too hard, I try and make it into tasks that I can accomplish one by one, which gives me more confidence as I complete each.
Helping people. Whenever I think I know nothing, I answer someone's question and while I'm explaining something, I realize that I do know things! You can try this technique to explain things to anyone. Just talking through anything makes you realize you know more than you think.
One thing that someone recently said in a talk is that Imposter Syndrome is experienced by senior developers who do not feel adequately prepared or trained for their current position, as opposed to new developers who don't feel ready. Maybe this will be an interesting point of discussion for your talk.
In my case, I'm a career switcher as well (French Ph.D in 1998., experienced a terrible academic job market, and then caught the internet at a great time to self-train and move up). 15 years later I am quite sure I'm not the greatest developer in the history of development. I do believe, however, that I bring something else to the table, which is a diverse perspective and a willingness to learn. If you can find it within yourself to value your own perspective as something that few others might have, and share it in a spirit of helpfulness, that is a powerful gift to give. And then if you can also take your accumulated skills and experience and use them to teach others, that is a great way to rid yourself of imposter baggage. So for me, the key is - value your experience and uniqueness, and make sure to pass on your knowledge.
I am a career changer myself. I used to work in finance but at night I would work on Wordpress sites as a hobby and when I got laid off my friends convinced me to go back to school and I got a second Bachelors degree to get into web. I didn't know about bootcamps at the time so thats why I went and got a second degree.
That was 3 years ago...Since then I have been mainly working contract job to contract job just doing the best that I can with no mentoring or any type of formal guidance.
Till this day I struggle with imposter syndrome because I feel that because I have never been trained that everything I do is wrong. I feel because I heavily rely on google to help me with dev problems...is an issue because senior devs don't need to rely on google like that...I know this is a misconception now but that was my thought process.
And when I am job hunting...imposter syndrome is like this weight that is on my shoulder feeding in the self doubt that your not good enough thats why you never got a call back or the interview. The ways that I have been conquering my imposter syndrome is trying to look on the bright side of things and trying to figure out ways to solve my problem of what can I do better.
Most important is that I have been finding dev communities to belong to and learn that I am not alone. I have also given back and I now Teach and TA to help others who want to get into tech. Everyone has their self doubts we are all human and being a senior dev or a junior dev we are not going to know everything. Learning to accept this is my way of conquering imposter syndrome.
Also recently a front end dev Brenna O'Brien gave this talk on IS that I thought was just simply amazing t.co/VumljOVN5d
As a fellow BFA-haver, I also get that sinking feeling sometimes. I've been at my first real dev job after a boot camp for about a year and a half now, and my first tech lead/crazy awesome mentor left the company recently. He had my back through a lot of tough challenges while pushing me beyond my comfort zone, and when he left, I had the sudden thought - "Now that he's gone, everyone's going to see how much I suck." I immediately laughed at it because it was so stereotypically imposter syndrome, but at the same time... I still felt it.
A few months on, and I'm still doing well and competent and not fired and all that jazz, but there's a crazy dichotomy between knowing that I add a ton of value at work, and feeling like I'm worthless/a fake.
I studied piano performance in college, worked in marketing for a few years, did some non-code stuff for a startup, decided to freelance 'building' squarespace sites (didn't even use custom code, just the templates they provide), threw myself into a coding bootcamp, became a product manager, and ended up co-founding this site. A site full of developers exchanging highly technical ideas and concepts. And I have zero experience as a "professional" developer.
BOY do I suffer from imposter syndrome.
How I'm dealing with it:
Since my main responsibilities are operational, I was able to subconsciously avoid the codebase. Ben confronted me about that, mostly with concern that I wasn't doing something that I actually loved doing. After we chatted, we came to the decision that I'm free to ask any question I want. Even ones that are very obviously google-able.
I needed to hear this explicitly because I spent a while believing that I shouldn't ask a questions unless I've thoroughly searched for an answer. I didn't feel comfortable asking basic questions like 'what does this gem do?' because I knew that I could find that out, on my own. But recognizing that my time is extremely valuable has helped me ask the 'dumb' questions I've been afraid to ask. And it's making me much more efficient, and less afraid to break stuff.
I started in this industry after being a hobbyist and having no formal CS background - I studied neuroscience and was well on my way to an academic career when I decided (with the assistance of a friend who from then on became my career sherpa) I should take my hobby into a fulltime job. I was speedily doing code challenges, TA'ing classes, running my thesis experiments, and writing my thesis while simultaneously applying to every job I could find.
After over 100 submissions with either rejections or no responses, I finally had an interview! Some time after, I was plopped into my first software job in a new city, and had no idea what I was doing. I struggled with imposter syndrome for almost a year - how did I conquer this? Sometimes it's hard to really think about, and sometimes I wonder if I truly did ever conquer it. A few different things, in my mind, helped me with this:
Realizing this is a very meritocratic industry, despite how HR departments treat things. This becomes most clear when other developers start coming to you with questions, and you can comfortably answer them. This comes with the next point:
PRACTICE. I always felt like (and still do) that I have to prove something because I don't have a degree. I do a lot of coding and reading about coding in my free time - it helps that it's a passion of mine, but I make sure to maintain balance with other things in my life, such as exercise, pleasure reading, etc. But this gets you the knowledge to start answering questions your teammates you have, and as you do this more and more often (it'll come as you practice, because the questions will naturally seem like easy ones to you), your own confidence will build along with the confidence others have in you. It's a nice positive feedback loop.
Work on actual projects for your practice - yes you should take online courses, yes you should do coding practice, but you should contribute to open source, build projects that are interesting to you, etc. This skill transfers over - and I actually have a story about an instance in which this happened to me just over the last week, but it's a long one that should probably be its own post.
Jump into the deep end. This is always a leap of faith - once you get past the drowning feeling, you'll find yourself swimming. Challenge yourself - take the initiative to rewrite your company's testing procedures, learn big data processing by building a big data app, deploy your first single page app, do some embedded programming - then break it all or have others break it, and fix it. And break it. And fix it. It will then become routine and old hat - then comes the knowledge, the confidence, and it starts replacing that feeling of being an imposter.
I think the key takeaway here is building confidence, and constantly pushing your limits. Failure doesn't exist - you will always learn something and become better, and as you build that understanding and the confidence I talked about above, you'll welcome 'failure' and success: failure is learning, success is demonstrating what you learned.
As for my personal example - I've been in the industry for 3 years now, am building out my own startup (remember when I said to jump into the deep end?), and am loving every minute of it.
Thank you for this thoughtful response. I also don't have a CS degree (in fact, I have a BFA), so that part especially hit home for me! Contributing to an open source project is one of those things that has been on my dev "bucket list" for a while, but I just haven't worked up the nerve to do – it's reassuring to hear it was such a positive experience for you. Your points about failure are also completely on point, although it sure can be hard to see that when you're in the middle of it! I think it's really an important perspective to have.
Best of luck with your startup!!
Thank you so much! Most OSS projects are very welcoming to people of all experience levels, so jump right in, I'm sure your PRs will sail right through review :)
These are very wise words Kyle! Best of luck :)
It may be a paradox, but my biggest experience with impostor syndrome was not in a professional environment, but during the FreeCodeCamp curriculum I was following. I have never followed any college course in this field and even if I faced difficulties, I was always able to overcome them.
Until I got to the React challenges and the Game of life exercise. I can remember the feeling I had when I first looked at the requirement. This feeling of being out of place, of knowing that there was NO WAY I could do such a thing. It was a pretty awful place to be in. I procrastinated this exercise for a few weeks. Then, I just decided to break the problem in very small pieces. Just show a bunch of boxes. Good, now just make some of them red and other grey. Ok, now add a random React method to make those boxes change their color ....
Finally, before I even realised it, the exercise was completed and all the requirements were done.
This experience really taught me a lot about myself and how I should tackle this programming thing.
The voice in your head that tells you: "You are worthless, this is not you" never goes away. It comes back every time I face a challenging situation at work or during a complex side project. I believe it's just part of every complicated journey like learning to code.
Whatever knowledge I have, whatever problem I face, I always tell myself that I can always learn a little more. It's never finite, there is always something I won't know, but there is always something I can learn.
I like to think of it like infinity with numbers. Whatever number you can think of, you can always add 1. With that addition, you come closer to a solution, and before you know it, you solved the problem.
Ahhh, I've had the same experience with code tutorials – like, you've just watched the video or whatever and they set you loose to code your first "real" thing and all of a sudden it's like "oh shit, I haven't really learned anything, I can't do this." But you're right – pushing yourself thought that pain point and finishing the project is such an empowering moment. I think your outlook on learning is really inspiring – also I try to remind myself that it's okay not to know everything right away. In fact, if I already knew everything about my chosen career already, it would be pretty boring!
This is great. It sums up what I've felt many times, and no doubt what many developers have felt. Thanks!
The voice in your head that tells you: "You are worthless, this is not you" never goes away. It comes back every time I face a challenging situation at work or during a complex side project. I believe it's just part of every complicated journey like learning to code.
The voice in your head that tells you: "You are worthless, this is not you" never goes away. It comes back every time I face a challenging situation at work or during a complex side project. I believe it's just part of every complicated journey like learning to code.
I had a very similar experience with that same project.
I've been working in technology before the www was invented (early 90's), and the majority was in tech support. In fact I dropped out of college to work full time in support. I was good at it, but I knew it wasn't what I wanted to do for the rest of my career.
I switched to web development in 2011 after picking it up on the side. I was the oldest in age in the agency I started at, but very junior in experience. Although I tried to learn quickly, and my support background helped with troubleshooting and debugging, I still felt behind everyone else. I never had a bad review, nor was criticized for my code, but I thought I should know more because of my advanced age.
Ok, I'm in my mid 40's now, but that is like 100 in dev years.
I'm now on small team, building cool things for a life sciences publication, and I'm still feeling I should know more. I'm amazed that I haven't been found out and have been able to fake it enough to keep my job. Again, only positive feedback from my peers, but that little devil on my shoulder digs in its claws and whispers in my ear that I should go back to support.
I feel the imp(-postor syndrome) especially when I'm at a conference. My programming focus is within the WordPress sphere and I've met several of the really smart people who have contributed to the codebase. There is kind of a hero worship kind of thing when you meet them, knowing that they built the platform your career relies on. It really puts me in my place.
I've talked twice at my local meetup. It was on subjects I have a decent-enough handle on, but Mr. Imp was riding shotgun the entire time, making me nervous.
It is a daily struggle to overcome my impostor syndrome, especially when the code I'm working on doesn't come naturally for me.
I hope this rambling helps, and good luck with your talk!
My first real software development job involved me being thrown into the deep end to build a product for a startup, with very little guidance other than some blog posts on the Internet. I was learning to code for real as I went. I constantly thought I was probably making a ton of mistakes I didn't even know I was making. In hindsight I was, but it wasn't so bad.
What really kept me up at night was when I would learn something new and feel bad if I wasn't already practicing it. And by new, I mean new to me. One path I went down for a while was that our test coverage was pretty weak and I wasn't sure what to do about it. Our pace of development and quick changes made it seem really hard to get started with more than a few basic tests.
At some point I found out that some of these issues are basically common across all startup environments. It's normal to cut a few corners. And even if it's not ideal, it's basically what everybody in similar situations was also dealing with.
I ran into a similar situation with technical debt. How am I ever going to get out from underneath this mountain of wrong turns? I was lucky enough to attend a Sandi Metz talk where she described the situation I was in and described it as normal. It wasn't just me. And while her talk offered some solid solutions, the most helpful takeaway was the acknowledgement that technical debt is natural and normal.
I still feel like I deal with imposter syndrome all the time but it gets better. I'm quicker to acknowledge that I actually do know what I'm talking about sometimes and when I feel like I don't, chances are a lot of other people feel that way too.
I'm excited about how far I have come and I am excited that in a few years I will have progressed that much more. I'm not trying to learn every new thing, I'm just trying to keep expanding my general capabilities by taking on the task at hand, and trusting that that will make me a more confident and experienced developer over time.
I know it was a bit of a minor detail in your story, but I think what you mentioned about having "very little guidance other than some blog posts on the Internet" is actually really important – from what I've seen, a lot of other devs are in the same bucket. I think a lot of folks look at that situation and use it to defend their impostor-y feelings (“I can’t really code, I have to google everything”) when it’s really just the opposite and is, in fact, empowering (“I have strong problem solving skills, and with the amazing resources available on the web, I can figure out anything and make anything work.”).
Thank you so much for sharing :)
Oh yeah. I really try to put myself in this mindset when building out dev.to. Our need to go to the Internet void for help pervades every bit of our journey, not just for strictly technical questions and answers. That time someone online told me "don't worry, all startups kind of have codebases like that" was everything I needed to plow along.
I'm 36 years old, and have been working in industry for a year now. I have an existing BA in Criminal Justice and Criminal Law, but couldn't go into that field because of The Great Recession, so I started doing customer service for a Bay-area tech company about 6 years ago. During that time, I realized that while the company takes very good care of me and my family, I was still 30+ years old doing what amounted to call center level customer service. If I wanted to get ahead in life, and be able to provide for my family, I had to change fields.
I started going back to school, this time for a CS degree, and I'm 3/4 of the way through that. Generously, my current company allowed me to intern for them last summer as a front-end dev, and unfortunately, that's when impostor syndrome set in. I've always been worried that, as a 35+ yr old newbie, I'm already 10-15 years behind my colleagues in terms of experience, but my first internship really cemented my fear of failure, because I felt like I had one shot at this. Ageism in this industry exists, and while my current company is great, if they go under, I'm woefully behind the curve when it comes to experience, vis-a-vis my age.
I think, as a dev, that I have a tendency to try and see the entire picture. I'm still, from school assignments, expecting to have the beginning, middle, and end of an assignment / project explained to me. Transitioning from school to real world is one of the hardest things about this process, because industry is so radically different from the finite world of school. In industry, it's rare that you get to start from scratch and design a project exactly how you want; 99% of the time you're dropped into an existing codebase, with existing quirks, and style guides, and bugs, etc etc and you're expected to just grok it all and keep the ship afloat. My personality is such that I have a hard time if I don't have an understanding of the whole flow of the entire project; I don't do well in compartmentalization. If I'm designing a new widget for the front end, I want to know where it's getting the data, how that data is being parsed, how the data is being captured, how it's being stored, and retrieved, and sanitized and and and, lol. That has definitely been exacerbated with school, and that is a huge contributing factor to my impostor syndrome. Couple all of that with the proclivity of our profession to be socially awkward, and sometimes lack social skills, and now you've got senior devs that are probably really nice people, but who don't know how to help you, so they appear stand-offish and demanding!
Fortunately, my mentor was amazing. He spent a lot of time talking to me about impostor syndrome, explaining that it was something that he dealt with on a daily basis, and helping me see the forest for the trees. He kindly took the time to explain the flow, from back to front end, and then weaned me off of that desire to know by giving me small, bite sized chunks to begin with, before moving me on into something that was more a part of the whole.
To combat impostor syndrome, as a newbie, it is crucial that you have good mentorship. The young (experience wise) coders are like little seedlings; they need support, and something to hold them up until they're ready to stand on their own. Clear, and concise expectations are key, along with a sensible, and reasonable timeline to accomplish them. Be up front with the newbies; let them know that they're going to feel this way, it's completely ok, and they have a reasonable amount of time to work on it.
So this one is still pretty fresh for me and tough to talk about but here goes..
I am 36, finished a coding bootcamp in December. Landed my first apprenticeship in March.
I really wanted this job and had spent a lot of time prepping for the interview, both soft and technical sides of it.
I was ecstatic when I was given the chance to come in and had high hopes of landing a full time role.
Since I finished by bootcamp, I had plenty of doubt about my abilities, the quality of my education(meaning what did I actually learn, not what was I taught) and could I really transition into a new career at this stage. You see I'd mostly worked sales/technical support roles, but got an itch of the programming bug when I worked on a communications team doing HTML and CSS stuff at a previous job.
Anyways. New apprenticeship. Given documentation and some general guidance but like many software dev jobs I'm guessing it's sink or swim. I am a fairly slow learner. At almost any job I am usually the last one to finish things. Hell I didn't learn how to ride a bike until I was 12 and didn't learn how to drive a car until I was almost 19. I'm usually a few years behind, but once I catch up, it's all good.
My first real one on one came with one of the more experienced team members. I wasn't expecting it to be great, but holy shit, I've never quite felt like such an imposter before. You know what, screw imposter syndrome. I WAS an imposter in that situation.
Apparently the company had a different impression of me from my interview and were expecting me to be at a different level, and I was told they were disappointed in my knowledge, and ability. I was questioned as to how long I had been coding, when I finished my last class, and got the feeling like I was not wanted there and did not belong there. It was pretty much the imposter's nightmare come to life in a real one on one.
This had an impact on my confidence. It was the first real feedback I had been given from an employer and not one bit of it was good. And it wasn't like I got feedback on screwing around or being lazy. I was working 10-20 extra hours at home to try and make up the gap and doing everything I could to catch up to try and make it at this job. This really cut to the core of my competence, my ability, my belief in myself.
I've never felt more exposed, more embarrassed, and more ashamed at a job than I did in that moment.
The rest of the time I was there I desperately wanted to prove my competency, show that I was a capable of writing elegant code, working in an agile environment and communicating about my work with clarity and authority, but I wasn't.
I lasted about 4 more weeks before they let myself and another apprentice go. I am very grateful for the opportunity to learn and see what the real dev world is like, but I'd be lying if I said it didn't sting.
To make things worse, I work as a TA at the place where i graduated from, which is PHYSICALLY ACROSS THE ROOM FROM THE PLACE I WAS LET GO FROM. So I go into class after being let go from another job and have to answer questions about what happened there, and I get to see the place I was let go from every other day sooooooo yeah.
It has not been easy, but I have tried to remain positive and not let this ruin any future prospects I have of getting better and shifting gears in my career. I love programming, developing, creating.. I love computers. Damn I've been programming since my dad bought me a shitty outdated IBM PCjr in 1989 like a zillion years past its prime. I had to learn basic DOS stuff just to play Bubble Bobble on that clunker.
To stay positive I think about the many things I started late in life that I initially struggled with but ultimately became successful in. I entered college not knowing how to read music. I left with the ability and experience of a professional jazz musician.
Being exposed this way was not fun, and even though the emotion of the events sometimes still bothers me, I try not to let it prevent me from seeing the good the happened.
I identified the areas that most held me back during that experience and have tried in earnest to work on my weaknesses to get to the point I want to be at.
I am currently revising for degree examination after which (if successful) I will get Bachelor's degree in Computer Science. This is probably the time when I feel the most like an impostor.
I don't think I will overcome this until after the examination which is in two weeks. So wish me luck and hopefully, I'm not an actual impostor.
Good luck! Hopefully your success on the exams can be a validation of your non-impostor-ness ;)
When I first became a teacher assistant (TA) for my bootcamp, I felt pretty excited to help students, show people who were in once my position, and also maybe show off a little of my skills. I felt pretty confident in my coding ability, and was finishing an apprenticeship as well.
One student had a lot of questions and was very inquisitive. We were setting up the dev environment and she wanted to know what exactly she was installing on her machine. I told her Rails was a framework we'll be using "to learn the basics," and she kept asking (politely and out of genuine curiosity) questions like why we're learning Ruby and not Python, what exactly Git was, or what's the difference between PostgreSQL and MySQL. I felt that me being a TA meant I had to know all the answers, and suddenly started feeling overwhelmed and incompetent, asking myself, "Gee why don't I know the answers to her questions?"
While I did have that exact thought, I don't think there was necessarily a starting point of imposter syndrome. Maybe it was the fact that I got a TA job even though the only programming I did was the 6 hour/week apprenticeship for several months after graduating my bootcamp.
The biggest nightmare of going through imposter syndrome for me was that it was this constant feeling of "you're not actually a programmer" that hovered over me. It probably stemmed from the fact that I don't have a college degree, and hadn't really done anything with my life in general. I questioned whether or not I could really call myself a "programmer." That feeling made me not want to write code or learn new concepts, which then validated that negative feeling even more. The lack of responses from job applications didn't really help either.
What really helped me was when I started listening to some advice I read from Haseeb's blog post about getting your first engineering job. I reached out to some people just for informational interviews and to hear what it's like working as a developer. Surprisingly, I got responses from most of the ones I reached out. I also wrote pretty earnestly to them, and while I don't know if that kind of honesty helped me get a meeting, it certainly made me realize I wanted to get some advice and help to continue on the road of becoming a programmer.
Once I started getting some balance and a sense of where I should be, I felt more empowered to program again. Practicing started the positive feedback loop of doing more, which then gave me more confidence. Also, that allowed me to actually answer questions from my students. Helping others and being able to see that what I said/did was useful to them was definitely validating, too.
And with enough work and luck, I managed to get the job I have now at The Practical Dev! It was a great ride overall, and the "end" (if there is one) is certainly worth it. Here's to a bright future for all us non-imposters!
I'm a career switcher. My background is in communication and marketing and I've wrestled with this a LOT. Specifically around figuring out when it was appropriate for me to call myself "technical" after having identified as "non-technical" for most of my career. One of the things I discovered is that it's not a gender issue as I initially thought. It's more about being a high achiever.
I've written about this on other places so you can read my stories in depth.
Wow, you're an excellent writer! Congrats on the upcoming book :) Thank you so much for sharing here.
I had actually already read your post about FreeCodeCamp, so it's really neat to be able to connect a name and a face (per say)! The technical / non-technical "divide" is also so interesting, because I feel like it's a line that's becoming more and more blurred as time goes on. For example, when I was in college, graphic design was pretty much a print-only course, but graphic designers that code are fairly commonplace! It's becoming crucial for everyone to at least speak the technical language now, so I think a lot of people identify with that feeling of being "technical, but not really" and wondering at what point they really qualify as "fully technical."
I'm curious to hear more about your take on it being about high achievement? I think gender (and race, actually) can play a role in increasing impostor syndrome – although I'll absolutely be the first to say it's definitely an issue that can (and does) affect everyone.
PS. Your tattoo is badass.
I've been a software engineer for over 10 years I experience the IS all the time. I mean like on a weekly basis or something. I know it's kind of usual but I don't think that knowing that makes it easier. The fact that we all work in such a fast-paced industry kind of makes that more frequent, because we are faced with new challenges quite frequently: new jobs, new roles, new frameworks, new paradigms, etc. Everything is so new, you don't get to just use what you know very often, you just learn as you work. And here's the deal: it's not just learning that is hard, it's unlearning too.
I find that not being able to unlearn is often what causes me to experience IS: I either have some pre-made idea of how something should work, or how something was built and then I have trouble getting my head around that. Too often I find myself staring at some problem for minutes or sometimes hours trying to understand what's going on and this feeling starts growing inside "why is this so difficult?" or worse "why can't I get this right?" and it's really hard to avoid that, especially when you're working alone (in my case I work remotely, which makes things worse IMO). In my experience, it's also more frequent when you're starting a new job, because it's a time when you have to (un)learn a lot plus there's this pressure of showing what you're worth to a new team/manager /stakeholder.
What I try to do is to ask for help or just share my feelings with my wife. I know that our value as human beings is not defined in any way by our value as professionals (even though there's this social assumption that it is), but it feels better when someone else says that to you. So that's what I do.
I also think that IS gets worse with time for some people. In my case, I have never failed an exam or class, and the more professionally successful I become, the more pressure I feel to not fail and not disappoint the ones around me. So every problem I face kind of turns into this high school exam everyone is expecting me to ace, just like every other I have in the past, even though it's probably something small that would never get you fired.
I began my post collegiate career as an IT Manager at an advertising agency. As someone who earned a B.A. in English but was also fascinated with computers, this was a dream job for me. One of the most helpful pieces of advice I received from my first manager was that this was a three year job, max. Organizing IT and internal tech services needed to be tackled, and after that, my job would not necessarily be needed. I was eager to get started, but after nine months, I found it hard to be the 'my computer is not working, fix it' guy when I was surrounded by extraordinarily talented people who were making this amazing work that people were actually seeing in the outside world. I used work and home study to start learning Objective-C, and eventually entered into a one-week Objective-C Bootcamp course offered by the Big Nerd Ranch. I started production on a client project, my first: an iPad app.
The development of the app really introduced me to the Imposter Syndrome; what was I doing, I was just the IT guy. This was not helped by the year-long production of the app, or the fact that while searching for a file in our file system that I was asked to find, I accidentally found my unused termination paper from the previous summer. After completing the app, I felt accomplished, like I had finally reached my dream job when I was asked to fully transition to a web development position in the agency.
If there is one problem that I've found by finding a position where I'm surrounding by insanely talented and experienced coworkers (who am I kidding, friends), it's that I will never be the most talented person in the room. This can lead to a relapse of Imposter Syndrome. A sometimes daily introspection and evaluation of my progress reminds me that my coworkers have taught me how to be a developer, how and how not to solve problems, that it's OK to not have the best answer, that talking out ideas with someone that understands or has solved a problem before can lead to better answers, and that imposter or not, if I consistently do my best and learn from the mistakes I make I will continue to get better.
I was writing a T4 template generator that spat out code (Code that writes code, what better project for a lazy programmer?) and having a heck of a time writing some bits of the code.
My boss, who had previously walked over, looked at code for half a minute and then told me exactly how to proceed, had never heard of T4 Templating in Visual Studio. In fact, nobody in my office had heard of it.
Up to this point I was seriously questioning how useful I was to the team at large. The friend who had gotten me the job knew the codebase inside and out. I had just told a different project manager that I had no experience with the technology that made up their project and would take a while to get up to speed. The other full time senior developer hired at the same time as me had gotten much further along than I had in his ability to contribute.
Projects were hard and confusing. Our codebase was a 20+ year old monstrosity of very early .NET and very early VB.NET code. Stuff that shouldn't have been in use everywhere, stuff that was basically deprecated was relied upon functionality. In retrospect it's perfectly clear why I struggled coming from a reasonably well maintained codebase and falling headfirst into the mess that is our codebase at my current job.
It was only when I started googling for the bizzare error message I was encountering that I discovered that I was one of maaaybe a handful of people on the internet working with T4 in this way. Here was a feature baked into Visual Studio, and I was practically one of the pioneers figuring out how it worked, and how to leverage it. Turns out one of the other major pioneers of T4 is the Entity Framework team at Microsoft, probably the number 1 project that people know about making use of T4.
I literally had to stop and walk outside for a while when I realized how important my position actually was, and that I had more knowledge about one single subject than anyone in the tri-state area had.
I then submitted my findings in the form of a StackOverflow post, solved my problem, answered my own SO post, and proceeded to complete the project. The code has been in continuous use with very little maintenance for 3 years now. Only one other person in my company has been trained on how it works, by me.
This hasn't stopped the impostor syndrome from kicking in every so often. But it certainly helps when you're explaining some solution you came up with to the technical lead on the project because he isn't familiar with standard design patterns. Or you're teaching language features to someone 10 years your senior. Eventually you find that you can be a positive contribution to your team, and you have to just cling to those moments to keep you level-headed about your abilities.
TL;DR: All the damn time.
Long, this is a confessional:
My undergrad (and only) degree is in chemistry. I pursued it because I love(d) the subject, and then realized that I wasn't willing to invest the upper-level time before moving on. Even worked a summer job on the single coolest project I've ever been on (particle accelerators are f*ing ridiculously cool). Then I left, did some other stuff and then became a (real = professional?) developer about 3 years after college when my company needed someone to step in when they stopped paying their web contractors to do work.
Ever since then, I've a) had to teach myself literally everything that I know about modern development (server, web, etc.; it was all completely new to me, the last thing I wrote before that was QBasic and static HTML) and b) been worried that I'm not good enough to really be doing what I'm doing. I now (different company) have a full time job where I am responsible for internal and public-facing web properties across multiple technologies and disciplines, and I do a bunch of one-off tasks on the side. Mixing and matching and not really doing anything 100% full-time led to me wondering if I'm just a "jack of all trades, master of none".
And lately, the last sentence has been the inverted in meaning. I'm pretty much exactly what it says, a jack of (most) trades and a master of none, but I know what I do and don't know, and I've learned over the years where to find the answers to most things, or to keep looking if a stackoverflow/msdn answer seems wrong (happens a lot). It's taken a while, but I'm dealing with the (frequently intense) feeling of being an impostor, because so many other people in this industry would be "impostors" because they learned something else first.
In many cases, it makes them good and even better. History, music, and english degrees teach context interpretation skills, communication skills, and patience (the power of a single thought vs. the decades sometimes required to realize it) in a far deeper way than any technical discipline does.
Even in the technical world, my degree is in chemistry. I didn't know how to run a dynamic shear rheometer, bending beam rheometer, proctor test, or triaxial shear before I took my last job either, but after years of working with them I know what they are, what they do, and mostly how to use them now. We learn by doing, asking, redoing, and asking again. Development / programming is no different, and I'm at long last coming to terms with that.
Slightly off-topic, I'd like to thank some people who almost certainly don't know that I exist *all twitter (@hacks4pancakes, @malwaretechblog, @viss, @swiftonsecurity, @binitamshah, @nerdpyle, @jessysaurusrex, and @bendhalpern). I'm a terrible lurker, but they've all presented information in a way that I can actually feel comfortable with the the quality (and more importantly improving quality) of my work.
Holy F that feels good.
I think impostor syndrome comes in when we learn enough to realize that there's so much we simply don't know. It's sort of like how teenagers are so sure that they have all the answers, if the grown-ups would listen to them. Revisit those people at 30, and they'll be singing quite a different tune.
Personally, I've dealt with it when I start trying to seriously use a new language, or when I'm given an assignment that is difficult. Early on in my career (maybe 3 years in, so I wasn't a n00b), my supervisor came to me on a Thursday afternoon and said that he'd just come from a meeting, and he volunteered me to fix a bug in this program. The defect had been open for 6 months, and the 20+-year veteran wasn't making headway. He volunteered me - to have it done by Monday (end of day). This program was a language I knew (COBOL!), but it was written in a completely different style than I was used to, and came from a subsystem on which I had literally never worked before.
I didn't have time to think about all that, though - I had a deadline, so I had to use the tools that I had and see where they got me. Armed with a green-bar printout of the code, and the misbehaving report, I set to work. I read over the code Thursday evening, continued tracing it and learning about what it did on Friday, and found where the report was building this particular line. I determined that the number was correct up until they put it in the report. (Say what?) I didn't see what was wrong with it, but I knew where it was wrong, so on Monday, I brought my findings to one of our team leaders. He pointed out the problem (moving PIC 9 to PIC 9 COMP to PIC X, in case anyone is curious), and I made my deadline. (And learned about PIC 9 COMP in the process!)
Interestingly, I did not have the knowledge I needed to solve the problem when I started, but by using the knowledge I did have, I was able to pinpoint where the problem was, which led me to the knowledge I needed to acquire.
The mindset "I may not know, but I'm going to figure it out!" can be the difference between someone who suffers from impostor syndrome sometimes, or who is actually an impostor.
I've experienced imposter syndrome in two main places:
The thing that helped me get over it was something David Foster Wallace said in his "this is water" commencement speech refer to (Video or Transcript if you prefer to read)
In the speech, he talks about how whatever you worship would consume you eventually and as part of an example, he says "Worship your intellect, being seen as smart, you will end up feeling stupid, a fraud, always on the verge of being found out.".
This helped me realize that the issues I've had with imposter syndrome have to do with deeper issues of identity and/or insecurity(this may not apply to everyone).
Since that realization, I've been confronting the core issue "worshipping intellect" and the I'm beginning to handle it better.
Also to back it up, I've been reading up on cognitive science about things such as cognitive load and fixation, and I've been realizing that pretty much everyone has the same mental capabilities, but we live in a society that has turned being mentally accomplished into some sort of superstitious/innate ability, we call people "genius" or "smart" when in reality, they've reaped the word of countless hours of hardwork in the right direction and with the right motivations. Also there's a lot that chance has to do with when it comes to being smart (as an example, think of how many people had bad math-teachers and how that goes on to scar people for the rest of their adulthood).
This is not to say there aren't actual geniuses: people who are genuinely talented, but it's very rare.
So, I guess my advice is this: if you're experiencing imposter syndrome, ask yourself if you worship intellect or if your identity is attached to "being seen as a smart person". and work your way up from there.
Also it helps to realise that life isn't always about you(refer to David's speech for more context) and 90% of the time it's just about solving problems....identity shouldn't play into it, reminding myself about that has really helped me.
Also please watch 'The myth of the genius programmer'
I feel impostor syndrome, now, in trying to land my first junior dev role. When I benchmark my understanding/ability today against that of a year ago I feel great, however, as I submit my ability of today to a competitive labour market I feel like I have zero business in doing so. Sometimes that translates into doubt whether I can improve enough for development in a professional environment.
It's like you're reading my thoughts, Kyle. I have my first big coding interview next week, after spending the last 4 months in a coding bootcamp, a part of me is like "I should just cancel the interview. There is no way I'll get hired." It's straight up my imposter syndrome taking over but the reassuring thing is, everyone, literally everyone, at some point in their life experiences this, no matter what industry or stage of life. The fact that we are aware of it, is the first step to coping with it.
There's such comfort in knowing one's not alone. I'm excited to hear of your upcoming interview, it's also encouraging for me to push on.
Wishing you all the best and thanks for adding light on this issue :)
Thought about writing a reply, but who would want to listen to someone just smart enough to manage? (kidding ... sort of)
I've always thought of myself as having started programming later than I "should" have. It seemed like most of the folks in my class had already had some experience/skill in the area where I'd just switched majors a year in. (there's a story there too, but not one relevant to what you're looking for)
In an odd way, the impostor feeling has gotten worse over the years instead of better... it seems that when you take a bit of impostor syndrome, add a sleep disorder and burnout, and cycle it vigorously viciously for a decade it leaves you in a less-than-desirable place.
Intellectually I know I have accumulated a lot of knowledge and 13 years hard earned experience, that I've architected and grown several large-scale software endeavours, and that I have the skill to pick up whatever language/framework I need to - but there's also that voice (not a literal one :) in the back of my head reminding me of all the things I just don't know, reminding me that I never earned more than an Associates degree and that many just don't care if the level of work is beyond that achievement.
I've started - but never submitted - a few posts to this community about future projects and plans. I would love to share and start ... and haven't because I can't (currently) resolve the disconnect between the intellectual understanding that the projects are of value and interest, and the visceral feeling that I am not nearly as good as I think I am.
I'm writing not because I know how to handle it, or what techniques to use - but because it is also helpful to know that there are others right where you are now and not just those who have already made their way through. I want to share with those who need to know: you - and yes I mean you - are not alone. We will be better than we are now. And who knows. Maybe tomorrow I'll actually hit submit.
Oh man, I feel you SO MUCH on the submitting to the community. I've written one blog post so far, about a non-technical subject. I told myself after submitting that one that I would try and write one every month...needless to say, this is my first dev.to post since then (and it's not even a blog)!
I'll be that corny reply that encourages you to hit the submit button. Someone once told me that no matter how novice you feel you are, there's always someone more novice than you – so even posts that you don't think are of value or interest might well be very useful to someone who hasn't done that thing before.
And thanks for sharing here :)
I got a scholarship to do a PhD at a prestigious UK Uni, and after 12 months I left due to a disagreement with my supervisor. Achieving the scholarship and subsequently leaving made me think I was an impostor in the first place and a failure for leaving which drove my self doubt for years.
I've just flown back from my first conference almost 10 years after I started my scholarship, and even at the start of the conference I felt like I didn't belong or I'd somehow got there by complete fluke, despite co-authoring a paper and presenting it to a room full of people. I met some incredible engineers whilst out there who had the same self doubts and worries about their work and careers. That in itself helped me come to terms with it a small amount. People I respect who are far further on in their careers still get that feeling sometimes and that if you keep trying, it doesn't go away, but it does get easier to reason with yourself and believe in your abilities just a little bit more.
Oh wow, yeah – that's definitely a pretty unique experience. I think conferences definitely bring up the impostor feelings for a lot of people, especially presenting at conferences. Lord knows it does for me. But I think you're right – knowing that everyone else is feeling the same way is powerful knowledge and can really help cut through the impostor stuff.
Congrats on the paper and the presentation! Hope everything went smoothly :)
I've dealt with impostor syndrome all my career, having no diploma and having learned on the job. Now with 20+ years of experience, the diploma doesn't matter anymore, but the feeling is still there.
Not sure this is what you are looking for, but here is what helped me overcome it :
one day, I was thinking about how each job relies on an area of expertise. My job relies on the ability to write good code, maintain complex systems, you know the drill... An HR recruiter job relies on being able to find competent people that are a good fit for the company.
And then, the realization dawned on me : if I'm not a good fit or incompetent, it's the recruiter's or the manager's job to know it. I never lied about who I am or what I can do. If I'm inadequate and I'm still there, it's their fault, not mine. Therefore, since I'm still there, that must mean I'm adequate.
Pretty simplistic, but it helped me tremendously. Now, instead of hesitating before asking for a promotion or a new project, I just go for it. My guts scream that I'm not good enough the whole time. But the people whose job it is to KNOW if I am good enough or not, seem to think I am. So I decided to trust them as much as they trust me. They don't question me on my area of expertise, so I don't question them on theirs.
So my first actual job was a somewhat major job I was given the task of writing some back end framework in C# for a support companies control panel. I found myself working with 6 other developers all of which are very talented in their field and at the time I felt very intimidated by them, they knew a lot more than me. I always feared that no matter what code I wrote or how I designed something they would always end up criticising my work.
After dealing with depression for a long time I started to get depressed because I was always comparing myself against other people and their talents. I felt like I didn't belong in the development industry because my colleagues at the time were way smarter than me.
However I overcame this issue in a few simple steps that I taught myself and some advice from someone I work with (I'm a volunteer at a games network also)
1: You are who you are, mistakes are made for learning
This is a quote from an admin from a network I volunteer at. Since I've been volunteering with them their team of admins a lot of them has supported me and other staff members in our dreams, they all have had dreams of being in an industry where they are now
My inspiration is a little weird. I found inspiration by being around a Minecraft network. Being on this network actually inspired me to learn development, they are taking the game to a whole new level by doing things that aren't meant to be possible in the standard game
One my favourite things about development in general is that it is always about learning no matter what field of work you're in. Myself I find learning new things everyday whether it be a new method to perform a certain task or some new API's/Libraries that can make one thing a whole ton easier.
I often say to my family and friends to "make today the best you can as your future will be brighter if you do." Our future is what will define our life, by doing our best today it will make our future brighter. Yes there will be someday's where we don't perform at our best but we can look back on those days and see what we can do to improve.
I've been in the industry for about 4 years now and every day I remind myself of those four points above for the simple reason of I want to make my future the best it can be, I enjoy learning and one day hope to help others enjoy development as much as I and many others do.
Hearing about Impostor Syndrome is nothing new. It's brought up every day by developers on Twitter.
I've known plenty of people who I thought could handle things that left them in fear.
The other way around, it's not so easy. I look at things I want to do, and I evaluate the opportunity, and if I decide I can't do it, I don't. People who know me sometimes offer encouraging words, but I wish they didn't.
Just because there's a thing called Impostor Syndrome doesn't mean it's the reason you can't do stuff. You could just be inadequate.
Reading Disney-powered "if you can dream it you can do it" tweets, empty encouragement and comments from people saying they know you're good at something without any way of them having that knowledge... is belittling.
Impostor Syndrome is getting talked about more and more now, which is great. However, as I can attest from talking about it at this conference series a few months ago, there are still TONS of folks out there who aren't familiar with it, and who have "Wow, I never knew there was a name for this feeling!" moments when reading / hearing about it for the first time. If one person reads something like this, learns about it, and is able to take the first steps to overcoming it, then it was well worth it being scrolled past by someone who already knew what it was.
I disagree with you that encouraging words are belittling – I think you have to try pretty hard to find negative impact in honestly-meant, positive words. I agree that the "if you can dream it, you can do it" thought isn't realistic, but I wholeheartedly disagree with the thought that anyone is inadequate. I believe that anyone is capable of learning anything if they're willing to apply time, hard work, and effort. They won't be great at first, of course, but anyone CAN learn anything. Impostor Syndrome is often (but not always) the thing stopping people from even being willing to take that first step and try something outside their comfort zone.
Frankly, I think it's a shame that you look at opportunities and judge yourself "inadequate" of rising to them, especially when it sounds like you have friends and family who are actively trying to encourage you. It's difficult for a person to judge their own competence in an unbiased way, and we often judge ourselves lower than is actually accurate. Again, not saying everyone is automatically great at everything they do (literally impossible). But, if you were willing to say yes to things you judge yourself "not good enough" for, I bet you would find yourself more capable than you think. Most developers are excellent problem-solvers and know how to take advantage of their resources. Even in a situation where you might not be the ideal candidate for the job, you could probably still figure it out and succeed, regardless. Putting ourselves in those uncomfortable positions is how we learn and grow.
But, I'm just some stranger on the internet. Take this, or leave it – just my $0.02.
Earlier this year, I gave a talk on how I beat imposter syndrome in my career progression from developer to dev manager. I published my slides and continue to champion the approach for anyone who feels similarly.
Out of high school I had to get a job. Being the wise young man that I was at the time I figured that a waitering job simply won't do. I will become an artist don't you know? So I get a job as junior web designer, with 0 experience, 1.5 skill (some html some css), but the job offered guidance and moving between two cities. And I am basically a pro at making websites didn't you know?
Fast forward 3 years I decide it's time to go to university. Enrolled for fine arts. I did well in my first year but man it was a lot of work. Too much for this 20 year old that basically moved in to the local pub. Inevitably I dropped out. Wen't back to designing websites (pro remember?)
Spent the next 2-3 years doing just that, and getting by. Worked at a tiny dev company for about a year. Pay sucked but it was comfortable and there was nobody to tell me that I am not the best web designer in the world.
Then my mate got a job at a massive local classifieds company. That simply won't do, I MUST be there too. Managed to get a job there and things started to change for me.
1: I realized immediately that I am no longer working for a small fry company. This was big time.
2: I began to realize that I wasn't 20 anymore, that I had to live a real life now. Girlfriend wanted to move in to an apartment together, medical aid, insurance, etc.
3: I began to realize that what I knew about my industry was but a fraction of what there was. My arrogance still wouldn't humble me though, so I just kept on doing what I needed to do to get by. Which somehow I managed.
Then I got asked to join a new agency. My by then wife (also quite surprising) wanted us to move down to Cape Town, and this agency was going there and they would take me with them. That was the moment I got scared. All of a sudden I wasn't around people I knew. I was around real designers with real degrees and many awards behind them. I was with real programmers with real degrees and very serious attitudes. Uhm. Shit.
The agency was a typical digital agency. Fancy pants websites that moved things around and floated other things behind some more things. My 4 years at classifieds company left me with a great understanding of Drupal, excellent html and css. Due to the nature of the site and the constant pressure on performance, things like jquery (lol I know...) was simply out of the question, which was good for me because I couldn't do jquery... Now I had a problem.
What I did have on my side was that I knew css very well, especially responsive design. I never used frameworks like bootstrap or blueprint (back then it was the big thing), so I could do all this myself and understood it. Agency back then did not believe in responsive and that was my big ass contribution to it. That basically saved me from being "Discovered".
I gave up being a designer. I am a good enough designer, but these guys were beyond anything I could ever keep up with, so I began to focus on being a frontend developer solely.
And yet, I would never dare call myself a developer. Every week I am afraid I will get called out (still), and I almost always have a list of small dev companies I am fairly sure will take me on as a backup. And it's entirely irrational. Everybody in my company believes in me, trust my knowledge and advice. I am now the lead frontend dev here, and the ceo always comes to me with near impossible but very fun projects. He always challenges me to go out and make mistakes, because even failed projects have value in knowledge.
It's at this point that I realize that the only thing holding me back is this bizarre mental 'thing'. So now I purposefully do udemy courses on things I don't know yet. Every one I do makes the next one easier because I am actually not a bad developer and the concepts start to make more and more sense. It's sloooowly building up more and more confidence.
I published my first public article on this site last week, even though it wasn't well received. I did it. I write my own open source sass library, publish my own helper jquery scripts to npm and put all of my own boilerplate stuff on github. I disliked the way gulp worked, so I built my own cli app to build things for me, and it works well enough for me.
At some stage I will get over this, but man it's hard work.
I could write a novel.
The first thing I want to state is that for a very long time, I had it bad. We had just combined teams via a corporate merger and we got a guy who seemed to just know every common language out there and was just stupid proficient in all of them.
And as someone who came up through the design world, I'm already easily pushed into the mindset of "Why don't you just let the adults work and go play Mario Kart?" This introduction via his past work really didn't help. And keep in mind that I've been doing this since just before jQuery was even born. That simple fact should extinguish irrational feelings like this, but it doesn't.
Anyway: this perpetual, weapons-grade inferiority complex was in my head for awhile. And by that I mean "well over a year, right up until I quit that job for unrelated, personal reasons." I only really shook it when I started interviewing again. I have separate thoughts on the whole engineering interview process these days - I'll save that for a proper post - but suffice it to say, walking away from an environment that was unintentionally making me feel so ill-equipped was the smartest thing I could've done.
All of this has a compound affect of convincing myself that maybe I'm not a drooling moron after all. :)
There will always be things that make me pause. DS&A seems to perpetually be my weak area; one day, before the heat death of the universe, I'll figure out exactly what voodoo webpack is doing that messes with otherwise "normal" variable and object scoping. But one of the most important things I realized through the past several weeks of funemployment is that no one knows everything; it's impossible to know everything. The good coders and the bad coders are separated simply by figuring out which ones are willing to learn something new or learn how to do something better.
Just a quick note to say I've been in this field for over 30 years, like some others, from being a hobby to getting consulting jobs, to FINALLY getting CS degrees. I STILL feel impostor syndrome, especially with the pace of changes in new languages and frameworks and management styles (herding cats). The most money I ever made in my life made me feel inadequate at first, expecting high expectations, but it turned out to be just the opposite with me being a guru of my specific skill. So, if you have the drive and passion, you are probably at the level of many so called experts. I know it's hard, but you have to "blow your horn" with confidence and honesty. Good luck!
I did front-end dev for a company for just over 9 1/2 years, it was my first job out of university so came into it feeling incredibly self-conscious anyway. I guess I struggled with that for the best part of 7 years, which combined with feeling like an impostor was great fun. I'd managed to begin to ignore feelings of inadequacy by about year 8, despite moving from Junior to Senior, so using any tangible evidence should have got away from that way of thinking a long time ago.
Cut to today - I was made redundant from that company after 9 1/2 years in March and had to find something new. I'd been working in niche software and found myself with no "current" knowledge and a whole bunch of industry specific know-how, which in the job market seemed incredibly useless.
After what felt like an eternity of interviews, and re-learning a lot of the academic side of programming (as that was what the crux of almost all interviews was) I was finally offered a new role somewhere else. Ironically, my superior here already noticed I was suffering from impostor syndrome within a week and oddly enough embracing it has made it a whole lot easier to deal with.
I am, actually, an impostor, having no qualifications at all in computers. I have to beg friends with PhD's to explain complicated papers to me, since I literally don't understand the notation, even. I am - sort of - comfortable in my impostor-ness, though. I know I'm good at some stuff, and bad at other stuff. I know that the Dunning-Kruger effect works both ways, and I need to keep a weather eye on ensuring I know when I don't know something, as well as knowing when I really do. Doesn't stop me feeling like a total fake sometimes. But I am one, at least in part, so I don't feel that bad about it.
But since I haven't got any great stories, I'll instead tell you this one, because it's the best story about impostor syndrome ever, and it is actually true.
So this guy's gone to a conference, filled with the great and good. There's dozens of world-class scientists, artists, engineers, and so on - people who have actually done something - and he feels totally out of place. On the second or third night, there's a social evening, and he's hanging out near the back of the room, and gets talking to an older man he finds himself next to. They happen to share a first name, so that provides the ice-breaker, and they chat about the event they've found themselves in.
"I just look at all these people," says the elderly gentleman, "and I think, what the heck am I doing here? I just went where I was sent."
And the guy - Neil Gaiman - replies to him, "Yes, but you were the first man on the moon. I think that counts for something."
Picture of Neil Armstrong, Neal Stephenson, and Neil Gaiman at said gathering: journal.neilgaiman.com/2012/08/nei...
Hello Kathryn, this is a great topic. I wrote a blog post on Combating Impostor Syndrome a while back. Perhaps it will give you some ideas.
You can find it here: kenwalger.com/blog/career/combatin...
I have a diploma in computer information systems, a bachelors degree in Computer Science (graduated with distinction!), a Masters degree in Computer Science, and have been writing code in one form or another for about 25 years, have written code in C, C++, Java, Python, SML, Perl, Python, and probably a bunch of others I've forgotten, have worked at multiple tech companies from start ups to well-established tech firms.
And I still literally every single day wonder if I'm any good at being a developer.
So it's not just juniors that feel this way....
Started my current job (.net webservices) from a longtime desktop/C++ background. I'd never seen a CI/CD pipeline before, never worked on an ASP.NET project or heard of a connection pool, never heard of dependency injection until someone asked about it in an interview, the list goes on and on. On top of all that, the company handles a lot of credit card transactions, so we get regularly audited for compliance with security standards (which I'd also never engaged with).
Did I mention I was coming off of eight months of unemployment and a failed interview at Google?
Every morning I came to work, for the first three months, I was certain they'd find me out and fire me. Two years later I'm a team lead, so I guess I did okay. :)
I'm a Psychology graduate and I'm currently a software engineer. I used to question whether I'm good enough to be in this position as I'm a graduate of a different degree and I work with professionals who are CS graduates and have certifications. There used to be times when impostor syndrome hits so hard it becomes mildly depressing. I still experience it at times.
One of the things that helped me push past this syndrome is recognizing I have it. Just being aware of it means you can do something about it. You can try to deal with the root cause or the symptoms themselves and see which one works for you.
Another is reading the testimonies of accomplished developers about their experiences about impostor syndrome. I read somewhere that one of the developers of Twitter Bootstrap didn't know what he was doing in the beginning. It was pretty uplifting to know that there are others like me and those others are sometimes actually pretty accomplished.
I think the better you get at your craft, the more you realize there is so much you don't know. So it's a good step to look back to see what you've done so far -- how far you've come. After that, look ahead with excitement towards the things you would like to accomplish. :D
There is actually a positive aspect regarding the impostor syndrome, which is a motivational drive to become better in order to get rid of this negative feeling.
I know few programmers who are real impostors and who works for way too much money, just because they can sell better the two or three things they know. They should be infected with a mutated form of the impostor syndrome.
But these impostors are only the exception. Most programmers works hard for their money and their skills are exceptional. Really, if you think about what a programmer needs to know today, its overwhelming. Try to write down your skills, your projects you worked at and see how many pages it will fill. Its a very demanding job and not easy to keep the pace with.
I come from the CS-background-world. I've always liked CS, programming and disassembling things. I enjoy a lot solving people's problems with code.
I guess the worst is the assumptions I have of other's expectations. I love to solve problems, what if I cannot solve this problem? What If I don't have an answer? Am I stupid if I don't know this or that? This pushed me to do things (or go in directions) I didn't want to in fear I'll appear as a fraud.
I love to have my ideas and evolve them with team input. So in the end I might have created something, but I don't feel it is my achievement at all.
This makes me being very bad at marketing myself. Or when I do it I have to put A LOT of effort and somehow I feel guilty.
I feel sick when I see people marketing themselves while I know they're or lying or exaggerating. I hate to put myself in the same level in order to get what I believe (I can be wrong of course) is right.
This last point makes things even worse when I see someone who doesn't have the same level of skills being able to market themselves at my level. I must be stupid or something. I don't know things so well as I expected.
Of course nobody knows everything. Feedback is the only way to improve, but the line is blurred in those cases: Is someone pointing out my mistakes or are they just boasting themselves while stepping over me?
The solution for me is to avoid comparisons and be myself, do my things, enjoy my hobbies. Only in the edge case I have to work hand by hand with one of the "good marketeers" I will say something, although it will be a very loaded conversation.
You don't need to learn X or Y to be the best... enjoying what you do many times is enough to be really good at it. You can polish the details later.
If I don't know something: I don't know it. This also means that I can schedule my learning, instead of running to learn. It also helps to understand if the other side is giving you feedback or boasting themselves. Someone stepping over you won't wait for you, someone working with you will wait till you get to know what they're talking about.
Almost didn't answer because I'm not sure I qualify to be an imposter! But I'm starting to see the industry as something that
Drastically enables impostor syndrome. Every new technology is a change to miss out! Every puzzle is struggle with is another proof I can't think fast enough, learn well enough, or code eloquently enough to keep up with my (increasingly younger) peers.
I quit university at some point without finishing my masters degree. So I was looking for a job. I found some and sent out a couple of applications and got invited to a trial day. The task was to write an interpreter for some self defined tags (them defined it, not me) for a html enrichment. So basically to write a compiler. That was one of the last things I did in university so I wrote that whole thing (lexer, parser, syntax tree, code generator) within six hours. I was hired and everybody seemed to have high expectations of me. There was this e-commerce platform we are using and I had never heard of it and had to learn how it worked and how I could use it. So I didn't know where the expectations where coming from. I was like an apprentice.
To make things 'worse' I was one of two people who had already used git in project and they recently switched, so everybody was coming with questions to me because the other person was stuck in meetings more often than not.
Suddenly (after 6 weeks or so) I was in meetings to decide our git usage strategy together with the teamleads and the CTO...
I was just out of university and this was my first job. I had so much to learn and was already helping forming decisions for processes that are still that way 3 years later.
Also 6 months in I was invited to be a silent listener at phone interviews and also to give my opinion on a person having the trial day.
I kind of caught up to my reputation. I am still the guy everyone asks if they have an issue with git, but I realized, that is ok to say "that is a very specific question. Let me think and google a little bit and I come back to you". Usually that works quite well. Sometimes I just give a hint on what to type into google.
I learned a lot in the beginning about the framework we are using and now know my way around it and can answer questions about it.
I went to seminars about clean code and tdd, so I am one of the people who is driving that topic.
If somebody wants advice to overcome this feeling of high expectations vs. feeling like a noob, here are my five cents: It is ok to don't know shit about specific products/platforms/frameworks. Keep in mind what you know. You know your tools, your programming language and your algorithms. Eventually you self perception will catch up with the expectations (in your head).
I'm pretty new to code after a varied career, ranging from parcel courier to Master's degree in English. I completed a coding bootcamp earlier this year (CodeClan in Edinburgh, Scotland) and learned very quickly in a supportive and nurturing environment. I've since landed a freelance gig, building a cross platform app; the company I'm dealing with have been great, allowing me to use a desk in the office and even supplying me with a MacBook. As much as I love the environment, the scale of the job has really begun to loom over me - I'm working completely autonomously, and in a framework I've never used before. I'm getting through it by sticking to the principles I was taught about TDD/BDD, simple code, and a clean, consistent workflow. There's also one other dev here with 15+ years of experience who I can tap up for advice when required.
Impostor syndrome kicks in pretty strongly sometimes, especially when the giddy high of hitting a milestone subsides, and the road to the next one stretches out long and hazy in front of me. I'm just taking small, sure steps, and documenting everything. The developer I'll evolve into in the future will, I'm sure, be thankful!
NB: Did I mention that my project manager is my Wife?
I am not 100% sure if I am an Impostor or just suffer from Impostor Syndrome.
I had a buddy of mine helped me to get my foot in the door at my 1st really corp job while I was finishing up college to getting my BS in CS (which in retrospect feel did not give me a whole lot of anything to help me with in the CS world, learned everything I know in the field/on my own). I started in a reconciliation department under the impression that I knew VBA, which I didn't...
I didn't even know where in excel to start coding. They guy that helped me get the job some what mentored me and show me some basics, with that a google I was good to go and I would say at some point surpassed him. Then I moved on to using MS Access as well. Spent about 10 years of my life doing that until I was laid off...
Which then I found a job where they needed a VBA developer to help rewrite/clean up/maintain/develop new tools with Excel/Access. Then with in the 1st month they started working on a project to migrate all computers from XP to Win 7, which was being help up because of an app written in 1999 would not run on 7 machines. So with zero knowledge of building a proper program I set forth and some how pulled it out of my ass in about a week. This caused me to make the jump from VBA to VB.net, wish I would have know how similar they where to make the jump much sooner.
Since starting that job I have been moving Access Databases to SQL server, writing full on Apps, ASP.Net web pages and learned C# and much more in to OOP then I was.
That was about 3 years ago, still feel like I am faking it to make it. I have always been the lone wolf programmer, as the previous job it was do to fact that we where going around IT for the quick and dirty fixes, and currently is cause I am the sole programmer. It has been hard at time not being able to have someone to have discussions with on what I am working on and if I am handling it the best way.
Not sure if I am truly an Impostor or Not? But I have always been of the school if I don't know how to do it I will find away to make it happen.
I started working WITH tech over 25 years ago, but began DOING IT PROFESSIONALLY in 1999. I've been doing this almost 2 decades, yet I still feel like I'm a fake. I'm another career switcher. I started as an airline pilot and accidentally became a coder. Your question has been bouncing around in my head for a few months, but you took the extra step of actually submitting that topic. I was too chicken to do that. Impostor Syndrome, you see. But your question did inspire me to FINALLY blog about the things bouncing in my head. I don't like giving a shameless plug, but rather than copy/pasting here, feel free to use my story. codefumonkey.blogspot.com/2017/06/
I'm a professional developer for over 10 years now and was doing private dev stuff since 2000. I studied computer science (bachelor and master) and still often think I'm an idiot.
I have some ideas why this could be.
First, Twitter, haha. I follow some pretty highly skilled developers and always have the feeling I'm surrounded by brilliant minds, which makes me feel dumb. On the other hand probably <100 of the people I follow are such pros, so it's a really distorted feeling.
Second, as a dev I do new stuff all the time. Yes, I don't do one React-Native project here and then switch to HFT and then build a filesystem, but still, things are changing rather fast and every project brings its own problems to solve. Yesterday I told someone what a monad is, tomorrow I'm going crazy because the React-Native update doesn't work. A bit like "I got back from my space flight... so how does this microwave works... ah guess its bread today!"
Also, I have the feeling I'm not a fast learner. I learned to swim with 9 and riding a bike with 13, I had to do the 4th grade two times. I studied CS, but it took me much longer than the average student and I had to wait about 3 years until I got a place at an university, because my grades were so bad. Now I work as an mobile developer, this job doesn't even need a CS degree. So every time I learn something new I feel like it's some outdated crap everyone knew years before me.
Every time I start a new job I feel like I'm probably not qualified, but I'm sort of used to it by now and I can just keep telling myself "you'll do fine" regardless of how I really feel like it.
How I tend see it is that whenever I do start a new job I am "not qualified", as I don't know the project, or any of the specifics in it, but I can grow into it. New tech involved? No problem, I'll just have to learn it. New industry I don't know anything about? No problem, I'll ask, Google, and figure it out. New people, new expectations of me? It happens, I'll survive.
This being said, I've been a CTO for several years in a couple of companies now, prior to that I've been in lead and senior roles for a long time, and I am definitely competent to do the things that I do.
I think being honest with yourself and your colleagues is going to help a lot. Don't claim to know technologies or other things you don't know, openly say you will need to learn about things you don't know. I've gotten a job saying "I don't really know any of the technologies you use, but I can't imagine it to be a big deal for me to learn them" in the interview, and I did do very well at it.
I have no formal education in CS, but that really has not been any kind of a hindrance after I landed my first job. People coming straight out of school to work in the field are incredibly unqualified anyway, as schools do a terrible job at teaching practical skills in the field. I've seen people come from schools that seemed to focus on far future practically sci-fi tech theory (quantum cryptography) and useless things like writing assembler code on paper, instead of writing good quality code and using good collaboration tools. Practically every single person I've met who learned programming etc. on their own has ended up being a lot better at it than people who learn it at a school.
As a junior dev I feel like they're gonna fire me any second because I do this and that wrong, and my code is buggy, and I spent too much time on lunch (15 minutes). Didn't learn to cope with that yet.
wow! didnt know this was actually a thing! Im working as a junior dev at a media company. Im scared of changing companies because i feel this way all the time.
I graduated with an AB in English. What do you do with a degree in English? Well, for several years after graduation I worked as an editor or proofreader for a few companies, sometimes freelancing. My first dev job came when a company offered a bootcamp for career shifters. I took that opportunity. I made it through bootcamp not without pain and sleepness nights trying to figure things out, OOP and other stuff. I did fine, I passed every test and evaluation for regularization, but still I quit. Now I know that must have been this thing called impostor syndrome. I just felt so inadequate. I felt that I could never be left alone because I might break something in the codebase. But I stood up where I fell. I took a six-month app dev course, finished, and now found a dev job. I must admit I still feel this syndrome attack sometimes, but my motto now has been "Fake it til you become it." :) It wows technical people, though, when they learn about my academic and work background.
Oh you got me.
I don't have CS education, I'm psychologist. I finished coding bootcamp, I work as developer ever since. After 2.5 years I'm a teamlead, but I struggle every day. I feel inferior to my colleagues with cs education, to 'more hardworking' mates - even if I know how much I work after hours. I know where my weaknesses are and I constantly wait for the moment when others will realise it too... :(
Hi Kathryn. I recently wrote a blog post about imposter syndrome: dev.to/carlhembrough/programming-u...
I'm not sure whether you've seen this talk: youtube.com/watch?v=1i8ylq4j_EY. It deals with Imposter Syndrome, covers some of the harsh truths. So relatable! 👌🏻
A few months ago I put together a little app based around the spirit of this thread!
It'd be great if folks in this thread added their experiences there, too :)
This is the greatest thing ever. I have my first coding interview coming up and I'm struggling with overwhelming imposter syndrome. Thank you for creating this!!
I just got accepted to speak at a conference and am afraid I'm going to get an "oops we made a mistake" email while waiting for the schedule to be published.
I also did not publicly share that my proposal had been accepted until it was on the conference website. Definitely feeling that one.
Haha. I've been there.
So, I wrote this earlier this year: sitepoint.com/to-hell-with-imposte... and I've been programming for decades.
I mean, sure, I have impostor syndrome, but so did the guy whose identity I stole to get this job.
On a more serious note, impostor syndrome can be a manifestation of social anxiety -- "What if they're only pretending they like me?" If you get that feeling in other areas of your life and not just your career, it may be helpful to consult your doctor.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.