#Week 10 — Consolidation Week
This is the tenth week of my time during the Makers Academy course, only two more weeks to go! After the previous two weeks with the first group project, this week is more so a consolidation week where we improve our processes and undergo what a coding test is like.
Started off with a coding review that I scheduled, where it is sort of like a mock code test which is live and timed in-front of an observer (via Zoom of course). I’m presented with a product specification and expected to produce code that is aligned with the requirements, also testing on my TDD process. It is something that is really important as I need to refine my processes down, especially in a timed environment as I would be undergoing tech interviews for jobs hopefully in the near future.
As it was my first session, I was coming in with quite a lot of nerves and anxiety, even though I knew that it is just a mock observation. I always get quite anxious whenever it comes to test environments (been that way since a child, always hated exams). What I did good in the session was that I was able to get my setup complete from scratch, without anything missing at the start, for example making sure bundle was initialised properly to include the RSpec. But I could’ve done better when trying to figure out what the product specification was looking for as a solution, and improve my process when making tests. When it comes to Test Driven Development, you should make your first test pass as easy as possible, instead, I made my first test the easiest one possible, which had no relevance to what the observer asked for, not being helpful whatsoever.
There was a lot more moments that could have went better, but it was my first code review so it is not like I expected to be a perfect coder first time round, especially under observation so it was my chance to show myself what I can do at this current stage. I found the session very valuable as it showed in areas that I need to improve, on which I can spend more time working on when I complete my final project, and book more reviews to get used to the environment. My observer was very helpful and also provided resources to me so I can improve my TDD, like the notion to test the behaviour of a code, not the state.
The rest of the week was focused on completing an individual technical challenge, along with a self-assessment form to make sure that our code is a professional quality. The challenge was a bank test where the requirement was that a user can have a bank account, deposit and withdraw money from said account with dates attached, and be able to print a statement with the list of transactions in reverse chronological order.
I was quite stuck in the beginning, because I was not sure on how to print the format that was required, but then I realised that could simply hard code the header as it is simply a string, then loop the array that contains the transaction information below the header string. Managed to submit the code when I felt it was complete for a review, and the feedback I got showed that I had to rewrite the way decimals are displayed, make sure that the dates were in true reverse chronological order and to split my classes. The first two was simple to fix with some googling, but implementing dependancy injection is still an area that I need to work and improve on (I’ve mentioned my struggle with splitting classes in one of my previous posts!).
One of the coaches (thank you Alex!) actually offered to run a workshop on dependancy injection as I assume a few of us on our cohort also are not so strong with that area, which was such a helpful session and I feel definitely improved my understanding in splitting classes.
Now onto the next two weeks where I would be focused on my final project, and I can’t wait to showcase what me and my team make! Stay tuned.