When teaching children, it’s crucial to know the environment that suits your students best. More importantly, it’s crucial to know what age to introduce the children to what you’re teaching. Brian Skinner, the founder of Breakout Mentors, started out just tutoring children, and helping them learn to code, but as he got more clients, he began to see who his most successful students were, and gained a grasp on how to get all of his students to that level.
Breakout Mentors measures the success of their students by the level of their interest, and ability to apply their coding skills to projects. By tailoring the experience of the students, and gearing it towards what their students are interested in, their students build and foster their own interests and understanding of the things they love doing.
Brian and his tutors at Breakout Mentors, teach kids who are new to programming, the basics with Scratch, letting his students get a feel for what coding is about, in a sandbox setting where they don’t have to memorize the spellings and the complexities of coding as a beginner. However, since Breakout Mentors has been getting more and more students who are familiar with coding, Brian’s mentors are able to swiftly move the students onto more complex projects, with languages like Python and Java. For these students, they are quickly introduced to larger projects to challenge their abilities.
It really comes down to what Brian defined as a successful student. Breakout Mentors sees a successful student as one who applies coding concepts to achieve a result in a project. Breakout Mentors sees a successful student as one who continues to learn outside of the student’s sessions, applying their knowledge to their own projects. As new students go through boilerplate exercises to first learn the concepts, mentors get a sense of what these students are interested in, and shift their program to fit their students' interests.
As the children are introduced to new projects, they quickly come across the errors and blunders that every programmer faces. By working side by side with a mentor, they are able to overcome these hurdles, and understand how they went wrong and learn quickly from their mistakes. Having this type of interaction prepares them for the rough and tumble of becoming self-taught in hacking and coding, but keeps them comfortable in their own mistakes.
This customized way of tutoring, has helped define the success of his students, in keeping them interested in the coding, by letting them do the things they love.
How does it compare to camps like iD Tech?
As a student from iD Tech, I learned a great deal about coding, from two weeks at the campuses (UC Berkeley & Stanford). Where I did get a big plaque on the wall, and the equivalent of 3 units at each of those colleges, I wasn’t kept interested after the first round. This is the strong point of Breakout Mentors.
Having the one-on-one time with someone who’s teaching, and invested in your learning you to code, offers consistent and valuable experience to students. The weekly lessons that Breakout Mentors provides keep students interested consistently enough that coding becomes a part of their daily life.
About Brian Skinner
Brian began teaching, just as a side job, after he graduated from Stanford with a degree in Mechanical Engineering and minor in Computer Science. He had taken up a job as a technical product manager at a software company, but as he got better at teaching and mentoring, his client brought him referrals and after a year, he quit his job to focus full time on his business, Breakout Mentors.
He obtained a degree in mechanical engineering and computer science.
Want to get your kid started with coding? Go here to learn more about their program!
The main point is that you’re teaching kids who are already interested in the computer to put it to use and begin to turn it into a career. What kind of interests do most of your students have? And what had they learned already, coding/tech-wise, before you start working with them?
Yes, Breakout Mentors is the perfect solution for kids who are interested in coding and want to keep going. The majority of our students have some exposure already - maybe went to a summer camp like iD Tech or did an online tutorial like Code.org. Usually though they haven’t learned much from those experiences or forgot after a long break, so we usually start close to the beginning (and some students don’t have any experience). Our goal is to continually allow learning at the perfect difficulty, enabling these kids to master the fundamentals and make progress that isn’t possible in the other formats.
It’s not necessarily that these kids want a career, but rather they want to keep having fun exploring an interest and making their own creative projects. By building this interest weekly in late elementary or middle school, it isn’t as likely to fade. Then when they reach a Computer Science class in high school or college, which are notoriously “sink or swim”, they have the fundamentals down and identify it as a talent compared to their peers. This identity is important even if it doesn’t lead to a career in Computer Science, as just about every field can be enhanced with programming knowledge.
I’ve used things like Scratch before and when I saw it for the first time, I immediately wished that that was how I learned to code. However, you can’t keep using scratch for your whole life, and as easy as it seems, I personally don’t think that languages like Scratch are the answer to becoming a great developer. But who knows! What are you doing, if anything, to move your students towards learning to code?
I had the same thought when I first saw Scratch! It makes coding accessible at younger ages, is visual, creative, and fun. It includes concepts that apply in any more traditional programming language - loops, conditionals, variables, and more. Often when kids try Scratch on their own, they don’t really stretch their comfort zone with these concepts. The camps and tutorials provide a bit too much structure with fill-in-the-blank, copy-and-paste solutions. With the help of a mentor we can push deeper into the coding logic in Scratch, continuing to work at the perfect difficulty, and actually take Scratch really far!
You are correct that Scratch isn’t the end goal though. It keeps it fun while letting some of the fundamentals sink in and pushing towards more abstract thinking. When you get to the point of making something as complex as Chess, it is possible in Scratch, but pretty painful. Most of our students will transition to Java or Python before that point. They are curious to try “real” coding and have the support of a mentor to help with tricky things for first timers like syntax errors.
You mentioned that a kid you taught was troubleshooting to find out what the problem was. Is this something that you teach your students, or is it something they figure out themselves?
Absolutely! Classes usually cover a multitude of Computer Science concepts without teaching how to code. That is why I referred to them as “sink or swim” - the individual concepts might not be that tough, but there is very little support in learning the coding skills, students are expected to figure it out themselves.
With Breakout Mentors the first goal is to learn to code effectively - the broad assortment of Computer Science concepts will come later, whether with us or a class in high school or college. We keep the concepts to a minimum for a while and really try to master them through creating projects. There are many skills necessary to be an effective programmer which we are able to cover. For example, most kids don’t plan their approach before coding and have no idea what the error messages mean. This is where programming in realtime with an experienced mentor helps!
Generally, when we teach we don’t expect to get anything in return. Sometimes though, we learn from what we teach, and get sort of a “vu-ja-de”, a new look on old information. What have you learned from teaching your students?
Whenever you try to explain something complex to a beginner, it requires real mastery to be able to simplify it. An interesting parallel is the programming concepts of abstraction and encapsulation - basically limiting you to what you need to know and not worrying about how something else works, just trusting that it does. As a mentor, we focus the students on what they can control and push their comfort zone the perfect amount. The mentor continues to master the fundamentals through their language used to communicate with the student.
When creating a project there are always multiple ways to arrive at a solution. When things go wrong, you can either keep plugging away with your current approach or switch to another approach that might be easier. This is another area where I became a better coder through teaching students - recognizing when I should take a step back and think about other solutions instead of continuing to attempt to jam a round peg into a square hole.
How many kids stay year after year?
Each year the majority of kids decide they want to keep going. Some transition from a drag-and-drop programming environment like Scratch to a traditional language like Java or Python. Others eventually transition to something more advanced like iOS or Unity. There is always more to learn and we can continue challenging our students at the perfect pace. In fact, there are twenty kids we have been working with for over 3 years!
What originally got you into coding? Did you learn mostly in a group, or on your own?
I didn’t start coding until I arrived at Stanford in 2004 and learned almost exclusively through large Computer Science classes. Luckily I enjoyed the challenge and kept fighting through the difficult period.
How do you track the progress of these students? Is it through just one-by-one steps of basic concepts or the ability to problem solve, and complete challenging tasks?
We don’t use any standardized tests for progress, but it is something we keep a close eye on. The best method is to increase the student’s independence, whether through coding between sessions or project choice with the mentor. For example, we can create back-to-back projects with a lot of overlap (Breakout + Pong, Hangman + Wheel of Fortune), the first time with the mentor helping quite a bit, the second time letting the student take more initiative.
You said, “By building this interest weekly in late elementary or middle school, it isn’t as likely to fade.” which is interesting to think about. I didn’t have a computer at that time, but I just talked to someone who started learning to code at age 11, and now has a workshop in Poland and a career with front-end design. How did you figure out that this age was the most effective for teaching your students?
The 10 to 14 year old range features a unique combination of curiosity, ability, and time. When a kid that age is interested, parents have the perfect opportunity to develop that interest and see where it goes. It would be a mistake to limit it to just a week during the summer or assume he or she will still be interested in high school.
iD Tech could argue that having a community to work with and connect to is a strong point in getting kids interested and continuing their education in coding. In fact, I’m still in contact with some of the people from the iD Tech camp I went to in 2009 and 2010, and a good deal of them are still coding, or doing something in a related field. What is something that working with a student one-on-one offers, that working in a camp does not, in your opinion?
That’s great to hear you stay in touch with friends from your camp! We have heard from parents that the camp format can be very effective for creating that initial spark of interest. Then in subsequent years of attendance, parents are usually disappointed by the lack of learning progress. So it depends upon the parent’s goal if I’d recommend coding summer camps. The one-on-one format is able to make up for some of the group excitement by introducing even more creativity and personalized projects. But the real differentiation is the ability to keep learning at the perfect level of difficulty, mastering the fundamentals.
Do you have any students, eager to jump directly into coding, rather than working with Scratch? If so, what do you do with those students?
More and more these days - only a third of our students start with Scratch. The majority of kids come to us with previous experience or who want to skip drag-and-drop. We usually work in Java or Python, but have the same goal of building up to making exciting 2D games.
From how it sounds, BreakoutMentors is growing. What are you doing to scale the business to withstand more customers?
Breakout Mentors continues to grow, both geographically and in the number of students we accommodate. We now cover the majority of the Bay Area with mentors at three college campus: UC Berkeley, Stanford, and Santa Clara University. While we do want to continue to grow, it is important to do so wisely, continuing to focus on quality instruction.
This really comes from the belief that the very best education isn’t inherently scalable - 1-on-1 with a personalized curriculum that encourages creativity and building a rapport with the same mentor each week. Compromising on these values would enable us to grow faster, but would be a disservice to our students. There are plenty of good short-term, one-size-fits-all resources for coding, we don’t need to provide another.
The majority of my efforts are in building systems that enable us to improve our service as we expand. For example, our Customer Portal (https://breakoutmentors.com/keeping-date-student-progress-introducing-customer-portal/) that is a central place for parents to track the progress of their son or daughter.