Codesmith’s Full-Time Software Engineering Immersive programs prepare residents to break into the...
How Codesmith Teaches in a Remote Setting
Because of the Coronavirus outbreak, communities around the world are dealing with new restrictions. Education institutions are adapting to these changes by transitioning in-person classes to a remote setting. More than ever, we are relying on the technology of online programs and courses to continue learning and pursuing careers we love.
Codesmith has been teaching workshops and programs remotely for over three years and we wanted to share the approaches we take to build a supportive community and a culture of excellence in teaching and learning in a remote setting.
Building Community in a Remote Setting
On the first day of the program, for both our remote and in-person programs, we tell our residents (the term used at Codesmith for students) that by the time they graduate they will have made lifelong friendships with their cohort. Above all else, this feeling of camaraderie is achieved through the countless hours spent tackling problems together - facing struggles as they work towards their common goal - furthering their software engineering career.
This community is further strengthened by sharing non-coding time together - during meals, discussions and events later into the evening. All these aspects are accomplished in a remote setting through thoughtful design of the program, tools, and leadership.
The nature of the Codesmith program - where pair-programming and group projects account for 90% of the hours - means much of the shift to remote is about adjusting to the alternative tools while retaining the same pedagogical approach.
Now, rather than sharing a monitor and desk with their partner, residents share a zoom room and a shared development environment. Rather than a mentor coffee between students (each receive a $10 gift card to go to Blue Bottle) students receive a gift card to order a coffee over Ubereats.
Building community in a remote setting is about using different tools to establish the same values.
Some aspects of in-person culture require more intentional adjustments - particularly emulating the ease of ‘bumping in’ to others and those serendipitous moments that form in a physical setting. In the Remote Immersive program this has meant introducing Collaborative Coding sessions - pushing beyond even pair-programming.
All of the core curriculum is completed in the pair-programming format - that is easy to translate to remote (a pair works in a Zoom room with a shared editor). But that organic ‘reach out’ to the pair coding one desk over is more difficult to achieve. Collaborative Coding has proven to be the solution. Each pair joins forces with another pair for an hour during the unit to share approaches and work through the code together.
In the same vein, while in person, if you’re unclear of what’s going on or coming up you can tap someone on the shoulder and quickly get your bearings. Online, we moved from one daily standup for all teams and students to three - with additional standups added after lunch and after dinner. Extra proactive communication is the essence of successfully carrying out the values of the program while remote.
Events that bring the entire community together both in-person and on the remote programs rely heavily on Zoom but also on a commitment by the team and community to bring another level of encouragement and support to each other.
Each morning the now remote NY immersive kick-starts their day with a Wellness session. On Monday evenings, the entire community gets together for ‘Family Dinner’ where residents and team give shout outs to those who went above and beyond in the last week. Thursday nights have been transformed from an in-person happy hour and networking event to movie, spa and online game nights.
“Every single resident has brought enthusiasm and compassion to class and it is evident to everyone in the community. Saturday Snacks and Shoutouts are packed every week with gratitude, Thursday Night Games are full of laughs and bonding over our collective amateur illustration skills with Drawful, and some of our residents even host their own workshops for specialties that they are excited about outside the Codesmith curriculum.”
Shane Taylor, Lead Online Instructor & Senior Software Engineer at Codesmith
Remote Immersive residents sharing stories on Thursday night Codesmith drinks + networking.
Creating a Culture of Excellence in Teaching and Learning
We stress at the start of the program that residents never forget that building the capacities of problem solving, technical communication, and the knowledge to be an effective software engineer is to put it bluntly - extremely hard.
It requires an enormous amount of energy, engagement, and resilience. The effort and preparation that Codesmith residents put in to be admitted to the program (many attending 20+ workshops and working through the free resources for months in advance) means they’re well placed to bring that energy to the program. A critical part of the remote program’s success has been to build that same culture of mastering the craft and the grit required to do so.
All of Codesmith's programs are ta ught live, rather than self-paced, and the remote day is broken down hour by hour. Residents have structured hours for their classes, interactive lectures, pairing sessions, and more - all happening in a collaborative group setting with an instructor.
Instructors in lectures call on students throughout (usually every 2-3 minutes) to verbalize the code being discussed - this is about strengthening technical communication but also making sure every single person is engaged and following the material.
At least every 10-15 mins instructors call for thumbs - an education technique to assess where people are at with their understanding. Students are then able to give the instructor feedback on how they are feeling on the current content being taught so the instructor can adapt accordingly.
Instructors hold students accountable to engage - videos on and full engagement with the content - the same expectations as in the in-person setting. This can be challenging but every person in the cohort has committed a huge amount to being part of the community and we want them to be able to gain the most from their time in the program.
A major benefit of the remote set up is the need for even more precise and incisive technical communication. We measure this by the ability for someone to understand your code just from your verbalizing of it. Quality technical communication not only makes you a great team member but encourages you to develop a more precise approach to problem solving. In pair-programming there can sometimes be a temptation to take control of the keyboard and ‘show’ a partner what you mean, remote pair-programming prevents this and increases accountability - frustrating but highly effective.
This focus on quality of teaching and learning is only possible when residents are healthy and structure their days for physical and mental wellbeing. Every two days there is additional time for working out. Residents have daily wellness sessions and every week residents get together for “Circles,” where they talk about anything but code in a safe and supportive environment.
Choosing the Right Tools for a Remote Program
“We place an emphasis on technical communication and whiteboarding at Codesmith so tools like Zoom and Notability have become invaluable to our approach. They let residents develop their ability to communicate complex concepts in a manner that non-technical and technical team members alike can understand - a core part of being a successful software engineer.”
Phillip Troutman, Director of Instruction & Curriculum & Senior Software Engineer at Codesmith
LA Immersive resident help-desk request example addressed and answered by an Engineering Fellow.
Slack, Zoom, and Github are the core tools of the remote programs with iPads allowing for additional collaboration, ideation and whiteboarding.
All Codesmith’s remote programs are taught synchronously (live teaching, pair-programming, and projects). This is a crucial part of building an engaging and effective learning environment. Like many, we use Zoom throughout (with Whereby as a useful backup). Each student receives a Zoom Pro Account in order to access all Zoom features (no time limits on group meetings etc.) to enable Pair Programming and Collaboration Coding sessions for as long as they need.
Full-time Software Engineering Immersive program students presenting Tech Talks.
We use Slack for three main areas - ‘help-desk’, cohort updates, and building the community.
As with the in-person program, ‘help desk’ allows students to request help by writing up their problem and have a team member meet with them to walk through the problem with an emphasis on refining their technical communication and problem solving
The Codesmith team shares all notices, updates, and curriculum content in Slack. Finally, community channels (pets, lunch-of-the-day, and random) give residents a chance to share parts of their life even while away from pairing or group work.
We use Zapier to integrate a “bell” feature to residents’ Slack channels - which shares notifications of the next event/lecture or session.
We’ve been using these tools both in our programs and in free workshops for the past three years - these free remote workshops are public and happen most Tuesday, Wednesday, and Thursday evenings.
Remote learning does require different tools - including for a students’ home office setup - meaning ergonomic chair, desk, keyboard, effective wifi, camera, and lighting. For Codesmith, we also require a drawing device to allow each resident to diagram, whiteboard, and ideate in the same fluid way they do in-person. As such, every student on our remote programs receives an iPad and Apple Pencil for the program and for our in-person programs (that are currently remote due to Coronavirus) a $1000 stipend to set up a home office to be effective as residents.
We built Codesmith to be a supportive community of software engineers mastering their craft. Thanks to the tools and energy of the team, residents, and Codesmith community it has become possible to do so online and reach people around the world. We love sharing the approaches that have worked with other educational institutions and leaders. We’re continuing to refine these approaches and would like to hear from others what they’ve learned as we continue building this learning community together.
Learn more about the steps we are taking to prevent the spreading of COVID-19 and to support our residents here.