Recurse Center: Part 2 of 2

Several weeks have passed since the end of my 12 week batch at the Recurse Center, and I spent some time travelling around and relaxing. I’ve finally gotten around to typing up reflections for the second half of my time at RC.

Check out my reflections from the first half of my batch here!

Second Half

My First Pull Request!

I finally made my first real pull request on someone else’s project. I discovered a bug for the template I use for my blog where a dynamic URL wasn’t generating properly. I scoured the code for the template and found the section containing the bug, but couldn’t figure out what was causing it. After reading Hugo’s documentation, I discovered that most keys are camelCase, but site-level configuration keys are all lowercase. The code written in camelCase was causing the link not to recognize the variable and update properly. As a result, the bug ended up being a case issue for one letter. 😆 I wrote up my findings, linked to the documentation, made the change, and sent through my pull request. The repo owner approved and merged it the next day! Even though it was small, it felt good to solve a real bug!

Web Development

I’m having a blast learning web development. I’m so happy I started exploring this space and have begun focusing on it full time.

I finished CS50 Beyond which gave a great super-speed intro to building a website. I followed a few tutorials on YouTube and coded along with their applications building a to do list, quiz app, flashcards, and a couple other small projects.

I am following The Odin Project and finished the “foundations” course they have before you jump into full-stack development. My first solo project was building an Etch-a-Sketch which taught me a ton. I wrote a blog post on what I learned during this project. Next, I built a calculator which works with your keyboard as well as the on screen buttons! My biggest struggle with both of these projects was using CSS Grid and I spent a ton of time learning how this worked. I definitely need to spend a lot more time learning the magic of CSS, but in the meantime, I think I’m going to pick up a framework so I can focus on learning more JavaScript and venture into React!

From here, I’m going to start using TypeScript and learning React to build my future applications. I love the control that TypeScript adds and how it helps structure my code.

I started learning about REST APIs and fetch requests. I plan on making a project utilizing a Rest API as my next step to build a front-end only site before venturing into incorporating a back-end.

I totally lost track of my original goal of creating a Plant Tracking tool. This will be a big undertaking and something I want to build right. As a result, I decided to work on smaller projects first and I’ll come back to this when I’m ready. I built the back-end with PostgreSQL/Flask/Python already and am debating if I want to use this or start fresh with TypeScript and Node since I’ve gained so much experience since this was first written. 🤔

Programming Launguages

A study group formed for a class I’d been meaning to take for some time: Coursera’s Programming Languages. This was the perfect opportunity for me to dive in with the accountability of my batchmates! I highly recommend this course and have learned so much since I started. I had no prior exposure to functional programming and it has been really difficult for me to wrap my brain around how to solve problems this way. The course teaches the concepts of programming languages, starting with Standard ML. I’ve finally started to get the hang of writing functions recursively. I also now have a much better understanding of first class functions and closures. I learned about currying! The class inspired me to dive deep into functional programming in JavaScript. I’ve found a bunch of great articles and have started to write more functional JavaScript as a result.

I’m 4 weeks into the 9 week course. Soon, we’ll venture into learning Racket and Ruby. I’m excited to have exposure to new languages and understanding programming languages at a deeper conceptual level!

Continuous Improvement

I have continued to make tons of improvement working in my terminal and with Vim. I am still super interested in switching over to Vim as my IDE. The amount of effort it will take verses payoff doesn’t quite align with my goals yet - but I’m sure I’ll end up tackling this sometime soon.

Hackathon

I participated in my first Hackathon! It was a blast and you can read more about it here.

Community Involvement

One of my primary goals in teaching myself how to program is to volunteer in my community while working on something I find intellectually challenging.

I’ve become involved in the Code for Durham group and plan to work on some projects with them. They have a number of community projects that need web development work. If this is something that interests you, I highly recommend you see if there’s a local Code for America chapter in your area!

I also reached out to the Mountains-to-Sea trail organization which is responsible for creating and maintaining a trail that runs end-to-end through North Carolina and is 1175 miles long! I asked if they could use any help from a new programmer and they said yes! I’ve been in contact with the person who collects all the trail data and am exploring potential automation opportunities for some of their pain points. It’s been a lot of fun working on a project that will have some real world impact. I’ve gone down quite the rabbit hole of learning about GPS data and exploring geo-libraries which I never expected!

Reflections

I finally feel like I’m starting to understand this world. The topics thrown around on Zulip no longer feel like they’re in another language. I’m gaining a general idea of the things I know and the things I don’t. I’m gaining more confidence in the track I’m going down learning web development. There are so many spaces to explore and it can be so overwhelming! I’m getting comfortable learning that I’ll never be able to understand everything, and that’s okay.

I’m still struggling to put myself out there as much as I’d like. Taking up space and asking for help has always been difficult for me. I need to learn that I’m not “wasting” other people’s time if they know more than me when they offer to help. I will continue to work on this and increase my social involvement. I didn’t pair program much and I think there is a lot of potential room for growth here. I will keep this in mind and work towards improving these skills. I thrive on the energy of the community and love lurking on calls or Zulip threads and have learned so much this way.

As someone who is still very new to programming, I highly recommend joining RC. The community is so supportive. Being in this environment every day provides a lot of exposure to things that may not have otherwise crossed your path. I was scared that being so new would be an issue, but that wasn’t the case.

Looking Ahead

My plans post batch are to continue learning web development. My list of project ideas continues to grow, so I plan to put some time into knocking a few of these out. I struggle to settle on an idea, so I plan to just pick one and stick with it until it’s complete.

Since it’s Spring here, I’ll use my time off from work to capitalize on the gorgeous weather. I want to take more camping trips then ever before this year! I want to make sure I spend time outside every day. I want to make sure I’m paying attention to my body’s signals and step away from the computer when I need breaks. Learning to balance how to care for myself while learning to program full time is a challenge that I plan to put most of my focus and effort towards over the next few months.

I’ve thought long and hard about extending my RC batch but have decided that I need to take a few months to put me first. I will be doing some self-reflecting and learning how to take care of myself and my mental health. Once I’m confident I’ve improved my skills to balance my work and personal needs, I plan on completing another batch! My focus then will be to become job-ready and utilize RC’s career services to help me make my career transition!

RC was so much fun and helpful for me in my programming journey. Despite not being actively in a batch, I plan to be involved nearly as much as I was before (with a few camping excursions in between 😄). I love the community and can’t wait to continue to learn with them and share my journey along the way.