Makers Week 1: My Makers Academia
Tags: makers, tdd, rspec
Published: 2019-11-17 15:28:53

Day 1

So the first day we didn't do any coding, it was more like an orientation. They talked us through the basics like the slack groups and the code of conduct. The slack groups were for things like rock climbing and yoga, which  I'm eager to join. They emphasized the code of conduct mainly to promote a safe learning environment although after meeting the cohort I don't think that'll be a problem. 

We learned about how important looking after your mind and body are. We also learned about techniques of maintaining a healthy mind through meditation which was relaxing. But also about looking after your body by getting the necessary sleep. These are important because you can't do your best if you're distracted or tired. 

Lastly, we went through what we'd be doing in the upcoming weeks, I'm looking forward to *JavaScript(week 5)* and the *Team Project(week 6)* mainly cause I'm eager to create something from scratch.

Day 2

We started the day off with a workshop on setting goals and knowing when we've reached the goals. This is important because it gets us to set goals and It makes us think about what we want to accomplish specifically. But also by making us consider what we want the result to be it gets us thinking in a *"TDD(Test Driven Development)"* mindset. First, we write the test our goals should pass and then we see what we have to do. 

We were also looking at *"bugs"* and *"errors"* today, which are not the same thing. Bugs are when your code is not working as expected. Some examples of would be an *"unexpected result"* or an *"infinite loop"*. Whereas errors are different from an error which will break your code and stop it from working. They will also give an *"error message"*. There's two types of error messages, *"syntax"* and *"run time"*. A syntax error occurs as the name suggest when there is a fault with your syntax when you leave out a comma or *“end”* keyword. A run time error is an that occurs while the program is running when you try to call a variable without defining it.

The last thing we got to do was start our weekly project *"boris_bikes"*, so far we were getting prepared to code by going over things like the *"user stories"* and *"domain model"*, which set out the goals for what the final project should do so its a like a plan.

Day 3

The careers team came to meet us today and talk us through what they do and how they can help us get a job they work with both larger companies (over 1000 people) as well as smaller companies(less than 1000) people. They're able to point you towards potential employers and even offer guidance through the careers coach. We also set goals for the day as we do every day which is great because it helps me have something to work towards. It's something I've done before but not in such a small scale this makes life a little easier because I'm not just working aimlessly.

After that, we were allowed to work on whatever we wanted I choose to look into RSpec for a while to sharpen my skills. Although I think I could still use some more practice to wrap my head around it and we will be using it a lot. Then we got to do some meditation which helped me clear my head.

This leads us onto the evening which is pair-programming time!!! We got off to a great start a lot of error, but apparently, that's a good this in TDD. Means we have to look at the error messages and figure out what's wrong which ties into our previous lesson on debugging. This is called spiral learn which is part of Makers teaching method. I like this way of learning because you usually get a chance to revisit and reinforce these lessons. We got onto the RSpec in this pairing session so that was fun because it firmly yanked me out of my comfort zone. I think I spend a lot of time researching ways to complete the tasks and testing they out but that's part of the struggle, and honestly, the struggle makes the victory more rewarding!

Day 4

As I'm sure you've realised by now the mornings start with goal setting so we have something to work towards. But we also had a workshop on TDD(Test Driven Development) this morning which was helpful. It covered a lot of things we had been doing in pair programming and cleared up a few things. We discussed why TDD is useful. It helps us break down the problem when you know what you want each section to do it makes it easier to work towards. It serves as documentation letting us know what each method should be doing. And it also acts as a safety net if change anything down the line it'll catch potential errors early on. We also when through a simple example for the TDD process which helped me a lot because I understand things better with examples.

After the workshop, I was prepared for the pairing because a few things were made a little clearer. Plus I think I'm getting a bit more used to pairing. It was a little strange since I only ever worked on my own so it was odd just sitting back and let the *"driver"* try a few things before giving advice. I think that's why I got a bit more done today. It's also quite beneficial to have different opinions every day because they might be doing it differently to you. This lets you consider multiple ways of solving a problem.

Day 5

The last day started the same as all the others with goal setting and then we were given a chance to work on anything of our choice so I was working on a side project me and a couple of friends from my cohort started which was frustrating cause every time I got something working a new bug would pop up but eventually I got it working.

there was also a talk held by a CTO today for *"echo"* which is a start-up for managing your medication and getting your prescriptions delivered. He spoke about some of the problems you might face in the workplace. He spoke about the importance of knowing why you're adding something to an app or website. Because if you don't know why you need it you might implement it wrong or poorly. He also spoke about how not every problem in development can be solved with an app. He used *"echo"* as an example because it's all well and good making an app for a service like this but when you consider a high number of elderly people are not tech-savvy and they'd be your target audience it doesn't make a lot of sense to invest all your time in it.

Lastly the same as every other day we ended the day with pairing. A new partner every day keeps me on my toes which I like you never get too comfortable. It was also near the end of the week so we were getting to the more difficult challenges. Which I probably would have struggled with a lot more on my own. But because my partner was further ahead of me he was able to lead me in the right direction without explicitly telling me what to do. This was also beneficial for my partner because it means they get to revise and reinforce what they had already done so we both benefit.

Summary

Ultimately I've found doing things in this new TDD method and working with someone extremely beneficial. Mainly because it will raise any problems as they happen with the test and you can bounce ideas off your partner. The workshops are always relevant to what we are doing at the moment and then we can use that knowledge in the pair programming. The debugging workshop was particularly useful this week it helped me sort out a few annoying bugs. For next week I might talk more about the pairing and the projects more exclusively I think it might be more interesting!!