What was it like?

I cannot believe the second week is already gone, it feels like it was yesterday when had the introductory day!.

This week has felt relatively similar to the first one. We have carried on doing some exercises about testing several classes that interact together, as well as how to create doubles to be able to test each class of the system individually without relying on whether the other classes work or not. I found writing test after test after test quite tedious and boring at some points. But as soon as I got to the next chapter, involving creating the doubles and how to test a class that gets non-deterministic input from a server (basically, the input the class gets and works with will vary every time that it gets in touch with a server to ask for this information), things got very interesting once more.

Woman with computer screen projected on her.

Pairing

My view of pairing after these few days hasn’t changed much either. I have mostly paired with people that were at my same level of the contents or very slightly behind or ahead, and I have enjoyed every single one of them. I have to admit, though, that after pairing for so many hours the firs week, I have felt much less productive on my pairing sessions and had to sometimes reduce them to being sat next to each other and offer help when we were going through something more complicated. I could tell the other person was feeling a similar way as well, so luckily I didn’t feel too bad about it.

At the end of the week I asked the coach not to be paired as we were meant to go through the weekend “solo” project. But the truth is, I didn’t feel like doing it on my own but also, I didn’t have the social energy to pair with someone at random, so I ended up pairing over the weekend with one of my peers with whom I know working is easy, fun and not so energy-consuming.

This week made me realise a couple of things:

  • Pairing is a very tiring experience: Even if you are a social and extroverted being, having to give someone your full attention for relatively long periods of time and needing to think three times as hard to explain what you are doing in a way someone else can understand it can be very draining.

  • The pairing experience varies a lot depending on who you are pairing and how comfortable you feel with that person, or how much you already know each other.

  • It is extremely important to set boundaries and schedule in breaks: One of the first things my mentor told me when I spoke to her was that she learnt the hard way that pairing for only a couple of hours a day was often more than enough. I didn’t pay too much attention to this initially although made sure of making a mental note, as the first week I seemed to have the energy and motivation for it. This week, on the other hand, has taught me that I could have had more energy for my pairing sessions if I hadn’t tried to spend the whole 4 hours that we are meant to be pairing, actually pairing, and had left one or two hours to do our own thing in between. On the same line, I have realised how little breaks I was taking in general and how this can result in being unproductive.

Learning to find the best balance will be part of my goals for next week.

Feedback workshop

One of my favourite moments of this week was the workshop about giving and receiving feedback. It put on the table a lot of concepts many of us probably already knew but keep forgetting to apply, and gave us a lot of very interesting tools on how to give constructive feedback based in facts people could work with as well as taking some time to reflect on the feedback someone else gave us rather than acting straight away moved by our feelings rather than a more objective form of consciousness. I may try to write a post about this later on if I have the time, as I found it an extremely interesting topic.

Conversations with peers

It may sound a bit silly, but I think what I have enjoyed the most of this week has been having some nice chats with the people from my cohort. I was very grateful when, one evening, I was beginning to get quite bored and one of my course-mates came to me and started a conversation about travelling, that evolved into a much more deep one. I gave her advice. Me? Giving advice? I have always thought I was terrible at it and that I was only decent at listening but, actually, I am quite satisfied with what I said and how I said it. I guess I am discovering a new part of myself, or maybe all the recent event have unlocked a new level of emotional intelligence. In any case, I hope people don’t find me pedantic for it and I hope it actually helps.

Another lovely moment was when some of us decided to go for a drink after our time at the office. We ended up having some good conversations, mostly about coding and the bootcamp, but in quite a relaxed and distended way. Some of us mentioned that we were a bit disappointed at the fact that it didn’t feel like a bootcamp, just like a course. Things before and after the pandemic at Makers had changed immensely, going from an office that was full of people every day of the week to only half a cohort being there at a given time. We spoke about how great it was that people that didn’t have the possibility of living in London were still able to do the course thanks to the possibility of a fully-remote delivery.

Retrospective

The retrospective exercise of this week was similar to the previous week, although I had the feeling it didn’t lend itself so well to sharing deep experiences. Other than the several sections to write little notes on, there was also a graph with the following messages as axis: “Learned how to learn” and “Learned how to code”. We had a lot of little starts to put across the graph and the bigger we made the star, the more fun we had had in the way. I found it funny how some people rushed to make their star the biggest and put it on the top right corner of the graph. At the end of the session and although it was completely outside my nature, I spoke up in front of everybody to give some feedback from what some of my course mates and I had discussed the previous day. It felt very odd, but if we don’t let the company know what we are happy about and what could be improved, they don’t have much to work with.

Solo project

At the end of the week, we had what they called a “Solo project”. We were meant to work solo, but the truth is I didn’t feel like spending my weekend coding on my own, so one of my course-mates and I decided to work on it together, which made it a lot more fun and we learned a lot. Unfortunately, we didn’t finish it as it required more hours that we could invest over those days. But we did get all the planning done, which I was very proud about, and we wrote the tests, followed by the code, for two of the four or five classes our program involved. We did this purposefully and carefully, trying lo learn as much as possible from it, rather than trying to finish it quickly. I don’t think I would have been able to be that patient had I been working on my own, and surely I would have gotten stuck more often. Instead, we were both paying full attention and finding the small errors or a different way of approaching a problem.. Oh, the bliss of pairing with someone you team well with and have fun doing so!

What did I learn?

During this week, we carried on with our “Golden-square” exercises, which continued to teach us the basics of test-driving and how several different classes interacted between them inside a single program. On the same lines, we learnt what “doubling” and “mocking” meant in the context: We are meant to be able to test each class individually so that if a problem arises, we will know where the problem is rather than going crazy. When several classes are so closely link together, we may need to create doubles to “fake” the behaviour of one of them, so that we don’t have to use the real class in our tests. In a similar fashion, when the code we need to test require printing something to the user or taking some input, we will need to “mock” this interaction. I found these topics very cool and interesting to learn, and I am sure we will be giving them some more use in the future.

Going back to the goals from last week:

  • I think I have improved my knowledge on how to TDD a program and gotten more comfortable doing so.
  • We have not had much chance to actually program during the past week, and when we got to the Solo project I felt a bit rusty, but I managed to solve the problems we were presented with.

  • I am improving my debugging and, especially, finding it easier to work with the errors I get. Now instead of feeling like it’s a sign of something bad, I take it as if the computer was giving me feedback on my learning process and my code. Every time an error changes, it’s a little victory!

  • I also feel happier with the design process. Doing part of the solo project over the weekend with someone else made me take several hours on doing the planning, which I probably wouldn’t have done on my own. The result was a very detailed diagram of how our program would work, and although it wasn’t perfect, it taught us a lot.

  • I don’t thin I have been as good with refactoring as I would have liked lately, although I got some feedback from a course-mate I sent some of my code to as they were a bit stuck and they mentioned to someone else that they found my code very simple and easy to read. This made me feel very good, even though at the time I would have liked to help in a different way, maybe pairing over their own code, but I was feeling quite tired.

  • My approach to problems has been methodical most of the time

  • In terms of wellbeing, I have had a good week, I have been managing decent sleep and stayed motivated. I feel like I can learn things by myself or with some help from my peers.