Dear new programmer,
I am so excited that you have also decided to join the world of programming! That said I know it can be tough to start with and things don't always go so smoothly. But don't give up!
Feeling like you have failed at something is not a great feeling. When you make a mistake that you believe you could have avoided or when you pick what turns out to be the wrong approach or solution, it can be so frustrating. It happens to many of us.
If you’re like me, these perfectly normal moments can really get you down. I have agonised over what I could have done better or that I should have been more prepared. At one point in my life, I felt that every mistake I made was a reflection of how bad I was as a person. However, I have since put a lot of focus on adhering to the advice of "learning from your mistakes" and do my best to extract some sort of knowledge or wisdom from each experience.
For me, this realisation and focus really came about when I changed career and started studying to be a web developer. One of the first lessons I was taught as a developer was how to fail. And break things. On a regular basis.
One thing I was constantly told at the start of my coding journey was that breaking things (or making mistakes) is integral to the whole process. Furthermore, this does not change throughout your career. Even the most senior and experienced developers make mistakes. It can be small like a typo in the spelling of a class or it could be huge like an expired certificate taking down an entire mobile phone network…!
The reality is that mistakes will happen, no matter what you do and where you are, but the point is to learn from them.
Failures, repeated failures, are finger posts on the road to achievement. One fails forward toward success.
C. S. Lewis
In order to build my resilience I needed to learn how to accept that making mistakes is natural and human without also feeling like my career, my life, or the world, was falling apart.
I started thinking about how to achieve this, and I realised I needed to find an environment where mistakes were understood and supported. I wanted to feel like I could try new things without fear or anxiety and learn from any mistakes or failures along the way.
This is one of the great things about my experience of the Tech community. The only way to advance is to try and fail. It’s the only way you learn and figure out how to improve. Furthermore, programming teams and projects are set up with frameworks and systems that allow for mistakes to happen – development environments, code reviews, user acceptance testing, test driven development, business driven development, stand ups, release cycles and more.
As a discipline it recognises that in order to improve and get better we need to be allowed to take risks which may end in failure. We need to try new things, test ideas, reaffirm our existing knowledge and yes, break things once in a while in order to succeed.
There is no innovation and creativity without failure. Period.
High Pressure to Deliver. If your resilience is low and you enter a world where you are regularly making mistakes and breaking things, it can get pretty stressful. Just like any high pressure job can feel.
Mistakes are relentless. In the first 9 months of working in my first developer job, my ability to pick myself up and move on was challenged. So many days had been spent agonising over a mistake I felt that I should have been able to identify sooner, or an error I should never have made in the first place. There were times when I let the feelings of failure or frustration get me down. It felt personal. It’s hard not to take these moments personally. I found it difficult. But I know I am not the only one who has felt this either.
Overwhelming number of resources and solutions and options. One of the biggest challenges for me was to identify which advice, solution or result in a google search was the most relevant or useful to my problem. Essentially, knowing what question to ask and figuring out if the answer is the one you need. This can feel like hacking through a jungle and it takes practice to slim down your research time for even the "simplest" of things.
I feel supported. Towards the end of last year, I had a seemingly endless run of tough days. Instead of telling me to ‘just get over it’ or ‘toughen up’ my boss and colleagues listened and offered advice and perspective. My learning definately sped up with this encouragement and support. This is even more true of my current job. The people you surround yourself with are so important in how well you learn and grow.
The online tech community has some great social media accounts. These social media accounts have been an amazing and surprising source of strength. There are so many instagram posts, medium articles, twitter accounts… all sharing the mistakes they made or the knowledge they gained or encouraging words to motivate their fellow developers.
I learn everyday. Every time I get stuck, break something or make a mistake, I take a breath and remind myself it's not just me and I will become a better developer because of this incident. I try not to judge myself too harshly, but instead accept that it happened and figure out why. With every bit of knowledge I gain, I inch closer to feeling more confident and more equipped to deal with the next challenge that comes my way.
I make things and people use them in the real world (sometimes) !!
Anyone who has never made a mistake has never tried anything new.
As you can see and do most likely know, the good outweighs the bad.
Of course, I still get upset and stressed but thanks to the help of my friends and colleagues, plus a healthy dose of perspective, now I am ready to pick myself up and try again. I feel ready to try and find the positive learning from the mistake instead of dwelling on what went wrong or what people are thinking about me as a result.
I will no doubt make a mess of something else. But I know it will be ok because with every tumble, a bit more knowledge gets logged in my brain. I will approach the problem differently next time and so keep moving forwards.
So, if you are feeling stressed, worried or frustrated with your progress or that you haven’t done enough. I know that you have. I also promise you that many other people have felt what you’re feeling. It won't be long before you are telling others who come after you the exact same thing.