Ask HN: How Would You Teach Kids Computer Science and Engineering Full Time?
I would like to do this for a living. Kids get lessons in piano, sports, etc... and I think a lot of parents would pay to have someone teach their kids how to use computers for more than checking Facebook. I also think back when I was 6 years old I would have LOVED to have someone who could have taught me how to do more with PCs than play games on them. I feel like even teaching them the very basics (simple Python, HTML) would give kids such a huge advantage when it comes to starting a career and finding good paying work in the future. You could sell it to the parents as teaching a vital skill, and to kids in any number of ways. Make an Arduino part of your lesson fee and let the kids keep a robot they built, etc... So how do you think I could make this pipe dream a reality and quit my day job?
24 comments
[ 3.3 ms ] story [ 64.1 ms ] threadI'm not sure how the classes are marketed for parents, but to kids, the thought of building your own robot, or creating your own game is very exciting. Obviously, the reality of the class is that instructors end up spending the majority of their time working out technical issues and helping the kids whose parents signed them up for something they have no interest in. It happens to be much like a typical classroom. I didn't end up learning nearly as much as I wanted from any of the classes, and spent most of the time working ahead with little to no supervision.
I think the main thing you have to decide if you really want to do this, is whether you want to teach the kids who have the interest, and the basic level of experience, or the ones whose parents are looking for a good way to spend a few weeks. It sounds like you, like me, fall into the former group. If you're really passionate about what you're teaching, it will be a much better experience for everybody involved if you can get those kids. I can't offer much more advice than that, only being in high school, but I'd be happy to answer any other questions (or try to answer for my parents).
As somewhat of a disclaimer, I'm not sure where you live, but where I am (Northern Virginia) _many_ of these kinds of classes/camps offered after school, or during the summer. Of course, this has to do with the region, so take that with a grain of salt.
I was never keen on the idea, though. The thought of only helping kids whose parents are rich enough to pay $80/hr felt like I was just widening the already-deep achievement gap. If you have any of this sentiment, you might try to put together a cohort of four kids, and charge each $20/hr.
Alternatively, I've heard of franchises that market to existing daycares to come in once a week to do computer classes, charging the parents a nominal fee per session.
I'm very interested in hearing other people's ideas, this is something I've looked into and would be interested in doing as well.
I started my son at five with MIT's Scratch [1] followed up by Lego Mindstorms [2].
I then created a text adventure engine [3] that could run adventures written in a very simple Lua based DSL so he could make a simple text game [4]. Mom helped with spelling and grammar and I suggested a puzzle but he wrote the adventure himself.
Then I transitioned him to Lua on the iPad with Codea [5] and he (with a little help from me) made a game called StarFighter [6].
I choose Lua because it is a great intro language. Very simple with minimalistic syntax, few concepts, few primitives, few keywords, dynamically-typed / garbage collected, variable arity, no real gotchas, good tool support, great speed, the ability to access a key in a hash either using bracket or dotted notation, and one of the best programming books for any language (PiL).
But it also scales well; closures, first-class / true anonymous functions, metatables / metamethods, nice simple API for talking between script and C, tail-call optimization, coroutines, short circuiting operators.
And, the path from Lua to JavaScript is very straightforward. In fact I'd say that mastery of Lua would make you a mid-level JS programmer right out of the box...
The next step was JavaScript and ImpactJS [7]. I got him two books [8][9] and he loved them.
He is now doing HTML/CSS/JS and is in the middle of a fantastic book called Pro Javascript [10]. Once he is done with that book I am going to consider him on his own...
But just to give you an idea; he is 11 now and I am learning Scala for work. He's been watching videos with me and I paused it and ask questions and then I asked him where he thinks the presenter is going to go. He ran to his Ubuntu desktop and apt-get'ed Scala and cranked up a REPL session and showed me; he was correct!
----
[1]: http://scratch.mit.edu/
[2]: http://mindstorms.lego.com/en-us/default.aspx
[3]: https://github.com/shawndumas/adventure.lua
[4]: https://github.com/shawndumas/adventure.lua/blob/master/theT...
[5]: http://twolivesleft.com/Codea/
[6]: https://gist.github.com/shawndumas/2762088
[7]: http://impactjs.com/
[8]: http://www.amazon.com/HTML5-Game-Development-ImpactJS-Cielen...
[9]: http://www.amazon.com/Building-HTML5-Games-ImpactJS-Introduc...
[10]: http://www.amazon.com/Professional-JavaScript-Developers-Wro...
I begged my parents for LEGO Mindstorms when I was a kid but we couldn't afford it. I'm hoping that he'll be as interested in learning to code as I was when I was young.
Kids should learn how to program because they're interested, not because you want to quit your day job.
Marketing a camp for kids as a "job skill" is completely disgusting. It's like you're giving baseball lessons to kids while promising the parents that it makes kids more likely to play in the MLB later on in life. It's crass and insincere.
Kids like to play, have fun and be happy, not sit in a room and learn HTML. A real "benefit" you could provide is a safe haven for gifted kids who don't have the benefit of rich parents or even a caring school district, centered around programming, that markets itself as a "special place" for smart, sensitive kids who need that environment. Fill it with lots of cool science toys, challenging books and make it a happy place. Some gifted kids go home to a scary, dark place, and you could provide a haven for them, instead of setting unrealistic expectations for overbearing soccer moms.
"So how do you think I could make this pipe dream a reality and quit my day job?"
If it's such a pipe dream, remove your head from your ass and figure it out yourself. This is advice from the bottom of my heart to you. Finding your own "path" is a struggle, especially if you want to blow the system and do your own thing. Asking this question is a bad first step.
It's not a "pipe dream" though - you just don't want to work 8 hours a day and will market to pushy parents who want their kids to become startup millionaires to do it.
Working with kids takes a special kind of love, patience and understanding. They are very impressionable, and gifted kids are extraordinarily sensitive, speaking from the experience of being one. If you want to work with them just to make money, do the world a favor and find another scheme (there are lots of ideas to make money and carve your way in the world). If you'd like to talk about how to nurture bright kids who are interested in programming, you'll find a different type of commenter coming out of the woodwork, and I'll be happy to give you my perspective.
The reason I took so much offense to your post is that it seems to capitalize "instant virtuoso" phenomenon, where parents want to sacrifice their kids happiness in order to make them proficient at something to compete with others, often vicariously. It's a cycle that ends with burnt out kids who feel bad about themselves for no good reason. I sound dramatic until you see what actually happens to gifted kids who are unrealistically pushed from a young age (hint: they kill themselves).
Like I said, I think trying to approach this as "giving kids marketable skills" is the wrong way to go. Teach a 6-year-old Python and HTML to be marketable? Yikes. You're mostly going to appeal to pushy parents, who think their kid will be the next Zuckerberg (cringe) if they pay for your lessons. Not only does that suck for the kid, but that'll suck for you too! It'll be frustrating and, if you care, heartbreaking to push 20 kids along at the same time.
IMO, what you want to cultivate in kids is a spark, not a concrete list of skills. Children don't work as plumbers for a reason.
I completely understand your view of your life, and you have my respect for thinking of something different. I have much the same problem, except I've lost most of my interest in computing-related things going into adulthood. I quit a Fortune 500 job where everyone drove BMW's and Mercedes, while being recognized as "talented", because I wasn't happy. I totally understand.
I'm simply providing some brutal feedback because it all hits close to home. I'm not trying to crush your dreams. I don't believe in that.
May I suggest age-segmented lessons? Pretty pictures for a little kids who want to play with it, and a focused curriculum for older kids?
Start teaching by teaching. Approach your local [Parks and Rec Department, Adult Ed program, homeschool group, SBA/SCORE office, science museum] about offering a short intro class. Be modest in your proposal but be prepared to exceed the lessons outlined. You just don't know your student base yet. Different programs will bring in different kinds of people. Experience will allow you to dial in your favorite student type as well as your methods and materials before going independent. You may even keep these gigs as a steady source of new private students and cash. Try it out.
(As an aside: Six year olds are still learning basic grammar structures and logic. Many still need physical objects to perform basic math equations. Even those who appear to grasp abstract concepts are often "looking" at objects or example situations in their mind's eye. Programming is a stretch at this age. Isla succeeds because offers immediate and "tangible" feedback and works using a basic adjective-noun structure young children understand. Scratch is a steep step up from Isla. Probably age eight would be the soonest a typical child would enjoy playing with the language without an adult sitting next to them helping.)