Imposter Syndrone - adamjberg/coding-curriculum GitHub Wiki

It's Just Doubt

Sometimes I experience doubt. Something I remember from my first years as a programmer is how fun it used to be. Once I had the pressure of other people, managers devs, opinions, arguing, tinkering, it was hard to stay focused.

I believe it would be incorrect to say that this can be taught in a course. You can't have a student ready for every single issue that might come up, but we can try to set them up to react correctly. Air Force pilots are trained with a model that allows the pilot within a chaotic situation to maximize his/her ability to think rationally.

The OODA Loop

When things do go down, you'll want to be ready, but this method can also assist you even before any situation. It's a method of how we run both our development team and product teams because project decisions can come along that are just that important that you need to shake the cage a little bit. The OODA LOOP concept is about being able to react to stimuli that pop up in the day to day business of things.

Observe, Orient, Decide, and Act. I don't even know if I should go into this any further. It speaks for itself like the order of operations. Did I hear recently they changed those?

Observe what's happening. It means take a step back, not matter how bad it is you'll always need to see things without emotion. Orient yourself in the situation. This step means you need to place yourself back into the situation but you already know what to do so you're not going to freak out. Decide - so I fibbed, you don't know exactly what you're going to do from the first two steps. But now you've gathered data, you placed yourself into the scene, and now you're going to decide on the best plan. Act - then you're going to just do it.

I bring this up now because though it works for emergencies, you can use it for all the little things too. Because you're going to be on a deadline before you know it, and every minute's going to count and everything will need to be handled in real time, right then and there.

At a software company, you would be surprised at how commonly you'll run into daily problems. However, a person getting into it pretty fresh may have things a little easier if they have other senior devs to hide behind, and that's no problem with that. It's important to know what your own personality styles are and make sure you're a good fit the dev team.

Thinking Too Much

Thinking too much is at the heart of Imposter Syndrome. Staring at a problem will not fix it. It's bad for code. It can prevent you from doing your job. It can mean you write less to stay out of view.

It's just a voice in the back of your head gently reminding yourself that you're not good enough. What you need to do is take a big wind up and punch that voice in the face. Repeatedly. Until it goes away.

On the Flipside

There is nothing wrong with being new, but there is if you're new to development and you haven't learned how much you don't know. If you enter a situation thinking you know more than devs on the team, you're going to get found out that you've been saying things to sound impressive but forgot to put in the work required to be impressive. If you think you could do things faster if they just used GraphQL, make sure you learn how to provide value in the small things before you make bigger picture things.

It seems arduous, but with enough practice you will get up to the senior ranks where then you can be responsible for the solutions you once suggested.

Responsibility

Higher education studies don't tend to promote practical life, at least not in software engineering. And it might not just be all of the late nights partying and early mornings surfing! I've been there, it was fun, but then when I had to create my first app I was forced to pick up those books gathering dust in the corner of my dorm, only to find out they didn't have the answers I needed. So I purchased more courses at community college and filled in all the gaps. We all have our story as to how we wanted to become a developer and that's great because your career should be an adventure.

But, when you graduate or want to move out of the house, or make something that you've been dreaming and just know that the world needs you. Whatever makes you one day become a developer, and no matter how long and hard it is to get there. You basically get thrown into the most important part of any successful modern company. That responsibility trickles down the various nodes and trees in your company's org chart. And that makes your position special. It warrants your high paycheck. And it gives you maximum control over your own freedom compared to other positions within a lot of the other big tech firms.