Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How Would You Teach Kids Computer Science and Engineering Full Time?
16 points by Malloc_Leake on July 23, 2013 | hide | past | favorite | 24 comments
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?



I lived in NYC in the mid-late 90's, and people who were good at teaching math were getting ~$80/hour tutoring kids, and helping them prep for the SAT. If you live in a place that could support it, I imagine you could get a decent rate tutoring kids interested in programming. It's an interesting thought, with parallels to developing a freelancing/ consulting business.

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.


I actually am about to send an email to the local Youth Council of a city near mine for exactly this reason. I am going to ask them if they'd be interested in sponsoring me so that any kid who is interested could learn.


Teaching is a catering gig. You must set out an assortment of foods and hope that the majority of the plate appeals to a palette that isn't your own. Children are finicky eaters. They lack the vocabulary and experience to tell you when a flavor isn't working for them. You have to puzzle out the situation, which oft times looks suspiciously like boredom or defiance, and seamlessly redirect to another dish. In many ways, adults are easier students. Cooking for someone excited about eating is a joy.

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.)


I think since I'm in high school, I can shed some light on the kind of demand there is for what you're describing. Generally, parents would be happy to sign their kids up for an intro programming class. When I was in elementary school I certainly did at least a few, ranging from a robotics focused one, to one specifically with UDK for games.

I'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 can't say I'm surprised by your experience, which is why I figured at most I would only teach a group of 5-6 kids at a time. Then they would each get individual attention while still being able to work together to solve problems, and I wouldn't have 10-20 Arduinos to debug at once.


I think a computer-themed after-school care program plus summer camps is a good idea. As another poster mentioned, however, you would end up with the problem of teaching a bunch of kids that are only there because their parents work and need day care. My daughter is going through this right now. She is in an electronics camp for the week. On the plus side the counselors love her because she is one of the only kids in the class that pay attention. On the downside, she is one of the only people in the class that pay attention.

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 actually stopped my own daycare's director today and she brought this exact approach up. She is going to try to get me in contact with a group of other instructors that do this at her location.


You've rubbed me the wrong way. I'm sorry if what follows hurts your feelings.

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.


Heh, no hurt feelings here and I don't think you really needed to make a throwaway account just to play devil's advocate. I guess "how do I quit my day job?" sounds a bit off when you put it like that. I recognize that most good teachers work more than 40 hours a week and I wouldn't mind doing that. I didn't bring this up yet, but my wife is a social worker and I admire her for what she does every day, helping people who really need it. I just feel like if I could teach kids advanced computer topics it would be a better (subjective) use of my talent than working directly or indirectly for the military. If I just wanted money the path of least resistance is right in front of me. I could leverage this internship for any entry level software engineering job and at a lot of companies / locations be making plenty to provide for my family. I just wouldn't be happy.


I didn't make a throwaway to play Devil's Advocate. I mostly lurk here. I have an old account that I haven't used for three years, and felt weird logging into it.

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.


By the way, if I were a highschool student, I would totally take a programming class in this vein, so don't take me the wrong way.

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?


Of course, you can't teach 6 year olds the same way you teach 12 year olds, their brains aren't even fully formed yet. That was already a given ;)


Well summer is almost over now, but I would think starting off doing a summer day camp would be best. So your biggest problems there are that you need a location and legal protection. If the local University doesn't offer something like it, you could take to someone in the CS department and pitch your idea. They'd also have some of the resources you'd need like a computer lab, and then they would also do a good deal of the administrivia (fliers, insurance, etc.)If it has good results you might be able to convince the uni to take you on as some sort of employee. Best of luck!


I think that Lego Mindstorms are a great intro, and that's something parents can wrap their heads around and "sell" to their children. We have a franchise company down the street from me that does summer camps built around Mindstorms - http://www.bricks4kidz.com/. It seems to be a fairly large franchise also. My 9yo son is taking their "Introduction to Game Programming" weekly camp/class in a few weeks. Might be worth looking at their curriculum/marketing for ideas.


Mindstorms used to be great, but compared to Arduinos and the whole ecosystem that sprang up around them, it is just too expensive, too proprietary and too limited. Here is one example: http://www.seeedstudio.com/depot/shield-bot-p-1380.html a pre-assembled $69 robot where you plug an ordinary Arduino Uno or compatible board, with a chassis full of possibilities for expansion using off-the-shelf components. For block-oriented programming there is now Scratch which is free software and works with Picoboards (also open hardware) and Arduinos.


Yeah, there are just so many possibilities now. There is something wrong with your link, though.


Yeah, that seems like a good approach. Thanks for the link!


My son (6yo) is very interested in learning programming and I don't have the skills to help him advance beyond Scratch. If you would be interested in teaching him remotely, pls email me at gthomps at gmail. Thanks!


I am flattered by your interest, but I really am more interested in teaching kids in person, and with teaching aids like robotics kits that I can inspect for problems when the kids need help. I think kids that young need something they can hold in their hands to make it all seem more real, though I do not have a degree in childhood education to back up that opinion ;)


I really love this idea. I had always wanted to go back to my middle school / high school and try to get the school to allow me to run a programming course on the weekends.


The only advice I can give is to share my story.

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...


This is awesome. My girlfriend and I were just talking yesterday about our 2-year-old and how I want to write games with him once he's old enough.

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.


Wow, that is fantastic. Your kid is the type of kid I want to help create, one that is self motivated to learn how to do things on their own with computers, and will have a really easy time when college comes around (if they even need it to get a job...).


You're raising the coolest kid on earth. I wish I had the knowledge to implement an idea when I was young. He's going to think of something awesome along the way and have the skills to get it done. It'd be great if he had a github repo we could follow.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: