Levels of understanding and Impostor Syndrome

A personal journey understanding my own feelings of impostor syndrome

Understanding how I understand let me identify the sources of my Impostor syndrome and helped me help others deal with it.

My first episode of imposter syndrome hit me in the war-torn streets of Sarajevo. It happened not too long after I arrived there as a foot soldier in a US Army Infantry company. Our unit was tasked to provide protection from the genocide in the country for the Muslim and Croatian minorities. We set up a place to live in the men’s locker room of one of the Olympic stadiums there, covering up the bullet holes in the walls and staying away from the bomb holes in the ceiling.

Curtis Schlak, VP, Professional Development Curriculum

On our second day “in theater”, we made our first on-foot patrol wearing our clunky helmets and full body armor. We were going out to make sure that there wasn’t anything shady going on in the city, talk with residents, and ensure no one was getting killed or disappeared. When on walking patrol, half of the patrol walked on one side of the street and the other half walked on the other side of the street to prevent everyone from dying at once in an explosion. About five minutes into our walk, I looked across at my best friend, Rob Logan. He flashed his sardonic grin at me. I looked around at my platoon. And, then, a new and powerful feeling hit me that nearly made me stumble.

Who am I to be here doing this? What am I doing? There is no way I’m as good as these other guys around me. I feel completely unprepared to do this! I am incompetent! OMG! Why am I thinking like this!?!?

Unfortunately, the U.S. Army teaches some pretty bad habits when it comes to introspection. I just steeled myself against these alien sensations of panic and incompetence. I didn’t talk to anyone about them. I continued to suffer in silence various levels of panic and feelings of inadequacy for the year I had a hand in protecting people from slaughter.

Once I got back to Germany, I finished teaching myself computer programming. After my discharge, I worked at some Midwest startups, then moved to Silicon Valley with some incredible job offers. In the midst of the brilliant programmers there, all of those feelings of unfitness started coming back to plague me. Still inhibited by those bad habits from the US Army, I didn’t talk to my boss about them. I didn’t talk to other programmers about them. I didn’t talk about the feelings in the user groups that I attended. I just kept coding and learning and coding and learning and coding and learning until they finally went away about six years later.

Yeah. Six years of feeling like someone was going to call me a fraud. Six years of not believing that my achievements amounted to anything. The article Imposter Syndrome hadn’t even been published on Wikipedia yet, but it finally did stop happening. After a while, I didn’t think about it anymore. It wasn’t until 2016 when I started teaching software programming at The Iron Yard that someone introduced me to the idea of “imposter syndrome.” I finally had a name for the excruciating discomfort that had tormented me for more than half a decade of my life.

As I talked with other people just starting their software programming journey, I found that many of them suffered from imposter syndrome. As much as I could, I reassured them that they were capable and competent. As much as I could, I tried to explain that it was a temporary condition hopefully made shorter by acknowledging it. But I didn’t have a strong understanding of how I eventually overcame these feelings, so I couldn’t share that. Luckily, as an instructor, I started writing my own curriculum which led me to the so-called Bloom’s taxonomy, a way of classifying learning objectives into levels of complexity and specificity. I finally had a language with which I could articulate what I felt about my bouts with Imposter’s Syndrome.

For the uninitiated, Bloom’s taxonomy has three different models: the cognitive, affective, and psychomotor domains. In our line of work as software programmers, we often focus on the cognitive domain and its six levels of understanding: remembering, understanding, applying, applying, analyzing, and creating. Remembering is the least complex and “easiest” version of understanding; you can recognize or recall factual information. Creating is the most complex and “hardest” version of understanding; you can generate, plan, and produce new things using that type of knowledge and skills.

For example, when you’re learning a specific programming language, you first remember the keywords. You then understand the syntax and structure of the language. Then, you apply that knowledge to write computer programs in that language. With a deeper understanding of the language, you can start to analyze the source code to come up with better and more efficient implementations. Once you can do that, you can evaluate the code to determine code smells and best practices. Finally, you can create concepts with the language that haven’t yet appeared, like design patterns, high-reuse libraries, industry-standard frameworks, and (in the awesomest of cases) extensions to the language through contributions to its compiler or interpreter.

When I reflected on my career and those feelings of being a fraud, I realized that I suffered Imposter’s Syndrome most when I felt that I had only really achieved only the first three levels of the cognitive process: remembering, understanding, and applying. It turns out I was really good at slinging code that didn’t break very often. I really enjoyed pair programming, so I got to do a lot of understanding tasks like interpreting, summarizing, and explaining to my pair.

It turns out that those first three levels of understanding are enough to get most people from junior developer to senior developer in just a few years. When that happened to me, when I became a senior developer, I felt like I had no more depth to my knowledge than what I did as a junior developer. That haunted me all the time with thoughts like “I’m no better than I was! How can I be anything but a junior, now?” My coworkers talked of theoretical knowledge and implementation patterns for which I had no definition. Members of my team came to me for superior solutions to problems they were encountering. I was overwhelmed by my own inadequacy. So, I threw myself into the only thing that had helped me in the past: exhaustive learning.

I ended up forcing myself to achieve higher levels of understanding because in those I found solace. I got extremely focused (read monomaniacal) at times with my pursuits of upping my understanding game. Slowly and from a hodgepodge collection of resources, I matured past just being able to remember, understand, and apply. I started really being able to apply my knowledge to differentiating, organizing, checking, critiquing, planning, and producing. As I gained a more complex understanding of my craft, the less I felt my Imposter syndrome until, one day, I noticed I hadn’t been bothered by it for a while.

Oddly enough, I’ve just started feeling it again in my 26th year of programming and fifth year of teaching. I look around at the array of exceptional instructors that we have at Galvanize and Hack Reactor and think to myself, “Wow. Who am I to be here with, in this exceptional company in this position?” But, I now know how to overcome those feelings, by enriching the complexity of my comprehension of these new courses I’m helping to develop in a way that we can all get past our Imposter syndrome.

Our new courses make sure that you are hitting the top three levels of understanding. All of our learning objectives specifically target your ability to use your new knowledge to analyze, evaluate, and create code, content, and concepts. We want you to get valuable feedback from folks that have gone through the same problems addressed by the courses, so dedicate the majority of our time to reviewing your submissions and encouraging your active participation in your class. We want you to feel comfortable talking with people of all levels about what you learn, from junior developers to principal engineers to CTOs. That’s the kind of thought-leadership that comes naturally when you have the command of the subjects that you’ll get in the Hack Reactor Professional Development courses.

We are currently enrolling for courses in Microservices + Orchestration and Algorithms + Data Structures.


More about Curtis Schlak, VP, Professional Development Curriculum

Curtis Schlak’s software development career spans more than two decades in software, energy, finance, legal, and education. He has worked as an individual contributor and has led teams of nearly 200 people. He has worked or consulted at Barclays Capital, Bank of America Merrill Lynch, British Petroleum, CITGO Petroleum, Ernst & Young, and Microsoft. He has led software teams at startups like KickFire and DataCert. His consulting firm leads the training and adoption of Feature-Driven Development in the US. He has created and delivered consumer and enterprise training for hundreds of people through The Iron Yard, Hack Reactor, App Academy, and Galvanize. He has a BS in Mathematics, BA in English, and MS in Computer Science. He is currently working on his Ph.D. in Computer Science.

We Hack the Future

Transform Tech from Within with Software Engineering Bootcamps

Not sure if a bootcamp is your next step? Sign up for an info session or schedule a 1:1 Q&A with an advisor to learn about our programming.