DEV Community

Cover image for I'm An Impostor

I'm An Impostor

Adam Nathaniel Davis on April 15, 2021

I wanted to write this article because I'm routinely frustrated by (what I perceive to be) the continual arrogance of "tech types" and "fanboys" wh...
Collapse
 
ashleykolodziej profile image
Ashley Kolodziej • Edited

I wouldn’t be so quick to say doubt is the only cause of these feelings. The idea behind being an “imposter” is that you’re playing a role you don’t believe you fit in. This could be from a knowledge perspective, but it could also be because you look, think, act, or come from a different background than the people around you and your role models. Or, maybe your expertise is not as “highly valued” as others. For example, my expertise is in frontend development - HTML, CSS, JavaScript - but I still hesitate to own that knowledge and call myself a frontend developer because my background is in design, and the parts of HTML, CSS, and JavaScript I am best at reflect that.

I won’t lie, I even feel out of my depth posting here. My peers at my employment level are all male, I’ve never had a female mentor or manager, and I grew up without internet access at home, so my story of growing up in web development is not the same as most others my age. I relate to a lot of this article, but I don’t think it’s because I doubt myself. I think it’s because others, whether they realize it or not, inherently doubt me, and when you live in that world, it wears you down as you simultaneously fight those assumptions while trying not to internalize them.

I just read this great article (hbr.org/2021/02/stop-telling-women...) about how imposter syndrome can be a harmful term, because it places blame on the victim for feeling those doubts, instead of addressing where the doubt comes from (unhealthy cultures, biases, etc). Over the past few years, I think we’ve done a good job bringing this experience to light and normalizing talking about the fact that it is happening. It sounds like we’re now in a good spot to move on from that and start pushing to examine why it happens in the first place, so we can reduce it.

Also, RegEx is the actual worst. I’m convinced it’s impossible to learn. I can get a handle on just about anything except RegEx.

Collapse
 
mungojam profile image
Mark Adamson

On regex, if you have got the basic concept, check out regex101.com. I use it every time now.

It will break down any regex pattern into its parts and explain each bit. It also has a nice interface for testing them

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

I think it’s because others, whether they realize it or not, inherently doubt me

It's completely normal to doubt people until they somehow prove what they're capable of. Picking up on this doubt and internalising it might just be a bit of a self-fulfilling prophecy: you feel like everyone doubts you, so you become very careful in expressing your opinion, so the others never get to see what you're actually capable of.

Maybe this is a matter of some internalised misconceptions about what a programmer should and shouldn't be like, or maybe it's simply a matter of personality. Either way, showing others what you're good at is the only way for them to know, and to break out of the loop.

Collapse
 
kwstannard profile image
Kelly Stannard

You may enjoy this thing I wrote.

dev.to/kwstannard/why-not-regexp-563

Collapse
 
dvddpl profile image
Davide de Paolis

when 5 years ago i first read about Imposter Syndrom, i was blown away with a warming feeling of relief. now whenever i encounter someone mentioning his Imposter syndrome I ... want to puke..

as you said. it just a fad, it is just a nice wrapping of the concepts of doubts.
imposter syndrom is, well, just being aware of your shortcomings and being humble.
it's a new fancy way of the Socratic paradox "I know i know nothing"

Collapse
 
mungojam profile image
Mark Adamson

I'm a bit confused by the reference to it as a fad. I've heard and used it for around 10 years I think. Scott Hanselmans blogged about it around that time.

Thread Thread
 
dvddpl profile image
Davide de Paolis

It's not that the syndrome is a fad. The fact that everybody now has it, and has to Blog about it is. ( not referring to this post of course!).
BTW I found out of the Syndrome exactly from Scott's post, and it blew my mind.

Collapse
 
christiankozalla profile image
Christian Kozalla

Your articles are most entertaining!

My 2cents on the topic: I never really knew what this "imposter" thing was all about, or why it is even a thing.

Sure, I wouldn't go through StackOverflow blindly copy&pasting everything that remotely seems to solve my problem.

But I can't feel bad for actually solving the problem after googling and reading through some docs / blog posts / tutorials / other examples.. 👍

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Absolutely. I feel like there's this urban legend about this army of crappy coders who blindly copy-n-paste everything out of StackOverflow without understanding how any of it actually works. In reality, I've rarely witnessed this from any coder - even the most junior ones. Sure, they may search StackOverflow (we all do), but it' almost always serves as a catalyst to better understand the actual solutions that are being suggested.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Not so much an urban legend as much more a joke that spread too much among beginners. In itself it's just self-deprecating humour among programmer. We're all aware that we have to rely on online help a lot, so it makes sense to joke about it.

In itself, this might even be a good thing: Experienced developers continuously joking about how much we all rely on looking things up sends a strong signal to beginners that this isn't a bad thing. As much as I hate the joke for how over-used it is, the message it sends, although very hyperbolic, isn't a bad one: "None of us really has a clue, so don't worry if you need to look something up".

Collapse
 
siddharthshyniben profile image
Siddharth

Yep. We mostly copy logic, not code.

Collapse
 
metalmikester profile image
Michel Renaud • Edited

I think the first time I heard of "imposter syndrome" was here on Dev.to, and I've been a member for less than two years. I've been frequenting online forums since 1988.

I agree with your use of "doubt". I've been doing this for more than 30 years and still doubt myself sometimes (it's hard to keep up in this fascinating but ever-changing field; how many new versions of this or that or new frameworks came out while I was typing this post?), but "imposter" is certainly not a word that ever came to mind.

Every single week I have this, "argh... I don't think I can solve this one" moment. Well, the number of times that was the case I can probably count on my fingers. As you said, shake it off and go get it done.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

The term does seem to have come into fashion only recently. And it's a stupid - and potentially harmful - term. Thank you for adding your perspective!

Thread Thread
 
tomstreeter profile image
Tom Streeter • Edited

A 1978 academic study of self doubt among 150 high-achieving women.

It’s not new. It’s not trendy. It’s not a clinical term,. It is, however, often how people react to working in environments where people are willing to spout off on things they don’t understand .

Thread Thread
 
steve50244 profile image
Steve Harris

It may not be new, but it has become trendy. everywhere I have looked the past few months I have seen "imposter syndrome"

Collapse
 
antmik profile image
Anton

Adam,

Each of your articles is a great pleasure to read. You are one of the first who talks about struggles of self taught programmers.
Major part are trying to hide the fact they don't have a degree.

Regarding the interviews and technical tests you are absolutely right. Usually they are so much disconnected with the real work.

However usually this is the way companies hire and test candidates. May I ask what is your strategy to overcome those barriers? Do you search only the specific type companies or you have a way to hack this "matrix"?

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

Sorry that I'm replying to this so late. Somehow I missed this last year...

As to your (awesome, very thoughtful) questions, I can only offer this: The best "strategy" is to try, whenever possible, to only "search" from a position of strength. Meaning, don't start that Next Great Job Search on the day that you quit (or are fired!) from your current job. When you really need a new job, it transfers any "power" you might've had to your next (potential) employer.

I'm not ignorant to the challenges we can all face when we really need a job. If you find yourself in a real "bind", it can be nearly impossible to assert any kinda control over the situation. You're at their mercy.

During those few times when I've been truly "between gigs", I'll freely admit that I frequently end up jumping through the same hoops that I rail against. But when I have a job? And I might like a different job? A "different" job? Well... that makes things sooooooo much easier. Cuz when I have a decent job (even one that I'd possibly like to get out of), it becomes infinitely easier to 1) recognize the "hoops" for what they are, and then 2) tell them, confidently, that "No, I won't be doing that."

Do I miss out on some potential opportunities this way? Of course I do. But I can sleep hella-well at night knowing that those so-called opportunities are prob not any opportunities that I really wanted that badly anyway.

Collapse
 
antmik profile image
Anton

Thank for the detailed response.

After spending a lot of my personal time and energy on recruitment processes I had to review my strategy as well.

Now I do tech challenge only if it will be useful for writing an article afterwards. It changed my perception. In any case was I accepted or rejected this way I am not wasting my time.

In addition I started to reject any long recruitment processes, because it's really a waste of time.

Thread Thread
 
bytebodger profile image
Adam Nathaniel Davis

Sooooo well said!

Collapse
 
pelayomendez profile image
Pelayo Méndez

I agree 200% with all your conclusions. I specially don't understand the timed exercises. Work interviews had changed dramatically in the last 20 years. They fell like exams. I bet you that many developers that have been successfully performing their job for years in the same company, would fail in an interview for that same position today.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

YES! I know this to be true. During in-person interviews, I've seen one of our guys absolutely stump some candidate on the whiteboard with a very tough question. Then I've posed that exact same question to our existing employees who weren't in the room, and watched as they struggled to answer it. And the effect is only magnified when you throw that ominous countdown timer into the whole equation.

Collapse
 
d4vev profile image
David West

I bet you that many developers that have been successfully performing their job for years in the same company, would fail in an interview for that same position today.

I think this is where someone would chime in with a comment about the time the developer of Homebrew applied and got rejected for a job at Google.

Collapse
 
panditapan profile image
Pandita

aaaah you pretty much explained how I feel about being an imposter! the only difference is that I do have a degree in computer engineering but honestly? I was a little more worried in getting a boyfriend (whyyyy????) than really paying attention to class so, while I studied, passed tests, earned scholarships and even an honorable mention in my thesis... I don't remember most of the theoretical concepts I studied hahaha I'm always looking things up because I have a bad memory for these things! XD so yeah, even us with degrees have to be a bit of an impostor sometimes!

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I have friend who decided, years after he was already an established programmer, that he should get his CS degree. And he did. And he's always told me that it was a complete waste of time and money. I think it's one of the few things he's done in his career that he'd truly take back if he could.

Not that there's anything wrong with a CS degree, of course. (Or any other degree, for that matter.) But he got absolutely no value from it. And it cost him a great deal in time-&-money.

Collapse
 
panditapan profile image
Pandita

aaah well I think it's because he was already an established programmer! I sorta realized mid-way through my studies that what they were doing (at least in my uni) was training my mind to solve problems in an "engineering" sorta way? I can't really explain it! It's like they already have the framework to help you get there, though I think symbolic logic is the main class that helped me understand programming in the end xD

But, if you already know how to solve problems because you're self taught, then you're not going to get value from the classes itself! you might get a bit from the connections and networking but still, you can do that much easily now with social media, conferences and such.

I did have friends in uni who did the same as your friend and honestly, they too where like "I know this already aaagh" but they found value on Fridays when the class would go out and drink hahahaha

There's also that this was in a Venezuelan university that was very acce$$ible at the time. I think I paid very little for my degree compared to other universities, I got a scholarship for 80% or a bit less on my last three semesters (if you were the top student of the semester the next one is free! met a girl who only paid for her first semester only, afterwards all free) so for these friends, they didn't really see it as a money investment, rather an investment that helped open up opportunities for them in the market since Venezuela value degrees a lot. I think that nowadays the uni is a lot more expensive due to situations.

But yeah, I don't regret getting my degree because it helped me be the programmer I currently am, but I also understand that it's not life changing for those who are already established programmers, unless you studied in a very prestigious university (not my case) :3

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

I "wasted" three years of my life at university without getting a degree. I'm still disappointed that I could count on one hand the useful things I learned from university, yet figured out countless things on my own that have ended up being much more useful. During those years I learned to use Git, to set up a linux server, a whole lot of programming concepts, how the internet works (I'm basicalle "the CSS guy" at my company now, whenever some web-related task comes up every few months), and the list goes on and on and on. All of this from home and on my own.

Every now and then I wonder if I should get a proper degree just to have that piece of paper that says "This guy's cool", but every time I quickly conclude that, even though to others a degree might lend me more credibility, to me it would be worth its weight in toilet paper.

I wouldn't discourage anybody from getting a degree if that's what they want to do, but I just refuse to treat anybody who has one as inherently more competent.

Collapse
 
maco profile image
Mackenzie • Edited

I think of doubt as a normal thing everyone experiences and imposter syndrome as a thing that comes from having others belittle your skills over and over. The term was created specifically to talk about women's experiences because it's a product of misogyny.

Shorthand:

  • If it arises from entirely internal factors, it's just plain old doubt.
  • If it's based on external factors (eg other people always wanting a second opinion because they don't trust your opinions), it's impostor syndrome.
Collapse
 
cariehl profile image
Cooper Riehl

Great article, and thank you for sharing. I got a C.S. degree from a fantastic university, and I have the exact same thoughts as you on some of this stuff.

I took multiple classes on algorithmic theory and complexity, where we spent hours talking about Big-O, Big-Theta and Big-Something-Else-I-Don't-Remember. All I remember from those classes is how much I hated them, and how easy it was to just Google the information I needed.

The only time I've ever had to figure out the Big-O of a function since then, is in interviews. And as soon as an interviewer starts asking me about Big-O, I start to wonder if they even understand why they're asking about it, or if they just saw it on a list of "top 20 programming interview questions".

Anyway, ♥️s to you for having the self-awareness to share this article. The more I read about other people struggling with imposter syndrome, the more confident I feel in my own abilities, and the more comfortable I feel with the software ecosystem in general.

Collapse
 
webketje profile image
webketje • Edited

@bytebodger this article resonates a lot with me, especially the parts on timed exercises, nomenclature mismatches and dev-ops. In my exp. being allowed to focus on code instead of "meta-code" (pipelines, routing etc.) has become a luxury though, and I reluctantly dived into a lot of it because the industry expects non-junior devs to be full-stack at least to some extent.

From the part on "Nomenclature mismatches", is it safe to suppose that you are in big part self-taught? I've witnessed such between uni grads & self-taught (=me) devs. The former learn the concepts upfront, the latter by encountering them in existing code.
I find that React is also responsible for a lot of 'nomenclature confusion', as the React team loves to re-appropriate/ repurpose patterns and name them differently, which tricks devs into believing it is something unique to React. I wonder how many devs are aware that HOC's are higher order funcs, and "render props" are just callbacks that happen to return DOM elements. I don't know who chose to call it Hooks in React, but it doesn't conform to what is understood under Hooking in programming at all.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

The former learn the concepts upfront, the latter by encountering them in existing code.

Bingo. Whenever I'm introduced to a new concept in coding, I'm inevitably confronted with some sort of online documentation. And that's great. So I read through it for about... 30 minutes. That's usually sufficient to give me a (very high level) understanding of what the concept does. But if I'm to truly learn the concept, I need to quickly transition into trying to play with it. I gotta install the package or try to use it in some existing code. I have to find a way to make it useful. Because, if I don't, it just sits in my brain as some sort of esoteric, abstract concept.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

the React team loves to re-appropriate/ repurpose patterns and name them differently

This isn't a unique problem to react though; a similar thing is the concept of "tree shaking", and how it tricks many beginners into thinking this is some super-high-tech thing that's unique to javascript, when in reality, dead code elimination has been around since forever.

Everywhere you look, developers make up new names for known tools or use known names for different tools. Sometimes they even do both at the same time (aka. they get their terminology wrong).

This definitely doesn't make IT easier to navigate for newcomers and self-taught people, but to a large extent we could counteract it by spending a bit more time clarifying our use of terminology when we explain concepts.

Also, obligatory: "a monad is a monoid in the category of endofunctors, what's the problem?"

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

In my exp. being allowed to focus on code instead of "meta-code" (pipelines, routing etc.) has become a luxury though, and I reluctantly dived into a lot of it because the industry expects non-junior devs to be full-stack at least to some extent.

That's an interesting point. I've actually never understood "full-stack" to necessarily include devops-kinda stuff. Like... I can do frontend (many different JS frameworks) and backend scripting (Node, PHP, VB.NET, etc.), and compiled languages (Java & C#), and I'm really solid with all flavors of SQL. And I've always considered this to be "full-stack".

But I do agree that it can be a luxury to only focus on code. At a certain point, if you're really an experienced dev, it's inevitable that someone's gonna want you to set up these pipelines, or that monitoring package, or this server, or that AWS configuration. And... I can do that. And sometimes I do , indeed, do that. I just... don't like it much. And I'm not terribly efficient at it, because I don't have much interest in learning all the crazy details of each environment and their various tools.

For example, I have a friend who's, like, Captain Docker (nee Kubernetes Man). I have Docker running. And I can spin up a new container and configure it. But you can really get into the weeds on that stuff. And I really hate when I get sucked into the weeds on that stuff.

Collapse
 
webketje profile image
webketje

I think the definition of full-stack is relative to being able to set up an app/ tool/ site from A-Z (or from D-Z, depending on what responsibilities the team has). So in a team that manages a Drupal website (front-and backend) on their server but whose connection is proxied through a Varnish server and connects to an externally managed DB, full-stack would be: Linux, Apache, deploy pipelines, PHP, Drupal & front-end.

In a team that manages a bigger-scale Java-backend SaaS, the "full-stack" might include: Linux, ansible, server monitoring tools, database & cache mgmt, and ofc front-end. I know it is common for these responsibilities to be split up at larger scale, but in my current project for example, I am expected to work on all of: frontend (React, SCSS, storybook), Git pipelines, NPM mgmt, Linux (bash, deploys, processes), ansible, Redis, Node (express). It doesn't include database but I would still consider it full-stack.

Thread Thread
 
bytebodger profile image
Adam Nathaniel Davis

Yeah, I don't disagree with you, although I think the "definition" is a bit fluid from one job, and one environment, to another. The first time I ever heard the word "stack" used in a tech context was with regard to the LAMP "stack". I'm not a Linux or Apache guru, but I'm definitely comfortable grepping around in Linux and I've done a lot with regard to Apache installations and configurations. And I've, for many years, been extremely comfortable with PHP and MySQL. So, from my perspective, I'm a dev who's very competent in that particular "full stack". I wouldn't tell someone with strong experience in each of the LAMP components that they're not "full stack" just because they don't have, say... Kubernetes experience - although I realize that in some environments, the LAMP stack would absolutely be used in conjunction with Kubernetes.

I've long since gone on to become quite comfortable in other "stacks" - which I often see annotated as A) operating system/environment, B) web/application server, C) programming language, and D) data access language/method. In more recent times, I've been very heavily into the "full" MEAN/MERN stacks. But "MEAN" and "MERN" don't really say much about how the app is hosted or deployed.

As you pointed out, I think the key is that, at larger scales, the entire app pipeline gets split up between teams. At one job, I was working on jQuery/Angular/React on the frontend and on Java/Oracle on the backend. And all of the web services (that I was writing) were required to go through a broker called DataPower (from IBM). I had absolutely no expertise in DataPower. Nor did I need to (or want to), because that was all handled explicitly by a separate team. In that paradigm, DataPower was a critical part of the application infrastructure, that I suppose you could define as being part of the "stack". But I don't think it'd be accurate to say that I wasn't a "full stack" developer there, just because the DataPower aspect was a black box (to me).

Again, I know this is all kinda semantic. I just think it's interesting to ponder the different ways that we all define these terms in our particular environments/experiences. It's useful for me to be more cognizant of these terms because I realize that sometimes, when I say something like "full stack", someone else understands it very differently.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
bytebodger profile image
Adam Nathaniel Davis

This is a great point. I will admit that, in the past, with certain tools that have command line interfaces and GUI interfaces, I have sometimes spent too much time trying to figure out how to do something through the GUI when I could've just done it with one or two terminal commands. But I didn't do it because the command line syntax felt obtuse to me, and I was resistant to learn it. But I would've solved the problem faster if I was not so stubborn (because I usually ended up having to complete the task... by doing it in the terminal anyway). In other words, my "sin" was not that I wasn't already adept at the command line. My "sin" was that I was stubborn and thus, I was working inefficiently.

With nearly any class of problem, I'm not so much concerned with whether you've already memorized how to fix it. I'm much more concerned with whether you know where-and-how to search for the answers (cuz that, in itself, is a skill). Noobs will burn a lotta time randomly clicking through poorly-focused google searches. For seasoned pros, even when they don't already have the solution in mind, they can leverage the internet as something like the 3rd lobe of their brain.

Collapse
 
webketje profile image
webketje

Some examples where command-line is more interesting to invest in:

  • Changing environment/ tools. If you're consultant learning command line pays off way better than using a GUI (company A requires everyone use IntelliJ, company B Visual Code)
  • No local development possible, no TTY on remote server: you can only use command-line.
Collapse
 
bytebodger profile image
Adam Nathaniel Davis

If you're consultant learning command line pays off way better than using a GUI (company A requires everyone use IntelliJ, company B Visual Code)

I totally understand this point - although... my "answer" to this has been to not even consider opportunities anymore where the employer tries to dictate my toolset. I've had people contact me about Java opportunities, and then they tell me that, "The whole team is standardized on Eclipse." And... that's the end of the discussion for me.

I know that everyone doesn't have the same luxury. But I've actually run into this and I think it's borderline insane. After wrestling for years with Eclipse, and then seeing the night-and-day difference in writing Java in IntelliJ, I'm simply never writing another line of Java code in Eclipse again. If the employer thinks it's critical that I use the same IDE as everyone else on the team, then I am definitely not a good fit for that employer.

All that being said, I know that my little retort here is a diversion - and your central point is understood, and solid.

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

If the employer thinks it's critical that I use the same IDE as everyone else on the team

Then the employer is probably wondering why none of the top applicants end up taking the job and always end up picking the other company where the boss isn't micro-managing what socks they wear on thursdays.

Collapse
 
leob profile image
leob

Spot on, the incessant "impostor syndrome" hype gets really tiresome, let's abolish it ... maybe people won't like it when you call it a fad, but I think you're right - it's just "doubt", or the simple fact that there's more that you don't know than there's what you do know - it's normal, and fine, let's stop exaggerating these things people!

Collapse
 
paulmajor profile image
paul

"...You're a dictionary. That doesn't make you a problem solver." -- This right here.

The static around what you need to know to provide value to the private sector is painfully misleading. We all have our eyes on a handful of online resources (you thought of all of them as you read this article), and there's nothing wrong with that. You are adding value when you come into a company and start solving problems for them.

Spoiler/hot-take alert: with some exceptions, of course, they don't care how you do it.

I'm not advocating bad practices, I'm advocating no one be discouraged by what you're told you need to know. Being able to think-through-a-problem, communicate, and work well with others goes a lot further than having a single snippet of any programming language memorized.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I love that "hot take". Too many times, the interviewer/screener cares about all that nitpicky detail because they're just trying to find a way to logically eliminate candidates until they're left with only one. But your employer probably couldn't care less if you use async/await or .then()/.catch() (or 1000 other nitpicky possibilities about how to write an app).

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

One more note on this:

I'm sure you already get where I'm coming from, but it's not as if being a "dictionary" is a bad thing. Some of the sharpest coders I knew where guys who had vast swaths of minutiae memorized. But people so often fail to appreciate the difference between correlation and causation.

Those super-sharp coders weren't amazing code jockeys because they had memorized all that crap. They managed to memorize all that crap - over a span of years - as a side-effect of the fact that they're amazing coders. But just having everything memorized doesn't make you a good coder.

It's kinda like chess. The grandmaster have tons of openings memorized. But they're not grandmasters because they've memorized those openings. The opening memorization came as a side effect on the road to becoming a grandmaster. If you were trying to evaluate the skills of an unknown chess player, it would be silly to just quiz them on their knowledge of openings. I've actually met numerous very-low-level chess players who have an impressive command of openings... but they're still very weak chess players.

Collapse
 
arealsamurai profile image
An actual, Real Samurai

@bytebodger
This article feels like I've found my spirit animal so to speak. Great work and I've always been wanting to write articles like this, but I'm very curious. Aren't you afraid that maybe some of your colleagues in your company will see it and think 'oh this is making fun of me, because I know all Git commands/regex expressions' and shake your relationship with them?

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Hahaha... no. Most of the people that I interact with on a daily basis at work are pretty dang cool. And if I find myself working with someone who's not cool? And that person happens to stumble across my blogs and somehow takes offense?? Well, then... I truly couldn't care less.

Collapse
 
arealsamurai profile image
An actual, Real Samurai

I appreciate the response, and I'll take it onboard.

Collapse
 
codefinity profile image
Manav Misra

Regarding browser history lookups - I have managed to reduce those a bit and have my 'go to' snippets saved in VS Code with thiscodeworks.com/user/dashboard

Regarding rest of the points, yeah, 💯. Takes time and patience.

 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

after a couple more years of coding you will begin to unintentionally and unknowingly make other engineers working on frontend

Absolutely! To me, programming is nothing special; you just learn a bunch of stuff and apply it, but design, that's where the real magic happens and I can only watch in amazement how some people can come up with an awesome UI design when I can't even get a button to look right without just copying something from an online template.

Collapse
 
saunved profile image
Saunved

I relate with this post way too much. My brain does go for the "forEach" implementation and then once that's working, it'll ask me to turn that into a map -> reduce or something like that, and I guess that's just part of the process of learning to grow as a developer.
Maybe our brains will make such connections immediately, purely out of the experience one day. Maybe some people make those connections faster. Deliberate practice and not kicking yourself over that is the key to getting there I guess.

I also feel like nobody is an imposter. Everyone is learning. Everyone is at different stages of learning. And it's beautiful as long as the knowledge is shared in person or via the internet :)

Collapse
 
sebring profile image
J. G. Sebring

You can easily spot experience not by that they use Google but how they google. "mdn reduce" or rather clicks around w3schools looking for a way to solve the problem. Jokes! Kind of..

Good post, could relate allot!

Collapse
 
leob profile image
leob

Haha this is so true, just brilliant ... I think EXACTLY the same about all of the items or topics that you mentioned, I mean, every single one of them! The idea that you "should" master every subtlety of regex, that you "must" know every frigging command like option of git, etcetera, or you're not a "real" dev - that's so pedantic ...

Collapse
 
cromatikap profile image
cromatikap

I relate a lot to what you are saying. Although I'm also quite a lot into the "dev-ops" part. The first reason is that I like to have a fully working project publicly available. The second is that I decided to use GNU/Linux as my personal operating system and all of these tools out there usually follow the same Unix-like spirit (more or less).
For example, git is created and maintained by Linus Torvald, the same guy behind Linux. Therefore using git is like using an Apple app on your Apple device. At some point you just feel how to use it, with the advantage of freedom and security that free/open source software provides.

I connected many dots and many things clicked in my mind since I decided to install Arch Linux as my primarily distro (as a personal and development device).

Collapse
 
san00 profile image
Osania - sancodes

Thanks for posting this Adam.
I think the term imposter is so damaging, especially for jnr dev's & something I realised I shouldn't buy into. I hear the term used more & more and I wish more people would actually just call it what it is... doubt.

Its refreshing to hear this from a senior dev & I agree with Jordan's comment below, this is a natural response to doing something new, unknown, hard etc. The term is unhelpful & causes more anxiety when its not needed.

Collapse
 
riccardop87 profile image
Riccardo Polacci

I'm also self-taught and don't have a university degree in anything. I'm not necessarily saying this with pride.

I feel like I've advanced so much in my career and I beat so many odds that it feels like: "this is it, more than this is over-reaching". But somehow I can't stop trying to over-reach.

I'm constantly surrounded by Engineers (I call people that actually have CS degree an engineer), and I many times feel small and ignorant. I can feel more relaxed whenever we're talking about my stuff (Frontend overall).

I use the term "Imposter Syndrome" as a way of compounding many feelings.

I have all the items in your list and more.

Right now I'm actually moving to a new position that increased my "Imposter Syndrome" level to the roof. But, at the end of the day, this term equals: doubt, fear and a long array of what-if's.

If we got here is for a reason. If we're hired and working where we are, there is a reason. And we can always push ourselves further.

Doubt keeps you alert and in check, don't let it drag you down but rather use it as a trampoline.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Nobody in tech knows it all. The best example I could bring up to illustrate this, is the my coworker who sits right next to me. He's a wizard. If you use Ruby for anything slightly more substantial, chances are, you've relied on at least one project he's heavily involved in. I, on the other hand, technically only finished my apprenticeship a bit over half a year ago, and while I did spend 3 years at university before that, I'm still very much "the new guy". And yet, I still get lots of questions every time CSS or JavaScript is involved, and I'm not even all that knowledgeable about those.

Everyone has to specialise in some things, and it's completely normal to just not bother with learning everything. Nobody has the time nor the brain to pull that off.

And finally: Always keep in mind that you're not being paid to "be a programmer", but for solving problems. You don't need to "be a programmer" to post articles on dev, only to have something meaningful to say. Don't try to "be" or "become" a programmer, just enjoy programming.

Collapse
 
bpkinez profile image
Branislav Petrović

Wow, what a great post! I'm in the shame shoes as you :). I pretty like this thought:

"I just wanna write my dang code. Show me where my environments are. Give me access to the required repos. And then leave me the heck alone."

Thanks Adam.

Collapse
 
darkeye123 profile image
Matej Leško

I agree with you on everything written in this post. I do pretty much all of you are mentioning.

Not so long ago I had similar doubts and I found out that these occur for me when there is no real challenge for me in the work. When I was doing ok but the work was simple after a few weeks or months I got this so-called impostor syndrome.

After years I learned to comprehend that I'm incomplete and always will be. And I allowed myself to fail. This raised my self-esteem much greatly and reduced these impostor feelings.

Also, some dummy project helps. Just create another React/Vue/Svelte/Node/Django whatever shit on GitHub and just spend few hours digging. Then forgot about it and go sleep happy. This makes wonders.

All it is is just beating your creativity and possibilities you perceive you can do, but not going in that direction kills you.

Collapse
 
steve50244 profile image
Steve Harris

Thanks! I sometimes feel as if I started way too late in life to ever learn enough code to be employable. As a result, I get very distracted from concentrating on one language for very long, not to mention learning how to work with my server.
I appreciate your comments.

Collapse
 
dmahely profile image
Doaa Mahely

Love your writing, Adam!

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!

Collapse
 
prototypik profile image
Thomas Shallenberger

I loved every single point, except the section on DevOps; however, although I believe I am a very versatile, experienced developer, I love the fact that I can scaffold a prototype application with a continuous deployment pipeline that I can just keep rolling updates out to, and never need to worry about regressions (as long as tests hold), or config issues, or server maintenance, etc.
Basic DevOps introduced a peace of mind that I hadn't known before, by eliminating virtually all the stress that went into a deployment to production servers.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I totally understand this. The truth is that I kinda sorta want to be better at the whole devops side of things. But when I get stuck on something, it's more frustrating than when I get stuck on code. With code, I'm like a bulldog, wanting to fight through it. With devops stuff, when things just won't line up properly, I find myself getting exasperated faster.

But you're absolutely correct that it's valuable knowledge that can give you much peace of mind.

Collapse
 
trenthaynes profile image
Trent Haynes

I first heard of imposter syndrome sometime around 1994. That fad is probably older than a chunk of the people on dev.to.

BTW, Imposter Syndrome !== Doubt. There is a difference.

Collapse
 
natalia_asteria profile image
Natalia Asteria

The title... oh no

'nam flashbacks

Collapse
 
realityexpander profile image
Chris Athanas

Spot on. Ive been developing software off and on for nearly 45 years now, and i agree on all these points.

Collapse
 
makeshift_name profile image
Alex Longsdale

100% agree. To many people are pushing imposter porn as I like to call it.

It is nothing new and it doesn't help people grow and get better rather they revel in it.

Collapse
 
dvddpl profile image
Davide de Paolis

Oh, Adam. you have no idea how much I can relate to your posts. sometimes I even get pissed, because in my drafts I must have bits and pieces of similar rants, that now I have to throw away..
:-)

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Hehehe - thanks!

Collapse
 
emirryhn profile image
Emir

Nice perspective!

Collapse
 
janpauldahlke profile image
jan paul

Best write up on this page since years

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Hehe - thanks!

Collapse
 
codesomething profile image
Code Something

Interesting take. I like the regex-hieroglyphs comparison.

Collapse
 
pracoon profile image
Prasham Ashesh

You sure can rant 🙌
Love it!

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!

Collapse
 
siddharthshyniben profile image
Siddharth

Nicely said! This kind of describes me too (the closures, the Git, other stuff). Not exactly though.

Collapse
 
chuckles_gangly profile image
JP

This article really should be the last word on the topic. Well written, concise and easy to understand.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!

Collapse
 
zivtamary profile image
Ziv Tamary

Beautifully written, I think this topic talks to every developer.

Collapse
 
lepinekong profile image
lepinekong

Oh my I so much understand for Regex, I really hate that beast currently I need to write a lot of them like /((?<!['"]){|[|>|()...(}|]|<|))(?!['"])/ :)

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Oh, yes... I feel that pain. And no one should ever feel bad about not being able to look at at regex like that one and effortlessly read through it. (But of course, if you can, that's awesome too.)

Collapse
 
isaachagoel profile image
Isaac Hagoel

The irony here is that once one admits to having gaps around topic/skill x or y, they are no longer an imposter in relation to it

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Hahaha - TRUE.

Collapse
 
biffbaff64 profile image
Richard Ikin

You sound exactly like myself, even down to being self taught.

Collapse
 
juanfrank77 profile image
Juan F Gonzalez

Join the club. I'm an Impostor too masquerading as a web engineer.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

We all have many masks! 😁 😁 😁

Collapse
 
kellykels21 profile image
Marke'l Spellman

As a self-taught dev working at a fin-tech company surrounded by accomplished engineers I can say, Every single thing you wrote here spoke to me! Thank you! 🔥

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

You're welcome! And thank you for the feedback!

Collapse
 
seanolad profile image
Sean

Nice to get your 2cents lol.😄

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Beautifully said!

Collapse
 
dan_piedra profile image
Daniel Piedra

Man this post is good!

Collapse
 
denniswebdel profile image
dennisFS

'keep it simple stupid' applied to coders and not code this time...
Great article 👍👍

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!

Collapse
 
beardedbry profile image
Brian

This is great. I like to code, and I have felt "less than" for not being interested in dev ops type stuff. Which to me is beyond boring. Please just let me write the codes and build the thingzz.