If you've never attended Nashville Software School web development program or spoken to a student or member of the instruction team about what our junior instructors are responsible for, you would be forgiven to think they are like the TAs you saw in college.
Most people envision those silent young women and men who sat near the professor and graded papers and answered questions here and there.
For us, the role is vital to creating the learning environment that the instruction team wants to provide for the students - the experience we feel we owe to the students who are entrusting us to guide them through a process that will change their lives. We are very selective in which graduates we decide to invite to the Learning Team.
The junior instructor program started at the beginning of 2016 and has grown into an integral, necessary part of the team that makes NSS as distinctive and effective as it is.
Note: Instruction and coaching are very different things.
Instruction: Standing in front of the class introducing concepts, live-coding in the language for them to watch, and ask questions about. This is about 10% of our time.
Coaching: One-on-one discussions to fill in knowledge gaps, solidify concepts, and guidance on design & debugging. This is the other 90% of our time.
The Role
I could ramble on and on about what I see our junior instructors do, but I feel it's best to let them speak for themselves. I've grouped them into topics that they discuss.
Instruction
Our junior instructors are instructors. During each course, they are required to pick some chapters in the course to deliver to the cohort. The senior instructors provide coaching and guidance, but the juniors get the final word on how they provide the content. It can be nervewracking for them, but every single one has done an excellent job.
Leah Hoefling: We all get the opportunity to pick chapters and content to teach to the students through live coding and whiteboarding. We have all taught lessons on debugging, SQL, classes, data types, data relationships (ERDs), event listeners, array methods, GitHub workflows, etc...
Leah Hoefling: "Co-teaching lessons with lead instructor. When introducing confusing subjects that we need to review, it is valuable when the JIs can also stand at the front and “translate” harder concepts into plain English that students who are struggling to understand fully can take in. This is done through whiteboarding charts, defining things on the whiteboard, pointing at the live code, and walking through it slowly. Since we went through the course ourselves, we can read the room and help motivate and teach in ways the students need at that moment."
Role Model
When each junior instructor is hired, they are told that one of their main jobs is to be a good role model for new students. It is one of the reasons we chose to hire them. They demonstrated exceptional strategies for learning, and a positive, growth mindset as a student themselves.
Bryan Nilsen: "I think it's really helpful for them to watch how we troubleshoot issues with their code by searching for and trying different possible solutions when they sit next to us. I think it's important for students to also see us struggle with finding a solution as well and not have an immediate fix. Even more so, not finding a solution together and having to escalate it to a senior instructor is also something that's good for them to witness. While it's a bruise to my own ego, it demonstrates that we all struggle at times in finding a solution."
Kimmy Bird: "I remember asking those beginner questions to the senior instructor, and he would just be like 🤷🏼♂️ and then the junior instructor would jump in and say what I really meant. That’s another example of how JIs model good developer skills to students - it’s how I learned how important vocabulary is and how to form those questions - me asking the beginner way, and the JI teaching me the coherent way."
Meg Ducharme: "We speak student (because it’s our native language)"
The Confidant and Ally
I call our junior instructors the First Line of Defense. I tell each cohort that when they have questions, they need to approach the JI first. There are two reasons for this.
- The JI is more empathetic, having been a student recently.
- The JI needs to keep learning. Explaining and debugging code with every student deepens their knowledge tremendously.
Kimmy Bird: "One of my main takeaways as a JI is that we often know the “reality” of how students are doing. Understandably, students put their best foot forward when working with a lead instructor - that’s the person who determines their fate! With JIs, students let their guard down, and really talk to us about how they feel, and are much more likely to be comfortable saying “I’m totally lost and need help understanding this concept."
Kristen Norris: "JIs are former students which I think helps with students being able to let their guard down because they know that we've also been through what they're currently going through. It also helps during lectures because we are able to remember the things that might have tripped us up when we were learning them for the first time so we are able to ask leading questions."
Mo Silvera: "For many of the students we are the primary contacts, one-on-one coaches, and ‘managers’ during their time at NSS. We are responsible for the communication of complex concepts to learners from all different background, cultures, and personalities. We learn how to motivate and empower individuals, while also having the opportunity to manage and supervise groups. When conflict arises we must mediate and resolve, and when confusion ensues we must problem solve. We become experts in effective, low context communication."
Bryan Nilsen: "There are lots of times I'm not sure what's going on and have to remember that I'm still learning too. I think it's important to have the students see the JIs ask questions during lectures to break the initial impression they get that we are "geniuses" when we help them open their terminal during orientation."
Meg Ducharme: "We need to be the voice of reason for the senior instructors. The senior instructors put so much time and effort into making the lessons and story lines, and when students don’t understand or behave differently than they were hoping, we can provide insight. This is the true untold story of the JIs. We are the friend, the confidant, or the “cool uncle” as one instructor called me. We can sit and have a conversation about their kids or dogs or dreams of traveling the world. We will stand with them in the bathroom while they wipe tears away because we’ve been there. We’ve had trouble balancing school and life and we’ve lost sleep thinking about how we feel dumb in a group project. We can find their motivation and help use that to push them through something that’s hard. We make the time to listen to them and make them feel comforted and supported by coming in early or staying late. Senior instructors do this too, but the students let their guards down a little easier with us because we were once in their shoes."
Course Development
Junior instructors are deeply involved when the course content needs to change, which can happen for a variety of reasons. Being both recent students and new instructors who have delivered the content, their perspective is just as critical as a senior instructor's (who struggle profoundly with The Curse of Knowledge).
Meg Ducharme: "I think JIs are critical for when the course is being changed a lot - whether new framework, new backend language, whatever. Being close to the experience and remembering what it’s like to feel lost and remembering what and why something clicked can get everyone there faster. With that knowledge, they have a big impact on the course of the curriculum and how it’s taught."
Leah Hoefling: "We assist in writing explanations students will understand, editing to provide clarity and simplicity to beginners, viewing curriculum from a wide lens, and strategic planning based on past student data and our own experiences on how to teach broad content and a language to our students. This includes brainstorming and making new group projects for the class if needed then building them before class does (e.g. Trestlebridge Farms, Keahua Arboretum, Holiday Road)"
Competent Beginners Who Are Still Learning
One of our commitments to every junior instructor is that their personal learning goals are met. Every junior gets the opportunity to be on a team for the client-side course, a Python course, and a C# course. By the time a JI leaves NSS, they are no longer (what many people consider) a junior developer when it comes to their ability to understand, analyze, debug, and create software because they have had daily instruction for 1.5 years from seasoned professionals.
Meg Ducharme: "I think it is important, even though it’s often very uncomfortable for JIs, when they learn a new back end language with the cohort. They go in armed with the knowledge of the backend language they initially learned and we preach that it doesn’t matter which one you learn because all of the concepts can be applied to any server side language. The JI can reflect on how the first language they learned can be improved too as more of the dots are connected."
Mo Silvera: "We get to see, learn, teach, and explore the fundamentals of software development every single day. Not only do we read a substantial amount of junior code, both teaching and acquiring basic skills and best practices, we also get extensive daily mentorship with senior devs who are there to answer our questions, correct our misunderstandings, and help teach us about the overarching more structural fundamentals of development. We hear hundreds of questions from just as many students, and get to hear every answer in turn. I feel like every day I learn the answer to every question I could every possibly think of - and then some."
Leah Hoefling: "Debugging, debugging, debugging. I think this is one of the most valuable skills we develop and use daily. We read some really beginner code and have to navigate through it while coaching them, teaching them our train of thought, and also trying to predict what the end result of our debugging will be so that we can efficiently coach them to that point."
Leaders
When students take the final two weeks of both the client-side course, and server-side course, to build their capstone projects, each junior instructor is made the leader and coach of a team of 7-9 students. They are responsible for helping the student refine the ERD, user stories, wireframes, and technology choices.
Bryan Nilsen: "A JI is context shifting constantly, especially during capstones. For me, having to quickly get up to speed with the code that a student brings me, that has forced me to become a more efficient troubleshooter. There is also the challenge of deciding when to provide a solution and when to back off and help lead the student to discover the solution for themselves."
Leah Hoefling: "Context shifting during capstones!!! This is one of the hardest parts about going through capstone weeks. We mentor about 9 students, help them plan an attainable app, build ERDs with them, help them set up the capstone. Then help all of the students in the class debug their unique capstone’s issues and challenges, while starting over with a new context for the subject matter, approach, and stage of the capstone each time."
We also make JIs responsible for the Product Owner and Senior Developers roles during group projects. We construct teams of 4 or 5 students for each one. Each member of the instruction team is then assigned 2 or 3 of those groups.
Leah Hoefling: "We are in charge of making decisions for groups that we are leading. This mean doing daily stand ups, reviewing pull requests, making issue tickets, finding bugs and issuing tickets for them, conducting constructive retros, and building teams for next group project."
Interviewing
Junior instructors are trained on our process for interviewing potential students. Again, being former students and remembering who they enjoyed working with (and who they didn't) are essential markers for them.
Leah Hoefling: "Most of us interview incoming students because we know what makes a successful student here, while we also provide insight into student life and the classroom."
But Wait, There's More
Our junior instructors take on all that, but I'm going to add in a few things that they didn't mention.
- Their input is crucial for senior instructors when building effective teams for group projects.
- Manage the orientation process so that incoming students get a chance to come to NSS before their cohort officially starts and be guided through fundamental concepts.
- Manage an internal program called Big Sib/Little Sib, where incoming students are matched up with an existing student. This gives each incoming student one person that they know and can go to for questions about code, process, and environment.
What You Get
There is an immense difference between newly minted NSS grads and a junior instructor who has put in 12-16 months performing all of these tasks performed above. If you consider an NSS grad to be a junior developer, you can consider a junior instructor to be a mid-level developer.
- Their communication skills are highly refined.
- Their patience, empathy, and emotional intelligence are advanced significantly.
- They have leadership experience in a software development team environment.
- Their knowledge of the patterns and strategies of web application development is far more profound and more solid.
- Their mentoring skills are proven and solidly developed.