Bootcamp Diaries - Week 4 - Fundamentals Part 3

Bootcamp Diaries - Week 4 - Fundamentals Part 3

2020, Sep 06    

Monday

It was bank holiday Monday so we all had the day off from bootcamp. As it’s my birthday this week, my boyfriend took me out for ramen and I had a day off from coding. I feel kind of guilty when I’m not coding in my free time now though!

Tuesday

Today we started learning about asynchronous JavaScript and callback functions. I’d seen these briefly during my time studying before bootcamp, but hadn’t used them in any projects myself, so it was mostly all new information.

After the lecture, we were paired up and given some exercises to work on, which involved getting information about cats and their owners from an imaginary server.

computer cat

I think that the tasks made asynchronous JavaScript seem more complicated than it really is…maybe…but we spent a lot of time just figuring out how to get specific information (like a filtereed array of cat names or pictures) but doing so with callback functions (sometimes multiple!) which I really struggle with. That might not sound very hard but it was confusing in the context that we had to do it in and the tests that we had to follow made it even more confusing since we didn’t write them. I didn’t feel too great after today tbh…I spent a bit of time watching some videos about async functions, but I hope things make more sense tomorrow!

Wednesday

We were carrying on with the asynchronous pair-programming task today, but first we had a lecture. We learned about “Callback Hell” aka the “Pyramid of Doom”, which is …about as fun as it sounds lol.

For the exercises, my partner and I agreed to just go over yesterday’s work again from scratch to check our understanding, before we tried to work on anything new. This did actually help, as I found that working through them this time, I was able to explain what most of the code was doing…better than yesterday anyway. We didn’t get everything finished, but I felt better than I did yesterday as I did feel like I was gaining a better understanding now. I try not to mention names so I don’t embarass anyone, but my buddy seemed to have a pretty good understanding…so he went into teacher mode with me today and really tested me to make sure I understood what we were doing and got me to talk through it. He actually really helped me a lot!

Thursday

It was my birthday today, but I was also in for a fun day of learning about how the internet works!

Jen from IT Crowd introducing 'the internet'

We had our morning code kata hour as usual, but then we had about an hour of self-study watching some Youtube videos about the internet. This was quite a nice little break actually and the videos were interesting.

In the following lecture we learned about how sending data over the internet has a client server relationship, which takes the form of a request and response. We learned how a request to a url involves a CRUD method:

  • Create
  • Read
  • Update
  • Delete

These are the 4 basic types of functionalities that models should provide in an API, aand we were basically going to build an API from scratch over the next couple of days.

We would mostly be making GET requests to acquire information, as we needed to do things like find usernames of people, The responses would be a body of information that we needed to interpret in the correct way, as we learnt that Javascript values must be stringified to be sent and parsed once received.

We were paired-up and began the first part of this 2-day sprint! The initial instruction was to create the server and request information that would provide us with the tasks that we needed to do next. This instruction was purposefully vague! Even though we had discussed how to do this in the lecture, we still struggled at first, but we figured it out! Then the further instructions involved having to get certain bits of information about people from their profiles which were stored in a JSON file. We wrote our code in VS Code and then accessed our localhost using a program call Insomnia; this is were we would be able to see the information that we were requesting from the server.

Wow today was intense! Me and my buddy both struggled a little, but we have more time to work on it tomorrow, so we’ll see how we get on then. Tonight though, I finished at 5pm and then went for a couple of birthday drinks.

Friday

I was good last night and did only have a couple of drinks, so I felt ok this morning. It’s also the last day of the Fundamentals block today! From next week, we move onto Back-End.

After kata hour, we had the first lecture of the day, which was more information about servers using the http module in node. We learned more about the request and response object and the various callback functions involved. We also learned more about how to get and interpret the received information correctly.

After the lecture, we had some more time again to work on our pair-programming project, trying work out how to use the GET method to get specific infomration from different urls. It was still really hard!

After lunch we had a lecture about the MVC (Model, View, Controller) pattern:

MVC diagram

We learned about how we could refactor our code to follow this pattern and make it much easier to read and interact with. My buddy and I didn’t really get much chance to do this because we were still trying to work out how to get some of the information from before. However, the tutors advised us that we would be doing much more of this going forwards so we would get more practice. I decided I wouldn’t worry too much about trying to practice all of this stuff at the weekend, but I would maybe watch some more videos on it.

Wowo I can’t believe we’ve finished Fundamentals already! I’m anticipating that back-end might be the most difficult section for me, as most of it is stuff I haven’t encountered before; I mostly focused on front-end during my learning at home. But, we shall see! I’m pretty busy sorting some stuff out this weekend, so I probably won’t write a diary for Saturday and Sunday.

See you next week!