Northcoders Week 3: Object-Oriented Pokémon ⚡
Published: 2023-12-18 08:19:28

It's that time again, another week, another blog and it's been a very different vibe this week. I have been all consumed by code and the pieces are slowly starting to fit together. 

Before I go through the week I just want to mention [Northcoders](https://northcoders.com/) and how great they have been so far. It's abundantly clear that when you are on this course, they genuinely care about your mental health and do everything they can to help ease the pressure. 
There are about _160_ people on the course spread across the three disciplines, software, cloud and data engineering. In the mornings there are group lectures on zoom which then split down to smaller 30 student classrooms. We have all been assigned into smaller groups that each have a tutor assigned and we pair-program daily and have constant access to help from all the tutors. It’s very well organised and the backend system they use is excellent. 

Learning to code in such a short time is challenging and so it's important to have this kind of supportive structure. At no point have I felt like I am being left to fend for myself, but at the same time I am being challenged to find the answers myself. 

And with that out the way, on to week 3:

## Week 3

**_Recursion
Recursion
Recursion_**

You get the gist. This week started with an introduction to recursion. The way this was dealt with on the course was clever as it took existing methods and practices we were all used to and made us rethink them with a recursive view. This is a great example of how the learning structure plays out each week. We learn a concept, use documentation and practice to solidify it for a day and then move on. At first this can be quite jarring as you don't get the opportunity to master every concept, but that's not the point here, it's just to give us a knowledge base that we can use in the future. I can confidently tell you what recursion is, and that is the point. 

Next up is **OOP** (object originated programming) and to break the mould I literally just explained, this was something that we needed to spend the rest of the week on. The reason? This is the very foundation of being a good JavaScript developer. The aim was to get us to create and use objects and build a program that uses this method of programming. Up until this point we were using functional programming which is viable of course, but now we are starting to use that logic in a new way. 👨‍💻

The next few days were keyword heavy and it was quite daunting but as they layered it up it all made sense. I expect this kind of teaching can be hard for the tutors as they go through various concepts like using `Object.create()` to explain the concept of inheritance and prototypes, but then the next day replace it with class based objects and new ways to create objects that are different from the preceding days. I do however really appreciate that they show us all the syntax s that we may come across in future roles in tech.

Also, my new favourite phrase is `Syntactic sugar` 🍬


The week culminated in a 2 day sprint all about Pokémon and using all we had learnt that week to create various objects that interacted with each other. This was a smart way to teach us as we all had some vague familiarity of Pokémon and so it brought a lot of fun to the days. We more often than not pair program on the course and this week I was with fellow student Olivia, I'm sure she won't mind me mentioning her here. We had a great time chatting and paired well. It's so refreshing to share a passion like this with someone else. We laughed a lot about our terrible knowledge about Pokémon, but what was great was having someone to chat to who had great ideas and vocalised them well. 

Also I have never said the word Rattata so many times, crying with laughter. 🐀

We actually left Friday a little frustrated as we could not solve a particular issue in our code, we had created what felt like 100s of tests in Jest, tried everything and yet could not get the last green tick. ❌ 

This does bring up an interesting facet of my brain. I really struggled to detach from this week due to how intense the week had been, albeit on a lighter subject matter (and less sad tears/financial burdens). On Friday evening I dreamt in code, I remember it clearly and it felt very matrix-like. The next day, I opened my laptop to that same problem, wrote 5 lines of code without really thinking and it fixed that issue we had. I seem to absorb and process information in my subconscious and I feel this is something I can use to my advantage.

This has kind of reassured me that while sometimes in the moment it may feel like it's all too much to overcome and learn, but with some time, my brain will sort it all out and understand it eventually.

> Always give yourself time, it's not a race.

---

And that's week 3. It was a lot more positive that week 2 and I ended up feeling great and excited about my future as a software engineer. I know I will have some very bumpy roads ahead, but what I am learning is that I am capable, and I can do this. I will just do it at my own pace..  but also, if in doubt, I just need to have a matrix themed dream and the next day all should be well. 

See you next week. I may or may not have an exam… and then Christmas! 🎄

---

As always, happy coding and you can find me on [LinkedIn](https://www.linkedin.com/in/daniel-gruitt-2a9996138/) where I should post more.