DEV Community

Hannah Cross
Hannah Cross

Posted on

How learning to code is building my resilience, one mistake at a time

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.

Brené Brown

The tough things

  • 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.

The awesome 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.
Albert Einstein

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.

Hannah xxx

Top comments (1)

fidelve profile image

One of the things that I had to learn pretty early on while learning how to code, is to be comfortable with failure, well actually not being comfortable but instead realizing that failure is part of the process and overcome the fear of it.

That's an important lesson that you will learn in many different aspects of your life but I think that in my case the constant process of not knowing how to do something, spending countless hours looking for a solution and feeling tired of being in front of the computer, is something that accelerated the process.

This was an unexpected lesson that I didn't knew I would have to learn (the hard way) when I started to learn how to code.