My last two weeks have been extremely fun and productive. I'm hoping that I can keep up the pace at Hack Reactor while continuing to update everyone on my progress.
Here are my plans for posting on a regular basis:
- Weekly recaps: Mostly non-technical.
- Occasional technical topics, on a current sprint.
- Occasional non-technical posts on Hack Reactor-related topics.
The First Week
Our first week at Hack Reactor actually happened two weeks ago -- I'm writing this during the first day of the third week. Yes, there will be a recap post of the second week shortly after this.
I was, and continue to be completely blown away by the environment here. Everyone here is very friendly, knowledgable, and welcoming. We have so many people from different walks of life with different areas of expertise. What's amazing about this mixture of diversity in our cohorts is that everyone is here to learn programming the best they can. We all have this similar end goal of not just learning to code, but to become great engineers together.
The staff at Hack Reactor is nothing short of some of the most humble, intelligent, and resourceful instructors and support staff I have had the pleasure of meeting. In the first week, we mainly received lectures from two staff members:
Fred, our lead instructor for basically every sprint we've had so far. Fred brings a wealth of knowledge and wisdom to the Hack Reactor experience. Solution lectures not only seem easy to understand, but I don't think I've ever left one of them anywhere short of being unstuck.
Marcus, one of the founders of Hack Reactor, for most (if not all) of the non-technical talks at Hack Reactor. Marcus' lectures are very engaging and fun to be a part of. One of the last lectures in the first week he gave us, on "How To Succeed at Hack Reactor", was one of the best motivational talks I have experienced. In my limited opinion, it's probably TED-worthy.
From my initial experience at Hack Reactor, I must say that I am very thrilled to be part of this community. I am here for at least eleven hours a day and I honestly would not be anywhere else.
There's something in the air about productivity at Hack Reactor. We have this giant, open space with pairing stations, tables, and camp chairs in the main lecture area that just happen to work really well. Sunlight shines in through the blinds during the day, making sure we don't lose track of time.
I'm usually a very bad procrastinator. The office in my house is definitely a no-productivity-zone more than 90% of the time, which can be very frustrating. I don't think it's possible for me to procrastinate at Hack Reactor, even if I tried (and yes, I have attempted to on my lunch breaks before). It just isn't possible -- there's so much to do and work on that I'm just too excited to do anything else.
Before we go any further, I want to stress that the first week is jam-packed full of lectures. I believe there were a total of thirty-two lectures during the first week. It's a lot of information to take in! A good portion of the lectures were nontechnical and others were reviews. This was a very good way to ease us in to the program. We received a lot of information, but remained confident that we could continue tackling the work.
On the first day, we met members of our own cohort as well as the entire staff of Hack Reactor. Our first technical lecture was a review of the recursion part of our pre-course work. After that, we broke into pairs to tackle a refactor of this exercise. We also tackled a refactor of our Underscore implementation pre-course work on the same day.
Pair Programming and Sprints
Pair programming is a very important part of Hack Reactor's curriculum. We are expected to pair up with someone else (likely someone we have not paired with in the past) for every sprint we cover during the program.
What is a sprint? It's a multiple-day (usually two) learning process on a specific concept or technology. The sprints we have gone through have so far covered one to two different concepts at a time.
When pairing, the concept is that both members of the pair work together to complete the assignment. The way this is done is by having one member of the pair drive the machine, typing on the keyboard into the text editor, while the other person navigates by verbally communicating what needs to be done. Every few minutes, the pairs should switch roles.
The intention is that most pairs will not be even. One person will usually be more senior in experience than the other (the junior in this sense). An ideal scenario is where one member is only slightly senior/junior than the other, though that may not always be the case. The big benefits to pair programming are, in my obsevation:
- Communication between the pair improves understanding of the material being covered.
- Both sides will learn how the other tackles an issue, which hopefully leads to a better understanding on the different ways to come to a conclusion with the same problems.
- By working together, either one or both sides of the pair will get a lot out of the journey of figuring out the problem, not just the end result.
Social Night, as I understand it, happens every Saturday after instruction is over. The intention is to get to know your sixth and eighth floor cohorts better while doing something fun together. In the first week, it was an ice cream social. Yum!
The way Hack Reactor's cohorts are currently structured is this: There are three floors that comprise of the school, from six through eight. The sixth and eight floors each house two cohorts, while the seventh floor is used for group lectures and staff space.
On each of the sixth and eighth floor is a Junior cohort (the newest group of students just entering Hack Reactor), as well as a Senior cohort (the group that started eight weeks* prior to the Juniors).
*Not counting solo week
The two floors meet up for group lectures (this way, the information received is consistent), but work only with their cohorts during Toy Problems (I'll get into those in my second week recap), sprints, and tapouts.
The first week at Hack Reactor is full of lectures, Computer Science fundamentals, and meeting lots of new people. Next week is when we start moving out of our comfort zone, so it's going to be interesting to see how it goes.