Photo Credit: Photo by Tima Miroshnichenko: Pexels.com
If you are struggling with a severe Imposter Syndrome in your Programming job or learning phase, while suffering from a serious Inferiority Complex that is trying to destroy your coding journey, here is the guide to fight the challenges of the Imposter Syndrome. In this guide, I share with you the actual elements and reasons for causing this Imposter Syndrome and also provide you with many Actionable Advice for you to improve your confidence! You may consider the points mentioned below as part of some coding tips to remain persistent in your early coding phase.
Imposter Syndrome is a major emotional battle for most Programmers, whether you are in the early stages of learning to code or already started working as a Programmer, and it is very normal for you to feel the emotion of an Imposter Syndrome and fighting this syndrome is a big challenge indeed.
What is Imposter Syndrome
Imposter Syndrome is actually a bucketful of feelings pertaining to inadequacy that persist despite continued struggle to overcome this mental status. "Imposters" suffer from chronic self-doubt and a sense of intellectual fraudulence that overrides any feelings of success or external proof of their competence. It is the persistent fear of being exposed as a fraud. There is always a nagging feeling in your head and mind that "I am a bad programmer", "I am not good enough at coding "I cannot code well without Google search", "I cannot code without Stack Overflow" and "I am not fit for a coding job yet".
As a beginner Programmer, or as a Programming learner, this is actually a feeling of insecurity due to not knowing everything as compared to others doing the same thing. It could also be a feeling of being lost amidst expert programmers, software engineers having a vast experience in this industry. Sometimes, this is also the fear of being exposed as a fake programmer not having enough expertise as self-promoted to others/peers in the industry or at work or in the place of learning.
Let us understand the reasons for this feeling of Inferiority complex, in order to combat this challenge and reciprocate this inferiority complex within oneself. Read the following paragraphs in order to understand why you feel that "I am a fake programmer, just about to be exposed". In other words, you have a serious inferiority complex that is almost impossible to shake off, that in turn, makes you feeling insecure about yourself, your knowledge, your work skills and your learning abilities. If you analyse the reasons that are responsible for turning you into a fake programmer or an insecure coder, you will be able to handle it with superb confidence and come up with the courage and patience to survive the battle of Imposter Syndrome.
You do not have a formal Computer Science degree
There is a common myth among many programming students and programmers as well who think that you need to have a formal Computer Science degree in order to do well in Programming. This a myth because, many companies hire Programmers and Engineers based on their knowledge and portfolio rather than a fancy computer science degree!
A Computer Science degree may help you in getting attracted to hirers but during the interview, it is only your knowledge and portfolio that matters, rather than your degree certificate. Infact, during coding interviews, hirers even provide you with a computer and internet connection to google search for any code block in case you get stuck, in order to complete any project assignment that is part of the interview Test.
Some interviewers even ask you to carry your assignment home and finish your assigned project within a week’s period after which you could attend the second interview and present your project. In some cases, if you get stuck with a particular code block during an interview test, you could just explain the concepts and steps to complete the project rather than submit the entire source code. For example, if you are told to create a website using Reactjs, you could let them know broadly by breaking down the code steps and present to them which are the components to be created , out of which, which are the parent components, which are the chold compoments and which properties or props are being carried over from the parent to the child component in order to make sense for the website that is being build. You could say what HTML tags and elements are going to be used for the navigation bar and how you are going to link the different sections or pages of the website to each other along with the Home page and so on. So, the idea is to be a good story teller! You need to let them know that you can make sense of your code in creating something real life with real life functions. You are not into memorizing of code, you are supposed to understand the significance of a code block in the project. You should be able to know simple concepts of ‘hyper links’, ‘navbar’, ‘container’, ‘section’,’props’ and so on. You are supposed to let them know that you understand the concept of conditional statements, like for instance, ‘if the user logs into the website, then, the welcome message is shown to the user to greet him or her by name’ . I hope, you understsand what I am trying to get at?
You Are A Self - Taught Programmer
You think that since you are a self-taught learner in Programmer, you may have left out something behind and not well-equipped as those who have gained formal degree certification from computer science universities. You also do not have the full confidence as a Programmer as you are not attending full time classes, and there is no mentor holding your hands and leading you all the time in your learning journey. Let me tell you this important point, companies always prefer a self-taught Programmer rather than a Programmer who studied Computer Science and Programming in a University. The reason for this is due to the fact that companies need independent learners and not someone who is dependent on seniors or colleagues all the time to learn new programming languages. Once you are hired for one Programming Language, say, Python, you’re learning journey doesn't end there, but your employer will expect you and also ask you to keep learning new Programming languages, like, Java, JavaScript, PHP and so on and so forth. If you are a self-taught Programmer, then, your employer knows that you will find it quite exciting and easy to learn more programming languages all on your own without burdening others around and then you will prove to be an asset for your employer!
You Compare Yourself With Experienced Programmers
You are always getting this nagging feeling inside you that you are not as good as other programmers around you. You feel that they know much better than you and that compared to them, you are just nothing. You can not help feeling that you are so foolish compared to other programmers who are too smart with coding and completing tons of projects quickly without taking help from others. This is completely wrong on your part to think as such, because, every person is unique and it is not at all a good idea to compare yourself to others. It is like comparing your beginning to someone else’s middle!
Comparison Theory always puts down one person in comparison to the other and this is something we wish to avoid, especially in the beginning of any career goal! Someone with few years of experience in coding may seemingly appear to be much smarter and cool when compared with your humble code newbie self and in turn, break your self-confidence even before you establish your goals. Let me request you to stop playing ‘Peeping Tom’ on others and just focus on yourself! If you really want to compare, then, compare your current status to your previous status and you will be able to keep a record of your own progress at every step of your coding journey. If you find at any step that there is no progress, then, pause, take a short break and proceed with a firm step to ensure progress the next attempt.
My most favourite quote by the great Thomas Edison, “ I have not failed. I’ve just found 10,000 ways that won’t work” - Thomas Edison
Whenever I got disappointed at my failures, I would look at the above quote and get inspired to continue my life-long learning journey!
Your Biggest Enemy is your Success Phobia
You have a nagging sense of Success Phobia that keeps stopping you from reaching the top and hinders you from doing better and better. This Success Phobia is the biggest obstacle to the path of achievement and you need to get rid of this phobia in order to move forward. If you have a tendency to rush your goal, and speed up on completing your learning phase or compete with your peers to become better than others, then, you will end up taking short cuts and short-cuts can really lead you to the success phobia tunnel where the going can get very tough indeed.
Planning in accordance with your goals, lifestyle environment, personal commitments, etc., is very important or else programming journey can become very humdrum or strenuous. If you want to succeed as a Programmer, being consistent, persistent and patient is very important, in order to avoid being lost in the tunnel of the Success Phobia while rushing things. Remember, "Rome was not build in a day!"
You fear reaching the top as you feel that you may fall down any time! This feeling of insecurity only comes to you since you are rushing to reach to the top and you are rushing to become successful too soon in order to compete with others around you. If you want to achieve something, you must set a goal and you should compete with yourself and not with others, so that you can win slowly but surely.
Stop considering Success as your definition to reach your goals. I would suggest that you change your definition of goals ! More than the urgency to complete learning everything quickly and reach the so called ‘success’ phase, you should just celebrate your progress in small steps on a daily or weekly basis. This way of measuring progress will not compel you to rush to the end of your goal. This will also not compel you to always think of your end-goal all the time when you are struggling with your current phase. Celebrating shorter wins will help you to accumulate your positive energy without getting over-exhausted and over-whelmed in your path. Staying consistent in your path will automatically speed up your journey, even without you being conscious about it all the time. Trust me, winning small battles in tiny steps is a smoother way to stay persistent and prepare yourself for the long sea of challenges ahead!
You Suffer from Failure Phobia (it won't work out)
Just as success phobia deters you from reaching the top, even the failure phobia does the same thing to you in stopping you from your achievements and goals. It is tantamount to a creepy feeling of failure, even before you attempt to make an effort!
The Failure Phobia is common to all beginners, be it in the early learning phase or in the early working phase, whereby, you keep getting this nagging feeling that you will fumble and fail somewhere along the way and that it won’t work out the way you planned. This feeling arises from the fact that you are rushing too much either trying to learn everything fast or trying to prove to others that you are also the best. It is all about proving to yourself that you will become your best self rather than trying to become better than others around.
Failure Phobia is your beggest negativity, so, staying away from this phobia is your best bet!
Your Good Friend is Google
In order to complete complex projects to show off that you are the best, you fumble in the beginning and being unable to complete the code with your limited knowledge, on your own, you decide to steal codes from google. This is where the feeling of imposter syndrome starts attacking you and you feel so let down that you feel a very poor image about yourself. In order to be successful, feeling good about yourself is good and by feeling bad about yourself, you cannot proceed to complete your more complicated projects or secure programming jobs and even if you get a job in the beginning by stealing codes from google or others around, you are bound to get caught in the process.
Again, on second thoughts, if you were to take help by using code blocks from Google for your projects, when you get stuck completely, it is not a crime! Just remember to understand what is the code that you are borrowing from Google, and how to apply it, without just simply copy-pasting it blindly! Remember, even experienced programmers and Engineers seek code help from Google and other open community sources, when there is a dire need for it, and if you are only taking the code help but not copying the code, it is not considered stealing, though, many times, I have seen many so-called experts stealing codes even without feeling guilty as they are already top-proclaimed coders and they don’t follow this as a daily routine/habit.
You Are Weak in Mathematics
This is based on a common belief that programmers need to be good at Mathematics. If you do not have a Mathematics background, that does not mean that you cannot be a programmer, however, this insecurity of not being an expert in Mathematics, is surely bringing you down from your feeling of an ideal Programmer image expectation.
Mathematics are important for learning Machine Language, Data Science etc., but again, if you put your heart into it, you can learn Mathematics as well!
Only Nerds Can Code
You suffer from this negative feeling that only Nerds can code successfully and that you are not a nerd, hence, you are incapable of being successful in a coding job. This feeling persists inside you, because, you have a certain image of a Nerd as being someone who is the most knowledgeable person who knows everything in science and mathematics and who is born intelligent in programming.
You feel that you just cannot understand what are the complications within the coding languages and you feel completely lost in the maze of all the coding concepts, their logical statements, data structures and algorithms etc.
You fail to realize that you do not need to be a nerd in order to code and that coding comes from understanding the concepts and logics. If you have average understanding power, then, you are able to understand the logics behind every block of code, provided, you invest your time and focus on grasping the concepts of the programming languages that you have learnt or trying to learn.
How to deal with the Programmer Imposter Syndrome
The reason you feel this imposter syndrome is due to the fact that you are comparing yourself to others in the industry doing the same thing, be it a programming student like yourself or be a software developer or Engineer like yourself. So, the first ACTION that you need to take is to STOP comparing yourself to others. Even if others are doing better than you with similar work or learning background or experience, stop comparing them with you. They are THEY and you are YOU! Nobody is same, everybody is unique. Again, even if you consider yourself smart and intelligent and yet cannot pick up the skill better than others of the same level, just don't compare, because, no two different persons have the same lifestyle, background, environment or monetary scales. Just because others around are practicing coding 8 hours a day and becoming smarter to code faster, does not mean that you are a fool. You should understand that you have some other priorities at work or in personal life due to your commitments that just does not allow you the time to take out 8 hours a day to learn code or practice coding, hence, you may end up getting familiarized with the skills in a longer duration of time span as compared to them. There is nothing wrong with that, hence, it is always wiser to compare yourself with yourself, that is, keep comparing your current status with your past status and keep improvising in improving your skills, be it at work or learning to code. This way, it would be much easier to fight the Imposter Syndrome inside your brain!
"Don't compare your beginning with someone else's middle."-Thorin Kozlowski.
You must never compare your early phase of coding career or learning phase with others’ advanced phase of a long coding experience as that will only discourage you from going further in your coding career. It is always better to compare your middle with your beginning in order to measure your progress level and helping you to target your goal more precisely.
Embrace Not Knowing Everything
It is always a good idea to accept the fact that you are not a “Know it all! “. If you pretend to know more than you actually know, then, chances are that you will end up hurting your reputation in the community, and also damage your ambition to move ahead in this journey. Embrace the learning phase and embrace not knowing everything, as not knowing everything will make you curious in this coding journey. Curiosity will trigger your power of thinking logically and that is what will take you forward in your programming journey. In fact, you will never reach the stage of knowing everything in Programming as this a huge industry in itself and even experienced Programmers need to keep learning new things.
"Everything will be okay in the end. If is it’s not okay, it's not the end." John Lennon
You should have an open and daring mind with a strong determination that is already focused upon success in the end and simultaneously ready to bear the brunt of failure, weaknesses and challenges that may come in the way of your ambitions, but you have to take it as a learning point rather than considering it as the end of your journey! As long as you continue having a strong willpower, you will surely make it until the end with great success.
Programming is Forever Evolving
Programming trends keep changing- sometimes the language that you learnt today may become obsolete tomorrow. Also new languages may become the trend of the time. New technological tools and frameworks keep coming up in the industry year after year and in order to keep up with this industry, you need to keep yourself updated with these trends and keep learning new languages, frameworks, and other such things that are required to keep up with the latest information.
Hence Programming is an ever-evolving science and you need to keep up with your learning journey for life. Hence, the best Programmers never stop learning, never stop thinking and never stop creating.
Good programmers Need Not be a Good Mathematician
You don’t need to be an expert in Mathematics in order to get involved in coding. But even if you do not have a mathematics background, make sure that you prepare yourself with some basic level mathematics in order to understand the coding data structures and algorithms that will get you on to the road of Logical Thinking. Also, you may take up front-end web development and languages that stay away from mathematics. But, as a programming teacher, I myself would suggest that you learn basic maths in order to understand some basic algorithms that may arise in front-end projects as well, that involve a bit of structural thinking. If you are a person who loves designing, you could opt for web designing that has nothing to do with Mathematics.
You Don't Need to be Born as a Nerd to Code
Many people are scared of even venturing into the coding industry as they think that programmers are nerds born with high scientific mind and that only nerds are able to become good programmers.
Thinking Attitude can be Developed
While doing coding projects, you need to think a lot, but, remember, this is nothing to do with nerds. Thinking mindset can be developed if you put your mind into it.
Understand that Expertise takes Time and Experience
Even experienced programmers google and conduct research to do lots of their projects. Experts also look up code snippets in Stack overflow for more ideas on doing things in different ways. Looking at other coders’ work also gives you creativity to do projects in other ways to get the same result. Remembering what to google is important and it is not a shame to google for coding concepts in case you get stuck in the midst of a coding project.
Remember to google for concepts and methods, but not for final solutions. Even if you google for solutions, ensure that you understand all the concepts and steps that goes into doing that project rather than blindly copying it for end results.
There is No Such Thing as Expert Programmer
You will never reach the stage of knowing everything in programming. Even experienced programmers need to research and look up google a lot. There is so much to learn and understand in the ever-evolving industry of coding, that, you will never be able to call yourself, an Expert Programmer, even after years of working and training in this industry, since, there is too much depth in the vast sea of knowledge.
Conclusion
To conclude, please remember that you will reach your goal if you are patient. You will make it to the end if you really persevere. Never give up coding for wrong reasons. If you feel frustrated at any stage, re-think why you started learning to code in the first place. Stop copy pasting from google and stack overflow code solutions. Google for methods and concepts, not solutions and train yourself to google for steps and methods not solutions. Learning to code the hard way is often good for long term basis, as challenges along the way will trigger our power to think and solve problems, even better. Taking few steps backward when things get hard is better than taking short cuts!
Your journey as a Programmer can turn out to be very rocky if you cannot handle the challenges that come with it and you may even end up giving up your coding career if you are not careful in keeping up with your confidence level either while learning to code or in our newly acquired Programming job position.