Bootcamp Diaries - Week 2 - Fundamentals

Bootcamp Diaries - Week 2 - Fundamentals

2020, Aug 23    

Monday

I didn’t sleep well last night. You know those dreams when you are aware that you are dreaming, and you’re neither really awake or asleep…yea. I was dreaming about trying to do something in the VS Code terminal, but it wasn’t working…probably because it was a dream lol. Yes…I sleep code now.

I grabbed a Starbucks on the way in today as I felt like I needed it. The next three weeks of bootcamp are Fundamentals, which covers quiet a large amount of topics and I think it’s gonna be pretty intense! We started off with code kata hour (a code kata is basically a problem-solving exercise that you need to solve with code) to wake ourselves up! I managed to solve one about DNA pairing, so that was a good start. Then we had a lecture on the main topic of the day, introducing us to test-driven development - basically how to write tests to aid us with writing our code. We were also pair-programming to solve some code problems, which meant that one person would be the navigator (taking the lead and giving the instructions), whilst the other person was the driver (writing the code and bouncing ideas off navigator). Then we would swap roles. I was really-nervous about pair-programming, as I was worried about feeling awkward or looking stupid if I didn’t know the answers to things. We got put into pairs and worked together via Zoom, which allowed us to share our screens with each other. Previously, pair-programming would be done sitting side-by-side in the classroom, but Zoom makes it possible to do it even though most people are remote now, due to the pandemic. We struggled at times to work out the correct way to solve things, but overall it went ok and we did manage to solve a couple of challenges. It’s a really different experience when you have to discuss you code with someone else, but I think I’ve definitely taken something away from the experience. Seems like we’ll be pair programming a lot through the rest of bootcamp now, so I think I’ll get to experience working with lots of different people.

My brain was pretty fried after today. I’ve also been doing a low-carb diet to try and shift lockdown weight, but tonight I needed pasta.

Tuesday

I slept much better last night; no dreams of code keeping me awake anyway! It was raining this morning and although I had an umbrella, my legs got pretty soaked on the way in. Imagine me trying to life my leg high enough to dry it under a hand dryer…yea. It seemed like a couple of the guys decided to work from home today, so there were fewer of us in today too. I might consider doing that if the rain is really bad again…I am more productive in the classroom, but it’s good that we have the option.

Our bootcamp day starts at 8:30am and we spend this time having a kata hour. I’ve started writing tests with Jest for all the kata challenges and I’m quite enjoying the process now actually. I hadn’t really learned anything about writing tests before when I was self-teaching at home, but I’m already doing it in week 2 of bootcamp!

We had only one lecture today which was mostly about the call stack. This was a bit confusing at first, but we learned how to visualise how code is processed with some diagrams.

The rest of the day was continuing our pair-programming from yesterday. Luckily it wasn’t as daunting today, since I was working with the same partner as yesterday. We both had quite a few things we struggled with and jointly asked the tutors lots of questions. I felt a bad for asking so many questions at one point, but all the tutors were really helpful today and ensured our understanding of things. My partner and I both had the chance to be driver and navigator again. Unfortunately I couldn’t solve the challenge when I was navigator, but did learn a lot of things about testing during the process!

Quite tired now. I was thinking about writing some more tests for homework, but I’ve ended up watching Netflix. Probably best to rest my brain though!

Wednesday

Another night of basically no sleep because my brain wouldn’t turn itself off. I got up at my usual time of 6am though and made some strong coffee. Upon walking to the tram stop, it seemed that the tram was delayed with no indication of how long for. I decided to turn round and just work from home today. The bootcamp is all delivered remotely via Zoom due to COVID, so we don’t actually need to be on campus, although I do like to be there in order to separate studying time from my personal time.

So back home I went…the cat seemed happy that I was back already! Luckily I have a desk and space to work at home, so I got myself settled and started some work before our first lecture at 9:30. The first lecture of the day was all about value vs reference, and the difference between primitive and non-primitive data types. We then started on a solo sprint, working on some questions related to the lecture and exercises on writing purer functions.

After lunch, we had another lecture which was about scope and hoisting. I felt pretty good about my understanding of this; I was familiar with a lot of it from when I was studying by myself before bootcamp. Following this, we carried on with our solo sprint until the end of the day. I needed to ask for help with solving some of the challenges, but that was fine as it helped me to understand it a lot better.

5pm came around and since I’d gained an extra hour by not having to travel home, I decided to carry on working for a while as I still had sprint challenges to do…7pm rolled around and I realised I needed to stop! Today was really a whirlwind day, I feel like it just flew by.

Thursday

I decided to work from home again today as I haven’t been sleeping well this week and I needed some extra rest. Not travelling in to town gives me an extra hour in the morning, which definitely helped today!

I enjoyed my coffee and kata hour, then the first lecture of the day was about JavaScript closure. It was a confusing topic when we started talking about functions inside other functions, but I asked as many questions as I needed until I understood. Also I’m really glad I decided to upgrade my internet to fibre recently; touch wood I haven’t have any connectivity issues during Zoom lectures, but my old internet probably couldn’t have handled it.

We finished the lecture around midday, then for the rest of the day it was pair-programming; the first day of a two-day sprint. The tutors pair us with a new partner for each pair-programming sprint, so we get to socialise with different people and see what we can learn from each other. I always feel a bit of social anxiety before working with someone new, but it goes away once we become busy with the work. We had to write functions based on the Ramda library, which wasn’t as complicated as it sounds. More importantly, we were getting more practice with writing tests and running them with Jest. We seemed to do pretty well and didn’t get stuck on any problems for very long.

Finally we rounded off the day with a half an hour Zoom meeting in our tutor groups. It was a good time to discuss what went well and how we felt after today. Although the lecture and amount of pair-programming work was pretty intense, I felt like I’d learned a lot and felt pretty good about that.

Once the day was done, I decided to rest my brain and not to do any extra work…so I played Dragon Quest XI for a while until bed.

Friday

I decided to work from home again today for convenience, although I don’t plan to do this all the time. While I drank my strong coffee, I worked on the same code kata that I’d been doing for the last two mornings. It was working now…not perfect…but I decided not to spend any more time on it after today, as really we’re supposed to tackle a new challenge every day.

Today’s lecture was a heavy one. We would be using Jest for our testing as usual, but we were introduced to the concept of using spies, to test higher order functions.

Mock functions are also known as “spies”, because they let you spy on the behavior of a function that is called indirectly by some other code, rather than only testing the output. You can create a mock function with jest.fn(). If no implementation is given, the mock function will return undefined when invoked. -Jest documentation

Most other people on the Zoom lecture seemed to have the same puzzled expression as I did at first. I think that higher order functions can be complicated to understand as it is, but figuring out how to use this new way of testing them (and why???) was pretty confusing. We were told that testing would slow us down at first though, and that it would make more sense as we went along.

I went away from the lecture still a bit unsure, but hoping it would click more after doing something more practical. The rest of our day was a pair-programming sprint; basically it was working on challenges together, in order to implement what we’d just learnt about. I really hoped that my partner had a better idea of it than me at this point! We were all working with the same partners as yesterday, so we got on a Zoom call with each other and opened up our work we’d started yesterday. Today’s goal was mainly figuring out how to write the tests efficiently, rather than solving a complex coding problem. It was still tricky, but talking it through together helped me to understand how to write the tests and how thy worked. Afterwards, I did feel like a had a better understanding than before. A lecture alone isn’t enough, but doing the practical work afterwards really helps.

At 16:30, we ended the day with a Zoom call in our tutor groups so we could talk about how the day went. It was requested that someone share their code (we use screen share on Zoom) so we could all discuss it, so I volunteered as I wanted to build my confidence with discussing my code. The constructive feedback I got from everyone was actually really useful and there were lots of things that I could improve.

It was definitely time for a rest after that intensive day, plus it was Friday, so I logged off and poured myself a drink!

The Weekend

I had a break from everything this weekend really, pretty much just played games and didn’t think about code! Hopefully I’ll be feeling all fresh for Monday now.