This post is part of a series about my time at the Recurse Center, a self-directed, community-driven educational retreat for programmers.

Want to become a better programmer? Join the Recurse Center!



A Harder Week

This week was off to a good start, but unfortunately on Wednesday I was caught off-guard by a stomach bug that disrupted my flow for the rest of the week. I worked about 16 hours less in week 1 than in week 0. But I think this is okay. I listened to my body and gave it the rest that it required. And despite this disruption, I will still able to fit in a good amount of fun and learning!

Adventures in Brooklyn

I spent the majority of week 1 staying with my friend in Brooklyn. It was unusually warm given the time of year so I was able to fit in a number of runs in-between my work at RC. (I even ran by RC’s office space on Bridge Street!) Fitting in this much exercise reminded how important it is to take breaks from the computer and get some physical activity. It helped my mood and helped me better focus on my coding when I did get back to the computer.

I also got to explore Brooklyn and Chinatown in Manhattan. I’m considering moving to NYC after I complete my batch, so it was amazing to get the opportunity to walk around the city and see if I could really feel myself living there. I still have some exploring to do. The city is very fast paced, and sometimes I could feel the New York minutes ticking away faster than I expected. Although I enjoyed it at times, I wondered if I could keep up with this pace in the long-run. I’m planning a trip to California soon, so hopefully this will let me compare and contrast the two locales.

Learning About Learning

I spoke with another Recurser about an event they had hosted during week 0 that I had unfortunately missed. It was an event to fix a bug on the open source software RC created to handle the scheduling of the weekly presentations event. I was interested in helping squash some other bugs that they had found, since one of my goals is to learn how to contribute to open source software.

I came into the Zoom call expecting to discuss what bugs would be allocated to me and a time-frame for fixing them. However, the call turned into a discussion on learning about learning and how to help teach others become better software engineers. I really appreciated the other Recurser’s viewpoints and saw that I had been looking at this opportunity too narrowly. What I saw as a way to contribute code to an open source project could actually serve as a learning opportunity for me and other Recursers. Instead of coding on my own, I could pair with others and help show them how to contribute code to a project. This feels like a great way to not only contribute to an open source project, but also help teach others with less experience what it’s like to work on software in the real world.

The other Recurser summarized it beautifully:

This would involve practicing a variety of skills that are useful when contributing to real software projects:

  • Becoming acquainted with an unfamiliar codebase
  • Cloning the app and building it on your machine
  • Reproducing the issue
  • Debugging it
  • Making a fix
  • Testing it
  • Creating a pull request

In the next few weeks, we are planning on hosting another event and squashing some bugs together as a group.

A Successful Pairing

I revisited the Game of Life from week 0 with a new pairing partner. Together, we used the Python package curses to modify the code from last time to dynamically update the terminal output. Now, instead of printing the game board on a new terminal line each time there is an update, the game board prints to the terminal once and then updates in-place! You can check out the pull request here.

Although this was a small change, I am proud that we were able to complete this in less than an hour. It always feels good to pair with others so I am looking forward to continuing this each week.

Brushing Up On Some Algorithms

Lastly, I continued working through Complete Intro to CS.

This week, I learned about the below algorithms.

Recap

Overall, despite some setbacks, my second week was still productive. In my third week, I want to finish as much of Complete Intro to CS as possible. Also, some parts I ordered for one of my hardware projects arrived and I intend to spend some time soldering and assembling some electrical components.