A long time ago I was in college.  I was in the computer science program at the University of South Carolina (go cocks) and I really hated it.

I’m not supposed to say that, though. I’m supposed to pretend I loved college and that I did well in it. But in truth, I was a fairly mediocre computer science student. I didn’t respond well to the blend of academia and technology and the setting made it really hard for me to understand practical use of a lot of the stuff I was supposed to be learning.

Even if I understood the concept of what was being taught, it didn’t really sink in–“We’re using ML, but what in the real world am I going to use ML for?” It’s not a rhetorical question–I really had no freaking idea.

I typically found that example material in lectures was too abstract for me and to some extent, alienated me. I felt apologetic for it without knowing why. Intro-level data structures classes explained how to implement a doubly linked list, but failed to explain why.  The intermediate level operating systems class explained what multithreading is but failed to give any contextual relevancy to when it is used in the real world.

Being a very hands-on learner, I expected this bewilderment to end in the classroom, but when I got my first job while still in college at 19, I was kind of blown away by how much was expected of me given I was writing PHP for $10 an hour. The 40-year-old team lead I worked with seethed vitriol and condescendence, asking me, “What do you mean you don’t know how to write a software requirements document?” I felt angry, but really not comfortable in my own skin enough to ask, “How can you possibly expect me to walk in the door of my first job knowing that without ever having had to write one before?” I felt angry. But I didn’t know who to feel angry with.

And although I really feel like I learned so much in that job, I constantly was wandering into a place where I was about to break down and give up. I worked with a friend who was very talented with PHP specifically, but I was more of a jack (jill?) of all trades and it seemed to work to my disadvantage.

Ten years later, the idea of giving up based on that one interaction sounds ridiculous to me, but I can time travel and remember the quivering feeling in my gut and the tears welling up in my eyes where I really didn’t know if I belonged and I felt no close comfort that things would work out. People expected the world of me but at the same time, no one expected anything of me. And that’s a horrible feeling to harness in your soul.

Imposter Syndrome is common in an age where you need “5 years of Swift experience” and so many companies hire entry-level positions as unpaid internships. But, the really shitty thing about Imposter Syndrome is that it’s like herpes. It never really goes away. And occasionally you’ll get flare-ups of it. And the most you can do is kind of rub ointment on it or whatever it is you do to deal with herpes (side note: I don’t have herpes so this is probably a terrible example).

What I mean is that once you’ve had the experience of knowing what it feels like to feel like you’re not good enough, you’ll always know what it feels like to feel that way. And when all the conditions around you are just right for it, you’ll feel that way again until you can soothe the ache and burn, or distract yourself enough to ignore the pain.

People have paid me to be a developer for 11 years now. I know a lot of things I didn’t know 11 years ago. And occasionally people say nice things to me that imply that I have, to some degree, some inkling of talent in what I do.  Likewise, I’ve had people be really rude to me as well. But the older I get, the more I realize my own self-worth and can excuse the fact that people on occasion will hang you if you’re willing to give them the length of rope to do it.

And somewhere in-between, occasionally I see behind people’s eyes imaginary things, looks of doubt and hesitation.  It’s a mirror of all the things I think of myself and all the self-ridicule for the things I want to know but maybe never will and all the mistakes I make that I think people are super-aware of when they’re really not, and they’re really thinking the same of themselves.

What drove me to write this wasn’t my own experiences directly, but those of newer developers–both in terms of people who are just learning and people who are just starting off from what they have learned. Due to the line of work I’m involved in, I am constantly an observer to people taking their first metaphorical steps on the paved road leading to the rest of their years. For a long time, I didn’t really pay attention to it, but these days I do and it’s breathtaking in some way.

As developers, we’re often so focused on where we are in our own experience that we don’t really pay attention to the way we got there and what mighty triumphs we sieged glory in to get there. Do you remember the first line of code you wrote? The first time you compiled something? The first time you committed code to a repository? The first time you ever deployed something to a production environment? Do you remember what it felt like to not know something and feel dumb for it and now you can’t imagine not knowing those things?

Every time you interact with another developer is a moment in that person’s story and is something that will manifest within them for the rest of their lives. From this remember these things:

  • Your life as a developer is a continued learning experience that doesn’t ever end.
  • Every time someone else doesn’t know something you know is a huge opportunity for you to proliferate knowledge. And the way you choose to do that and your attitude towards it will determine how well structured that foundation is.
  • Imposter Syndrome is like herpes. Most of the time it lies dormant in us, but it uses negativity and bad attitudes as a conduit for spreading. Don’t be the jerk that passes it on to others.