We want to help teach coding to every child in the world. With the conviction that Anyone Can Code, Penguin Coding School has developed an unique curriculum that emphasizes creative motivation for learning. We believe coding is a lifelong creative endeavor, not just a means to getting a lucrative job. In terms of methodology, we place primacy on face-to-face interaction with human teachers, as opposed to online-only schools.
Penguin Coding believes that motivation is key to learning. The most compelling motivation for learning to code is that coding enables building something of the kids can call their own, whether its a game or website. I want the kids to feel that the sky is the limit in terms of things they can create if they learn the principles of coding, just like knowing a few chords on a musical instrument enable playing infinite variations of music.
As parents looking to get our kids to learn coding, there are basically two options today.
One approach is to simplify the material and use special software so that basic coding principles can be taught by dragging and dropping blocks on a screen. Scratch, which was developed by MIT Media Lab, is one such programming language, and is often used by after school clubs and STEM sounding summer camps. I think the Scratch programming language itself is well-built and is a great tool to expose kids to programming concepts before they learn to touch type. My experience with my own kids at these STEM sounding summer camps and after school activities was that it was interesting for that one week or semester, but didn't quite expose them to "real coding." They thought of coding as an activity inside a black box (like apps) and not something you can create from just typing in plain text.
The second approach is the high school AP Computer Science class approach, which is to teach coding like any other academic subject and teach principles from a textbook, and then give the students lots of problem sets to work on. This is how most computer science courses in high school and university are taught, and they use C or Java as the programming languages. The problem I see with this approach for most kids in grades 4-8 is that C and Java are difficult languages to learn with a lot of extra effort required before students can see the fruit of their labors in actual programs that do things beyond being a calculator or say Hello World. If the sole purpose for taking coding at an early age is to get them into AP Computer Science, this might be a good approach, but I fear you will create an impression among most kids that coding is hard and boring before they discover what they can do with it.
The approach that Penguin Coding tries to take is based on my experience in Silicon Valley and the coding curriculum that has been developed for adults who are trying to learn coding as a career transition. The curriculum for the coding bootcamps are very practical and always based on building something first, and then learning the principles behind what it took to build that. So instead of learning about loops and object oriented programming as a principle in a text book and doing a bunch of problem sets, you start writing code for a website or app, and then discover through experience why it would be useful to incorporate loops and objects into your program.
At first this experiential discovery method may seem inefficient as you end up re-writing code over and over to improve it instead of having the right answer from the beginning. But this iteration is critical for important concepts to really sink in and actual learning to take place. It is actually how professional software developers code. No software engineer knows every computer principle and programming trick by heart. They know enough to try different methods until one succeeds, or know enough to ask the right questions to the right people that can help them. Looking up an answer online is not something that is considered cheating, its an essential part of the job description.
What makes this approach "worth it" for the kids is that at the end of the road, they see that their code actually does things in the real world. Not in some play pen, but in the real Internet where anyone can access it. There is always a trade-off of how much you teach before letting them just do it, but that often depends on the level of the student's understanding and proficiency.
Penguin Coding believes that Anyone Can Code, which sounds like a glib tagline. But its based on the belief that coding does not require a math and science mind to excel. It is often taught using math & science methods because the educators and people associated with coding are often math & science people. But I believe it should be taught more as a skill like cooking or music, where anyone can enjoy, even if you never become a master chef or professional musician.
I started Penguin Coding School in 2016 after spending over 15 years in the tech industry in the San Francisco Bay Area. Having worked at global names like Google and Yahoo!, as well as numerous startups, I witnessed the power of computer programming and the influence that coders wield in creating products and services that have transformed the world.
At the same time, I also know how only a small group of people possess the coding knowledge and experience necessary to contribute to the tech economy that is increasingly becoming the only economy with lucrative jobs. And despite the millions that the tech giants spend annually on recruiting software engineers, there is still a global shortage of computer programmers.
The reality is that it should not be this way. There are plenty of free material that is available on the web to learn coding. Whats missing is a more systematic approach to motivating young children to take interest in coding and the amazing possibilities that it presents.
So one summer, I started to teach coding to my own kids (in elementary and middle school). Before the summer, they had shown very little interest in programming, even though I had sent them to plenty of expensive "tech summer camps".
What amazed me was how easily motivated they were to learn to code once they had a purpose. I had simply motivated them that they could create their own website - a hobby site of their choosing. Their eyes sparkled and they wanted to learn more, because they saw that they could "create" something with the knowledge.
My hope is that Penguin Coding School can motivate students to take up coding because code can create beautiful artwork; it can create games that everyone can play, and it can be used to analyze big data to discover truths about our politics and economy.
The school is named after a penguin because I'm a stay-at-home dad now, and according to documentaries (March of the Penguins), penguin fathers take care of the egg while the mother goes out hunting. Also, penguins are cute, and you can't go wrong with a cute mascot.