Makers Apprenticeship — Week 4
My fourth week on the Makers Bootcamp
This week we looked at Object Oriented Design principles (OOD), and built on our knowledge of TDD, which was introduced last week. Having had a bit of experience with Java through the excellent Java-specific CodeGym course, I was fortunately familiar with the OOD concepts of Encapsulation and Abstraction, which were our main focus. I had not though come across class modelling diagrams using UML, which was the topic of one of our workshops this week. The beauty of using class modelling diagrams is that it helps you to consider which classes, instance variables (also known as attributes, or state) and methods for a class may be needed before diving into the code. Learning about modelling has therefore significantly helped with my planning process for writing a program.
As per last week, we made quantifiable goals for each day of the week. My goals included:
- Reflecting on the previous week’s individual challenge and using feedback received from my pair partner in the code review to make improvements to my code.
- Being able to read, understand and review someone else’s code.
- Having met one of my goals the previous week to become more acquainted with RSpec doubles and stubs, to use them in order to test the interaction between classes in a program.
- To have a better understanding of dependency injection and use that in my individual challenge.
I am really proud of my progress for goals 3 and 4, as I was able to use doubles, stubs and dependency injection not only in my individual challenge but also in doing our pairing challenge for the week. I am also happy that I could read my pair partner’s code for their individual challenge (goal 2) and suggest ways in which it could be refactored. This skill of being able to read someone else’s code cannot be overstated as once I am in my team at Apple, I will definitely be dealing with legacy code and helping to maintain existing code bases written by somebody else.
My progress for goal 1 is ongoing…! There is just so much to try and learn and fit in during the week, in addition to important things like eating, sleeping and touching grass, (the latter of which was brought up in our retro at the end of the week), so it is difficult to go back and look at something you have already done and also try to improve it before moving on to the next topic. It means this goal will need to roll into Week 5 when hopefully I will make the time to tick it off. I also regrettably, only attended ONE meditation session for the entire week. I know I said last week that I would plan my time a little better in order to go to meditation however I absolutely must do so for Week 5. There are so many benefits to meditation and I certainly do not want to miss out.
Linked with my missing of meditation, there does have to be some acceptance on my part that it is almost impossible to do every single exercise and finish every single challenge we are given each week and there is full acknowledgement from Makers that the objective is not to do so. Undoing years and years of being conditioned to reach for that finish line is definitely not easy though. I just have to keep telling myself it is about the learning and my individual progress as a programmer. Case in point: I can already look back to when I started on 6 September and be in awe of how much I have learned and achieved in that short space of time.
So now, into Week 5, where we will be learning about The Web and how it works. I have a feeling that this video from freecodecamp will certainly come in use.