Strategies for overcoming limiting beliefs
To overcome your limiting beliefs, you first have to shift your mindset, and then you need to learn how to articulate your build processes. Here are the strategies that have helped me overcome imposter syndrome, perfectionism and lack of motivation:
Imposter Syndrome: Strategies for articulating your build process with confidence
Imposter Syndrome is a common feeling for both new and experienced developers. It causes you to doubt your abilities as a developer, and to worry that other people will come to think of you as a fraud.
The first step to overcoming imposter syndrome is to understand that even when you have a lifetime of engineering experience under your belt, you will still be using your favourite search engine to ask ridiculously simple questions. The key difference between who you are now and who you are then is that you have gotten better at asking the right questions at the right time. You are now a more efficient problem solver.
The second step to overcoming imposter syndrome is learning how to articulate yourself better when discussing your reasons for building a project, the problems you solved, how you solved them, and what you learned from building your projects. To get better at all of these things, all you need to do is document a few key things throughout your build process.
Articulating your reasons for building your project:
Before you start building your project, take half an hour to answer the following grounding questions.
- What problems do you want to solve?
- Why do you want to solve this problem?
- What solutions are available for solving your problem?
- How does your chosen solution (project) solve this problem?
These questions get you to justify your reasons for building your original project, after considering whether your project is actually the best solution for the problem you want to solve. One mistake that many developers make is to spend time building out the first solution that they have come up with.
Another mistake is to reinvent the wheel when a solution that is already available does exactly what you need it to. For example, if you are a graphic designer and your main goal is to sell samples of your work, you should not build your website from scratch because that is time taken away from your main aim: Selling your work. Whereas if your goal is to get a Front-End position, building your website from scratch is a valuable use of your time and skill.
If you are building a project as a learning experience, it is also useful to consider whether this particular project is the most valuable use of your time.
STRATEGY:Once you have answered these questions, condense your answers down into a paragraph. You can then use this to introduce your project on your portfolio, and also in interviews.
Articulating the problems you solved and how you solved them
A common question asked in interviews that also contributes to the feeling of Imposter Syndrome is: What problems have you solved and how did you solve them? There is a really simple and powerful strategy for dealing with this, which will also make you a better developer.
STRATEGY:When you start a new project, open a blank file and write down any questions you have during the build process. Under those questions, include a reference to where you found the answer (whether that is online, or by asking a mentor/mentee/colleague). Every time a question/answer pair triggers a lightbulb moment for you, put an asterisk next to it and spend a moment writing a quick sentence explaining why it was a lightbulb moment.
This list will greatly reduce, if not totally eradicate your imposter syndrome. Here is how you use it to set yourself apart in job interviews.
Assuming you have tailored your CV to the position you are applying for, you will have listed the most relevant projects you have worked on. Before you go into the interview, print out the list of questions (problems) you encountered during the build process and bring it with you.
When the problem solving question comes up, take it out and start discussing the lightbulb moments you have highlighted. Your interviewer is guaranteed to be interested, and you will have provided them with an opportunity to have a really valuable and interesting conversation with you. You will come across as extremely confident and will prepared, and you won’t even need to memorise your answers before-hand.
Perfectionism: Stop trying to improve your own code!
Perfectionism is usually interlinked with Imposter Syndrome. It is where you are so worried about writing faultless code, that you are not able to make progress on or even start your project. The first step to overcoming your perfectionism is to shift your mindset from thinking that if you can’t solve a problem yourself, and in the best way possible, then you will never be a good developer.
You cannot invent the best solutions to problems when you have had no experience in solving them. So your only aim when faced with a new problem is to get your code working as quickly as you can. Don’t be afraid to hack it together and call it Frankenstein. Just get it done.
Once you have got it done, then you can spend time researching how to make it better. This is the perfect time to remove duplication. However, be mindful that there will be a limit to your refactoring success, which is the limit of your experience.
STRATEGY: Once you have reached this limit, now is the time to ask someone with more experience than you how they would improve your code. Then you can decide to implement this advice or not once you fully understand the benefits and limitations.
Asking for and reflecting on feedback like this will cause your skills as a developer to skyrocket. The feedback you get will give you plenty of lightbulb moments that will shape how you approach similar problems in the future. Finally, adding the advice you get to your question/answer database will ensure that you are unlikely to ask the same question twice.
After you have finished your project, summarise in a paragraph the steps you took to improve your code, how you asked for feedback and which pieces of advice you implemented and why. You already got the job at the last step, but as you are setting the bar high you might as well keep the high score.
Lack of Motivation: Bare minimum first, then baby steps, don’t forget easter eggs.
A lack of motivation is where you struggle to get yourself to work on something that you want to finish. Imposter Syndrome and perfectionism both contribute to a lack of motivation, and implementing the steps above will go some way to helping you feel more in control. However, a highly motivated mindset requires more robust strategies that will help energise you in the long-term.
STRATEGY: When you first start building a project, begin by asking yourself what is the absolute bare minimum needed to launch a working model of your system? To illustrate, my last project was a comment system. At a bare minimum, the system needed to allow a user to enter a comment and then to display that comment under the right article.
The reason this approach worked so well is that it stopped me getting overwhelmed, by removing everything that could compete for my attention or get in the way of progress. Only one piece of data needed to be stored in a table, retrieved and displayed, so a lot less could go wrong than if I had tried to add a comment, name, timestamp all at the same time.
Once one piece of data went through the system successfully, I knew that the database was connected properly, and the queries worked for displaying the data in the right place. All that was left was to adding and formatting the rest of the data one by one, because the rest of the system was already set up.
STRATEGYTake baby steps. Once you have built the bare minimum working version of the project, you can keep up momentum by identifying the next most important baby step to move your project forward. To do this, it is useful to ask the question: What is the next most important thing my project needs to provide for the user, from their point of view?
Once you have identified your next baby step, write it down and stop writing. This can be difficult to do when your next step sparks a trail of ideas of ideas you want to add to your project. Adding them to your list will damage your motivation levels tomorrow if not today. However, you can write them down on scrap bits of paper like post it notes or a whiteboard to refer to when you are ready to write your next baby step.
Finally, once you have achieved your baby step task, celebrate it. Every Single. Time. You can celebrate your baby steps by ticking off your baby step and also writing a congratulatory message for yourself next to it. This will feel strange at first because many of us are quick to beat ourselves up for making mistakes but rarely praise ourselves when we do something right. It’s also really motivating to read back over your baby step list and see all of these cheerleading messages. You can also celebrate by tweeting about the step you just completed, as long as you are able to avoid getting sucked in to checking likes and your general feed.
STRATEGY Add an Easter egg to your project. An easter egg is an undocumented feature in a piece of software that included as a joke, or just for fun. For example, when you are waiting for a video to load or buffer on youtube, the load bar turns into a game of snake when you hit one of the directional keys (left, right, up, down).
The reason for adding an Easter egg to your code is to inject a little fun into your project. It’s something that will encourage you to open your project and start writing on it. Once you have written a small fun something for it then you are likely to be inspired to start working on it now that it is open and now that you are in a good mood after having played around a little.