After working as a software engineer for 15 years, Fred Zirdung joined Hack Reactor when it launched in San Francisco in 2012. And while he had always wanted to teach, he didn’t realize just how much he would learn by teaching at Hack Reactor. He’s now the Lead Instructor and in charge of developing the curriculum and lecture materials. Fred tells us about how he taught himself to code, what makes a great bootcamp instructor, and the recent additions of ES6 and React into the Hack Reactor curriculum.
Tell us about your background and experience.
I was an engineer for about 15 years before I joined Hack Reactor. I worked at a variety of companies, from Fortune 500 companies to little startups, in various capacities from individual contributor all the way up to key leadership roles.
I’ve been with Hack Reactor since the very first class in December 2012. I started out working part time as what we now call a Technical Mentor. On my weekends, I would help students with issues, questions, and bugs in their code. I joined Hack Reactor full time in July 2013.
How did you learn to code? Did you get a Computer Science degree?
I have an undergraduate degree in Computer Engineering, which is essentially a computer hardware degree. I didn’t really learn that much about software in my degree; most of my software skills are self-taught, through various industries and jobs that I’ve had. Back then I only had books to study from, and a lot of people who mentored me along the way.
How did you become aware of the coding bootcamp model and what did you think at first?
I thought it was an interesting take on education. I thought it was really cool and I wanted to be part of the experiment.
What drew you to teaching at Hack Reactor specifically?
I found about Hack Reactor through a friend of a friend. I’ve always been interested in teaching, but I’d never been interested in going back to college to get a masters degree or PhD – which is what you need to teach at college or university level. I didn’t think my teaching aspirations would ever come to fruition, but then I found out about Hack Reactor’s bootcamp model and decided to pursue it.
Did you have teaching experience prior to teaching at the bootcamp?
Not particularly. But as an experienced developer I would mentor younger and less experienced engineers who I worked with on a regular basis – and I really enjoyed that process.
What do you think is the most important quality for a bootcamp instructor? Is it better to have technical knowledge or be a good teacher?
So you need to have technical capability, but you also need to have a combination of other soft skills. You need empathy, to be able to put yourself in the shoes of a student. You need compassion – sometimes you have to tell students things they don’t want to hear or something at odds with their personal belief, but you have to do it in a way that doesn’t devastate the student. And you need to be able to hold a room and command attention while being approachable.
What does it mean to be Lead Instructor at Hack Reactor? What does your role include?
I teach a number of classes, and some of the lectures. I also oversee the development of our lecture materials and some of the curriculum, so I am the gatekeeper of the content that students see.
Tell me about the Hack Reactor curriculum and structure.
Our curriculum is structured in sprints, which mirror what you would see in a real life software engineering environment. You have sprints where you focus on a particular set of problems you’re trying to solve, so we mirror that same concept here, but on a shorter timeframe. Sprints happen once every two days, then we switch to a different topic. There are many topical based sprints, which focus around a particular core technology. However, often the goal in the sprints is not to teach a specific technology, but it’s about the bigger picture goal – for students to become autonomous learners and autonomous programmers. Hack Reactor bootcamp aims to teach students the ability to be autonomous in any terrain we put them into, rather than giving them strict recipes and paths to follow.
How do you keep the Hack Reactor curriculum up to date and relevant?
Because our curriculum is less focused on specific technologies and more focused on how you think about things, we don’t have to iterate as often on the actual technology components we use. We keep up with what’s going on in the industry; for example we recently added React and ES6. If we notice that a particular concept didn’t land, we will work out why it failed, then fix our lecture materials and content to plug that hole so future students don’t get caught up by the same issue.
Tell me about how you have recently incorporated ES6 and React into the curriculum.
We go through a review process, where we consider various changes, then implement them, and review them. However, our curriculum is pretty full so for us to introduce a new sprint like React, we have to decide what to take out. For React there was another technology we decided to remove, so that created a hole for us to add React. But if we were to consider adding Angular 2, there is already a spot to teach Angular in our course, so we would just replace that. Something completely new might mean restructuring the curriculum to make space for it.
What did you take out which allowed you to add React?
CoffeeScript, which was superseded by ES6. We spread ES6 throughout our entire curriculum, and a lot of features of coffeescript are contained in ES6, so those two technologies are rather duplicitous. While CoffeeScript is not going away anytime soon, it is now outdated.
What made you choose to teach both Angular and React?
We also teach Backbone. We teach Backbone, Angular and React from different perspectives. Sprints are focused around a particular piece of technology, but we are teaching people to think about programming, rather than the technology itself, so there are often secondary goals associated with each sprint. So Backbone, for example, is an extremely useful teaching tool for understanding the concept of decoupling modules in various ways. But Angular takes a completely different approach to dealing with dependencies, so it’s a fantastic technology to use when teaching dependency injection, which is another way you can deal with software dependencies.
There are a lot of popular frameworks out there, but we can’t teach all of them. We chose these ones because they have secondary pedagogical objectives.
How often do you make changes or updates to the curriculum?
Removing a sprint and adding a new sprint happens a few times a year, but our curriculum is changing every cycle – every single class gets a new version of the curriculum. We are in fact sometimes changing curriculum literally up to the day before students arrive because we are always aiming for the best possible experience. A lot of times there are hundreds of little tiny changes in there that are barely noticeable, but over the course of three years, there are vast differences as those little changes accumulate.
It’s one of the things I’m personally proud of that we are able to do. We’re really organized in term of our feedback cycle, getting feedback from our students and our observations on how curriculum landed in the past, so we just stay on top of that very regularly.
Do you ever make changes on the fly?
When appropriate yes. We try to avoid those scenarios because it can be confusing or frustrating for students.
What have you found is your personal teaching style? Are you hands on, do you like to lecture, do you let people get stuck and figure things on their own?
When I’m up lecturing I try to have a balance of all three. Sometimes there are concepts that warrant me just talking while students listen. There are other times when I like to let them struggle with a concept. Oftentimes I will play quizzes or games with the students to help identify dissonance in their thinking and problems with their mental model, and usually I find one person’s problematic thinking is reflective of many people in the room.
We’ve heard that some Hack Reactor lectures are delivered through video- why is that?
We have a small number of videos, but most of our lectures are delivered live. The ones that are delivered via video on site are solution demonstration videos. For each sprint challenge, we find it useful to give students the solution, or at least one possible ideal solution, so they can learn how an expert might approach a particular problem. We do that via video specifically because we want students to be able to go back and refer to the content on their own, in their own time.
What resources or meetups do you recommend for aspiring bootcampers?
Hack Reactor has a prep program, called Reactor Prep, that is aimed at beginners. It’s a really good way to get a taste of what the bootcamp is going to be like. We also have Fulcrum, which is for students who are more advanced and already have some of the knowledge covered in the Reactor Prep program. Both programs charge tuition but you can credit the cost of Fulcrum towards the Hack Reactor program.
To get a taste for programming in general there are a few things I recommend. Wherever you are, look for programming meetups in the language of your choice. There are tons in San Francisco and most of the metropolitan areas. It’s a great way to network, meet people in the industry, get tips, and see presentations on interesting programming topics.
What do you like best about teaching at Hack Reactor?
I love interacting with the students. In every cohort there are a bunch of new faces who come in with interesting stories and interesting backgrounds. It’s really great to interact with them, but also from a teaching perspective, every new cohort is a new challenge. Students challenge my thinking on concepts all the time, and that’s a fun way to learn new things.