Learning to code for kids has become a hot topic these days.  And anytime there’s a hot topic, you can bet lots of folks out there are swarming to build something for it!  As parents, we’re starting to see lots of great options for how to teach our kids to code, with more popping up it seems on a daily basis!  At the Coder School, our strength is in the experience and smarts of our staff – but we use coding platforms all the time to teach.  Over the years, we’ve ebbed and flowed and have trended back and forth and found lots of cool tools and platforms to teach with, but some of them really stuck out for us.

This series of blogs will dive into some of the platforms we’ve encountered, broken out by age group.  This first blog will target the elementary age school kid who’s itching to code!

Before we start – we have a Coder School disclaimer of sorts!  While there’s lots of tools/platforms you can use to teach kids, it goes without saying that it’s not like those TV commercials where you “set it and forget it”!  Learning to code takes a passionate and knowledgeable teacher, a Code Coach® – someone to guide the student, answer questions, and really customize the experience.  That’s a whole nother topic that I touched on in our first blog, and might just need to jump back on in the future!  Anyway, without further ado…

Top 5 Elementary Kids Coding Platforms

 Fish Food , coded by a Coder School student (click to play!) Fish Food , coded by a Coder School student (click to play!)

1. Scratch – Built by the brilliant folks at MIT, Scratch was developed back in 2003 as one of the original coding-for-kids platforms.  It’s widely considered THE go-to tool for teaching younger kids how to code, and almost every coding school uses it in some form.  In my opinion, if it weren’t for Scratch, I don’t believe coding for kids could even exist – so kudos to the Scratch team!

There’s two big reasons why this is the case.  First, Scratch is what they call a drag n drop language, which means instead of typing long complicated code and worrying about missing semicolons or typos, kids can drag and drop code fragments on the screen.  Can you imagine a kid typing “System.out.println(“Hello, World”);”?  In Scratch, they just drag a button and BLAM, it’s done.  The second reason is that the code is geared towards creating graphical, moving, playable GAMES – quickly!  Back in the day, it used to take thousands of lines of code just to get something cool on the screen.  Now, with a half hour and a good Code Coach®, kids can be sucked into the world of coding games.  Another awesome feature of Scratch is it has a huge library of apps created by other coders, which kids can play and even reuse the code.

 Brian Harvey, inventor of Snap!, visits our Berkeley Grand Opening Brian Harvey, inventor of Snap!, visits our Berkeley Grand Opening

2. Snap! – Snap! is a cousin of Scratch, using similar drag n drop principles, easy for any kid to pick up.  Built by the Berkeley CS folks (in fact, the original developer Brian Harvey stopped by our Berkeley school’s grand opening!), Snap will probably look like the same platform as Scratch to the untrained eye – but there’s a subtle difference.  Without getting into the technical tidbits, suffice to say that Snap! was built with computer science education in mind, while Scratch was built for kids to make games, fast.  In Snap!, it’s actually harder to do some things…  Why’s that better?  Because then you have to figure out how to do it!  In fact, they even use Snap! to teach Berkeley freshman computer science!

The biggest misconception about both Snap! and Scratch is that kids (and some parents!) think “they already know it” after becoming familiar with the 100 or so commands in either language.  If there’s one thing you should get from this blog, it’s that that is NOT THE CASE!  Coding is about the underlying logic, how to think critically and create things using the commands.  For any kid or parent to say they “know a language” because they know the commands is like memorizing a Spanish dictionary and saying you speak Spanish.  Doesn’t work that way, does it?!

3. ComputerCraft – Computer Craft is the brilliant combination of learning how to code, and – you guessed it – Minecraft!  Since exploding into every kid’s brain and electronic gadget back in 2011, Minecraft has been one of the most popular games of all time.  As an adult, I gotta admit – I don’t get it.  But if Microsoft is going to buy it for $2.5 Billion, then something about it works!

ComputerCraft isn’t directly connected to Minecraft or Microsoft, rather it’s what they call a “mod”, something that modifies the original Minecraft to add more features. This mod actually allows kids to code sequential and other logic within Minecraft itself using a language called Lua.  You can imagine the draw is that kids are more than excited to get to work in the Minecraft environment, and parents love that they can learn some coding at the same time.  The disadvantage is that because it’s a “mod”, setting it up can be time consuming to say the least.  Unlike many of the other platforms we use, you can’t just go to a website and start using ComputerCraft, you have to install (and pay for) Minecraft, and install the mod on a specific computer.

4. Code Combat – I had the pleasure of meeting Matt Lott, a co-founder of this amazing company (great guy, btw), and I must say, what these guys have created is really pretty awesome.  Code Combat is basically a game-ified way to teach kids how to code real-world languages like Javascript or Python using a very graphical, really fun and addicting knights-and-combat kind of background.  Students progress in difficulty level by typing in code (typically Javascript or Python) to destroy their enemies.  The games are really fun, even for an adult like me, and really help nail down some of the concepts of coding.

This is one of those platforms that you might be tempted to just drop your kid in front of, let him/her play the levels, and just learn to code that way.  It’s plenty addicting and fun, so keeping kids on usually isn’t a problem.  That said, some of the downside is that it IS a game – and like any game, kids are plowing through to the next level as fast as they can.  As my 10 yo son played it, I recall asking him quite often whether he actually understands the concepts, or if he just got to the next level.  The results were mixed, I’d say.  So it’s a great tool – but just be careful if the student isn’t paired up with a Code Coach® to explain the code, are the kids learning or are they just really good at gaming?  Something to keep an eye on for sure.

Code Combat is something we typically leave for the later stages of our elementary kids, usually towards the 5th grade level or so.  It’s an amazing tool for transitioning between the easy graphical drag n drop world of Scratch or Snap!, and some of the “harder” real-world typed coding of Python or Javascript (all of which typically take significantly more work to get a graphical game).

5. Apple’s Swift Playgrounds – Last but not least, we have an app from Apple.  As you’d expect, the user interface on this thing is crazy-good, and the tutorials and everything else are really well thought out.  Swift Playgrounds is Apple’s answer to teaching programming to kids, and have offered hours of code with code.org to teach in their Apple stores.  The language this app is built around is Swift, Apple’s new (well,  2014) language in which (soon) all their iPhone apps will be built.  So while Swift isn’t really used for much else, there’s nothing wrong with getting a leg up on developing iPhone apps, is there?

This app is only available for an iPad, so it doesn’t (yet?) run on a computer.  Because of that, the interface is a liiiiiiittle deficient (coding complex stuff really requires a good keyboard interface!) – but for those just learning to code, it works just fine.  They say Playgrounds is meant for the 8-12 age range, and that’s about right based on our experience.  While there’s some definite good stuff that kids (and adults!) can learn by just downloading and using the app themselves, as always, having a passionate Code Coach® translate, invigorate, and in-passionate (if that’s a word) is always the best way to go!

Conclusion

While we’ve listed our latest 5 tools/platforms that we use, these things change in a heartbeat.  The thing that doesn’t change is that platforms are just computer programs, so be careful with sitting your kids down on a tool and walking away!  After all, even Lebron James wouldn’t be who he is today without his coaches, right?

Greasy fried chicken plus Hansel. Do you see where this is going? Nope, I’m not talking about going to the bathroom. I’ll tell you about Hansel and his relationship with fried chicken later. I’m actually talking about opening up our second coding school, and how I joined the Coder School team. When Hansel asked me to partner with him on this journey to teach kids how to code, the first condition was that I would be opening the second coding school in San Mateo close to where I live. I’d never run a business and knew absolutely nothing about brick n’ mortar businesses so of course I said yes. In all honestly, I do know about coding and I have two kids of my own so figured I would have Hansel there to guide me through all the brick n mortar stuff. The other probably more important reason I decided to partner up was for friendship. Ever since we’d both been married and had kids, we only saw each other about once a year perhaps at someone’s birthday party. It was quite different than being best friends and in a band together. So whether teaching kids to code was going to be a success or fail wouldn’t really matter because no matter what, we would definitely get to hang out on a regular basis again. Booyeah! And hey, it turns out I was right anyway, the plan went off without a hitch and we were able to launch Coding School #2 successfully!

When I reflect back on that period about 2 and half years ago, it’s almost surreal to think about that first step of hooking up with a commercial broker, and driving around to look at prospective spaces. It’s even crazier to think about all the late nights leading up to its Grand Opening. Late night deliveries of computers, chairs, desks, and constantly worried about the build out. Fun things like dealing with building & permit inspections and fire Marshals. And I’ll never forget about putting yard signs up all over the local neighborhoods. By the way, it’s actually illegal I found out. I was putting up some yard signs in public places which I thought was fine until a cop pulls up. Uh-oh! I just froze hoping he would pass me by but he didn’t. Even bigger uh-oh. He gets out and comes over and I was pretty much going number two in my pants (another reference to the title of this blog, see how I was able to work that in). He was nice though and just gave me a warning and let me know that yard signs are okay in public areas, but only if they have a political message. As I thought about it, my political message is that all kids should learn how to code. How’s that? Nonetheless, my yard sign sessions tended to be at 1 am after that.

Everything was new and exciting and I had no idea what I was doing. I continually asked Hansel lots of questions and followed his recommendations to a tee. In an odd sense, I was actually the first franchisee because we documented all of the steps that I took along with all of Hansel’s guidance and that was the foundation of our repeatable model of how to build a successful coding school.

The takeaway is that if you’re going to start a business, do it for reasons other than to make money. Do it for a good cause that you believe in like teaching kids to code. Make sure it’s something that makes you happy and that you enjoy. When I see a kid’s eyes light up because they just truly started to understand a new concept, it’s simply the best feeling!  I was lucky as I also did it for friendship as well. We all know that going into business with a friend is not always the best idea. But it rocks when you’re both compatible so just be careful in business with friends, but don’t rule it out as it can be pretty rockin’!

What?  Another blog so soon?  Yeah, we can’t publish this thing with just a single lame post, can we?  As I’m writing this, my 11-yo son is playing Overwatch online, and there’s some other kid playing that’s squealing like a pig somewhere in the world, with his headset and mic.  The graphics are insane, and I’m feeling like I’m an Overwatcher (whatever that means).  Kinda funny, but really reminds me how far coding has come since I first started coding in middle school.  I seem to remember a little bit of BASIC, an Atari 800, and coding my first pixel-based Paint app.  MAN, I was proud of that app!

Anyway, I digress.  Why are we blogging?  Well, for SEO of course!  You can’t say we’re not all about transparency here.  SEO, for those who haven’t heard, stands for Search Engine Optimization, and is basically the question of “how do I rank higher when someone searches for me?”.  And so while we definitely hope to entertain and inform you, our main purpose is a little more self-serving (some may say nefarious!)!

We recently hooked up with some awesome folks at newmedia, an SEO consultancy, and just had our first meeting where they were going to tell us all the ways we could get our page ranking up in Google.  After paying them a big chunk of money, I was expecting some sweet revelations about what we could edit and click here and there and presto, up goes our Google page rank!  Well, turns out it doesn’t work that way.  We were ranking decently well it turned out, and turns out lots of people are searching for learning to code, coding for kids, or kids coding schools.  (see how I did that?  I put in some sweet key words to this blog so Google can find me better!).  But the biggest output after tossing them a few G’s?  We need to write blogs!

“Wait!  That takes WORK, doesn’t it?”, I asked.  “Wait, don’t people usually just outsource this stuff?”, I continued.  “Wait, engineers like me aren’t good at writing, are we?”, I complained. Rhetorical questions aside, we had a good logical-thinking contest between Wayne and I, and came up with the answer – we needed to suck it up and blog like a mother.

Part of the awesomeness of this business is that Wayne and I meet up once a week at some sunny outdoors place in the Bay Area, and catch up on status of our respective parts.  Wayne talks coding curriculum and operations, and I talk school franchising and learning strategy.  Yeah, there’s a lot of business involved.  But you can bet two best friends who used to be in a punk-pop band together are talking other crazy (i.e., inappropriate!) stories too.  Can you imagine having a fun low-stress weekly meeting with your best friend for work that you love?  It’s the most kick-butt experience ever.

We decided this blog would be the PERFECT opportunity for us to document all the stupid ideas, funny stories, and lessons learned we’ve had while teaching thousands of kids to program a computer in some way.  We can look back fondly when we’re on our death bed and go “Remember that time you farted at the IFA conference right before that VP came up to you and shook your hand?”.  And while we’re at it, hopefully we’ll get some better SEO too!  So you ready to find out more about starting a coding school?  About how we teach kids to love computers and programming?  Of course you are.  Read on.

Print “Hello World”!  Can you think of a dorkier way to start our blog?  I can’t.  I guess you’ll have to live with the dork factor because I’m not really a writer, I’m just a coder with some musical background who decided to start a business that teaches kids to code!  Three years ago, my best buddy Wayne and I started on this awesomely fun journey to not only build a company together, but have an amazingly fun experience while we’re at it.  We’ve never been hardcore entrepreneurs looking to build a unicorn, raising VC money and spending it on private jets.  Instead we’ve always wanted to build a lifestyle business while having the best time doing it, and being super-proud of the stuff we build.  This blog’s all about our experiences along the way.  Man, I wish I would have started documenting this sooner, but hey I’m not going to go back in time and re-doc, am I?  No way.  When there’s too much to explain, I like to go summary-mode, so here goes!

Three years ago, I had just weaned myself off of running my own School of Rock franchise that I bought (and learned a tooooon from!), and was looking for my next thing.  This was back in the day when coding for kids wasn’t a big thing yet, and when code.org was really just getting started.  I’m a coder, so I knew my then-11 yo daughter should learn to code, so did what any normal dad would do – threw her online to kahnacademy and went off to watch TV!  She got through it surprisingly fast – so clearly she’s getting her awesome coder powers from her dad, right?  I told her I was impressed she got through the Javascript module so fast, she must be a prodigy kid coder, right?  So I asked her “hey, so what’s this variable here do”, and her life-changing answer?  “What’s a variable?“.

And thus Coder School was born.  I realized that while there were resources online for teaching kids to code, they often really weren’t effective without a live person sitting there to actually INTERACT with the kid.  Kids just want to get to the end, right?  Beat the level, get the certificate?  But do they want to learn?  Are they really learning or just getting to the end?  My idea was that coding ain’t no easy subject, and kids can most effectively learn only when they have a mentor/instructor guiding them.  And hey, waitaminute, didn’t I also just say I learned a lot from my School of Rock?!  Yep, I learned how to deal with parents, how to operate an educational business, blah blah blah – but you know what I really learned?  That kids are all different, and the best way to teach them is to CUSTOMIZE what you teach, to their skills and their desires, so you can hook em.  Kids won’t learn to code unless they WANT to learn to code, right?

That basic philosophy is still the core of what the Coder School is about, and drives how we teach our kids in every way.  With this first post about how my own coding school got started out of the way, I’m outta here.  Gonna go teach some kids to code – H out!