A Technical Assistant on our immersive course, Finn recalls lessons learned during her time here.
I’m a recovering perfectionist. From an early age on, I learned to be very hard on myself and to strive for perfection.
Needless to say, I was disappointed most of the time because I was essentially chasing an illusion.
Unsurprisingly, when I started the 16-week-course at CodeClan I was faced with my overactive perfectionism yet again.
There are a bunch of week-long projects students work on during their time at CodeClan. The first one happens after four weeks of learning Ruby – just four weeks after writing their first line of code ever.
The perfect project
For my project, I chose to write an inventory app for a shop. Of course, my overzealous mind tricked me into thinking I had to deliver a usable and complete product by the end of the week.
I wanted to produce an app that had all the necessary functionality for a shop owner to keep stock and on top of that, also provide them with a good user experience.
And obviously, it had to look good too, be easy to use and built with good, clean code. To sum it up: it had to be perfect.
As the week went on, I felt like I was running out of time to implement all the features and to go over my code to clean it up. By the end of the week, I was frazzled and unhappy with what I had achieved. It was not enough for my own high standards.
But after some good feedback from my instructors and some soul-searching on my part, I slowly started to realise that in just one week I had gotten a lot done for someone who’d only learned to code a few weeks earlier.
I began to think about realistic expectations.
As the second project approached, I was beginning to get anxious again. However, I decided to learn from my previous experience and dialled back my expectations as I built my Fantasy Zoo Manager using Java.
I quickly decided against doing a graphical user interface – better to not even open that can of worms. Instead I focused on learning more about Java specifically with my project in mind. I was still pushing myself to write the best Fantasy Zoo Manager I could create but I wasn’t measuring myself against external parameters anymore.
I was only trying to write the best code I could write at this stage.
And there was my lightbulb moment.
I realised that even if I simply felt more comfortable with Java than I had at the beginning of the project, I would already have succeeded. I still pushed myself hard and I’m very proud of actually achieving a 100% code coverage: every line of code I’d written was being tested and verified.
But aside from all the stuff I learned about Java, the biggest lesson was to not stress about being perfect: so what if I wouldn’t have something with a flashy interface to show off at the end of the week?
Go your own way
By the time the final project came along, I had relaxed considerably. I briefly considered using technology we had been introduced to during the course and building something with that but I was in a growth mindset. I wanted to learn something new.
So I made the choice to write an app in Go.
For a whole week, I tried to understand how this new language worked and how I could use it to get my app to do things. But with one day to go before the final presentations, I’d got nowhere.
There was literally nothing to show in a presentation and I had to admit defeat.
Only it didn’t feel like defeat! I was actually quite happy with what I had achieved that week. I’d learned a lot about a new programming language – just not enough to actually write the complicated app I was trying to write.
But that is completely fine! Nobody would ever expect me to write a whole app in a language I’d only started learning that same week – so why should I expect that of myself?
Do I still sometimes go too hard on myself? Yes, of course. But now when that happens, I just remember to not expect more of myself than I would of anyone else in my situation and all is well.
Finn is a Technical Assistant at CodeClan Edinburgh.