Am I indecisive or can I just not decide if I’m good at deciding on things?

Learning how to learn at Makers Academy.

This week I got a “this is strange” comment on my code from my coach. I knew it was coming, after begrudgingly submitting my unfinished weekend challenge, and going through a code review with my peers, my code screamed how confused I had gotten in the process.

The funny thing is, I had it the right way to begin with.

It was a takeaway challenge. Make an app that has a menu, allows customers to view the menu, select dishes, order and receive a confirmation text.

The week prior had been a painful first lesson in class extraction, I had struggled to follow through with the logic and my mind had been completely melted. I felt there was a lot of pressure now to make the right design decisions at the beginning of this new challenge to prove I had learnt my lesson - in hindsight, I was trying to make a program with foresight. With this mindset, I took the User Stories, and without a pair to keep my in check, over-interpretted them into unnecessarily complex design decisions.

“As a customer
So that I can check if I want to order something
I would like to see a list of dishes with prices”

At first, I just made a list of dishes with prices, simple key-value pairs, just what the User Story asks for. However, soon I began to second guess myself, focusing on the a need for code that is extendable and overthinking the requirements. I decided it was best to instead put in an option to add each dish individually as an instance with attributes: name and price to create a list inside a new menu, but then managed to put that inside another array when a customer creates an order without noticing how convoluted my design was. It meant having to hard code a menu every time I wanted to run the code,. I still can’t explain it well, because I am still confused about what I did and why I did it!

On reflection, I was pent up in frustration, stressed with time, and in a rush to try out the “cool” new API thing at the end of the challenge to send a SMS to my phone. I had completely neglected my design, became sloppy with test driving my code and left my foundations crumbling.

I think I was feeling a subconscious pressure, that now that I’ve been on the course for 2 weeks, I should be finding this easier, and because I wasn’t, I began to loose my cool.

I am learning to take each step in turn, focus on the foundations, don’t become overwhelemed and try to make all the perfect decisions in the beginning, but always check back as your code builds and make sure the simple things are still functioning.
Also if you can’t finish something, focus on what you have finished and see if it shows anything you have learnt recently and find comfort in that, then work on next steps to overcome the hurdles that stopped you .
A single golf clap? Or a long standing ovation?

By clapping more or less, you can signal to us which stories really stand out.