UNiDAYS talk on Imposter Syndrome in Software Development
Picture source: Alicia Liu @aliciatweet
The following is a list of notes covering my talk to our development team at UNiDAYS
What is Imposter Syndrome?
“Impostor syndrome can be defined as a collection of feelings of inadequacy that persist even in the face of information that indicates that the opposite is true. It is experienced internally as chronic self-doubt, and feelings of intellectual fraudulence.”
I believe nearly every person at one point in their career will feel this way. It is extremely common and just knowing about it is enough for most people to realise they have it and to start working their way out of it. Sometimes instantly.
I want to talk a little about it today, my experiences with it and hopefully shed some light on this condition so that others can identify and help each other in the future.
Learning to code is hard. It isn't a case of learning off by heart regulations for a Gas Safety Certificate or understanding the law to handle your accounts.
There are many different languages for you to choose and learn. You can't even choose just one as often you need to understand multiple technologies to make something work.
LAMP for example, or any front end development where you have a seemingly infinite amount of frameworks.
There is no one tool that is fit for all purposes. You will have to choose the language that best suits you and the situation.
This may mean having to learn a brand new language altogether to solve a particular problem.
So now you have rocked out of University, got a distinction and you have your first job. You walk in confident and soon realise that you know nothing.
Maybe you do the right thing, realise you don't know everything and start to ask questions, take your time and learn from others and find things they don't know to learn.
Then over the years, yes, years, you start to feel confident in general coding and things move on from there. Always knowing you will never know everything, or there will always be someone better than you.
Or there is the other path. You realise you don't know anything and you hide away. You spend hours on Stack Overflow (which is a good thing!) and run late on your projects.
You get left behind and get angry when people question why you are not completing work on time.
In your head, you don't deserve this role, you had better leave, you will never be as good as these guys, they use words you don't even know and complete things in hours which would take you weeks.
But instead of accepting you don't know that one particular thing and asking to pair programme or ask for help, again you go into your own mind and it betrays you.
The above is an example for university students, but if you replace university with any other condition such as new job, contracting for the first time, learning a new language, etc they can all fit.
My experiences with Imposter Syndrome
When I first started here I felt like I had lied in the interview and the homework. Even though everything I did was my own, I still felt well out of this companies league.
Lead developers at the time were Dom and James. Two guys who have amazing knowledge and drive. This made me feel inadequate and very down about myself.
I spoke to Dom about this and when he first started he too had this feeling. The only difference is he saw what he had to learn, took action and went on courses and practised and researched until he was able to do the job he does today.
I struggle to learn from books. Some people can read a book and remember it, myself I would have forgotten what I read a couple of weeks later.
Initially, I thought this was a really bad thing and I could never get to where they are.
However, after a lot of self-discovery, I have realised I am a man of repetition. I need to do things practically and record them.
Once I do a certain thing a number of times it lodges itself in my brain, like the natural thought. Since then I spend most evenings and weekends researching and coding.
I also found another skill I have that I wasn't completely confident in. People. I love working with people. All I want to do each day is code cool shit and make everyone happy around me.
It took me too long to realise that is what drives me and that is what I am best at. Over the past six or so months I have dedicated myself to helping as many people as possible in my day to day work.
Off the back of that, I have learnt even more as I pair programme and solve problems with them using new technologies I have never touched before.
So, if you feel at all like this, here are the reasons why you shouldn't
UNiDAYS employed you. They only employee people they think are worth it and this can be proven by the interview process and homework you need to do. In the Tech Team, they have high standards and wouldn't have given you the job unless you proved you can do it.
Do you turn up every day and try your best even though you think you aren't worthy? Yes, you do, and that is all anyone could ever ask of you. That is enough for any employer.
From a personal point of view, this is the best technical minded group of people with varying degrees of skills in different technologies I have ever worked with. I love learning new things from each of you.
How can we work together to overcome it
Here are some paths to start on
Get a mentor
A more experienced developer who can be your guide through any challenges you come across. They will always have time for you and be able to help you with "stupid questions" whenever you need, without judgement. However, this can be hard to find due to high work levels.
Get a peer pair
Like the above but this one is easier. Find someone else at your level who you can get to pair with and QA/Test your work giving each other constant feedback to help each other level up.
Surround yourself with smart people, deal with it and take advantage of it
The more smart people you have around you, the easier it will be to learn. The general environment will make it super easy for you to learn. Simple.
Be curious / ask questions
Get together some backbone from somewhere and ask questions. This doesn't mean every time you are stuck, ask and nag people. You still get a massive sense of pride and knowledge for solving problems by reading and researching. However, if you are interested in a conversation someone is talking about, or you are up against a tight deadline then ask.
Pick a new technology and practice
Just like myself, if you don't know it, learn it. Ain't no one got time for kids or the pub.
And finally, be aware you have Imposter Syndrome
Just knowing you have it can be enough to overcome it and get on with doing cool stuff.
If you are new to UNiDAYS then our code base can seem daunting. Most of the time you can't use Stack Overflow like you can in any other job that uses popular frameworks. So you need to dig deep and learn a bit more about how things work.
This for me is a massive cause of Imposter Syndrome in our office, and not just our department but every department in here.
So guess what? Time to start getting over it! So what, you don't know how the pipeline works. Instead of saying that to yourself, try rephrasing things. Here are a few examples.
I don't know how this works. I don't know how this works, yet.
I am never going to be able to solve this problem. I wonder if anyone else has solved this problem.
I am going to go past the deadline date, I am going to work late tonight to show I am working hard even though I won't hit it. I am not going to hit the deadline, I better tell my line manager and ask who could pair programme with me.
Sounds obvious, but sometimes your mind goes into panic mode and you think it is a weakness to not know something. It isn't! It should be exciting!
At what point did we get in our lives where learning new things became bad? When we hack in the evenings trying something new, its great fun! When we do a hackathon, it is stressful, but an amazing sense of achievement.
So why at work is it such an issue? Culture? You can change that, start from today, we are a team, a team with great knowledge. Take every day you don't know something as a chance to learn something new. Be excited you don't know something!
So to finish, stop it. Each of you is amazing, every one of you. We are all here for individual reasons. We each bring something different to the team. That means we need to work together.
Keep your chin up, enjoy learning, don't be afraid and be as awesome as I know each of you is.
- Caltech Counseling Center - Intro definition