Ask HN: What should I teach a class of low-income kids about programming?
Wednesday, I'm speaking to a group of inner city kids about software engineering and have been moderately stressed about what I should tell them. I feel that this is a great opportunity to reach out to my community and I don't want to waste it. What are some talking points that you would focus on?
EDIT: These are middle-school aged kids.
9 comments
[ 2.9 ms ] story [ 17.3 ms ] threadMaybe throw in a focus on mobile development too - I'm always amazed at how many low-income kids around here have smartphones.
From there you can go to the theme of "be a programmer of be programmed", i.e. everybody needs to know some coding. Tell them that math is not a prerequisite (a usual worry about programming) and show them some cool but simple game programming examples using Scratch, pygame and the like. In fact, it would be great if you can create a game during the presentation, with ~10 lines of code.
I am not familiar with frameworks such as Scratch or pygame; still 10 lines of code look like too few for a game.
#!/usr/bin/perl $SIG{ALRM} = \×up; my $random_num = int (rand(10)); print "Guess my number (0-9) in less than 10 seconds!\nGuess: "; alarm 10; while(1){ my $guess = <>; if ($guess == $random_num){alarm 0;print "You Got it! Well done!\n"; last; } else { print "Nope; guess again: ";} } sub timesup {die "Uh oh! Time ran out while waiting!\n";}
http://thedisruptiondepartment.org/
His name is Gregory, feel free to ping him for thoughts or advice.
These students often spend years chasing different leads about how to follow up on their interest. All of the software tools needed to dive into programming are free, but the ecosystem is really hard to navigate if you don't know anyone who is aware of current professional programming practices. Many "computer science" teachers do harm to these students by directing them to dead-end languages on old school-district-based Windows systems. I don't use the term "do harm" lightly, either. I have seen numerous examples of young people who have built up serious resentment towards education in general because of their frustration in dealing with teachers who know less than they do.
/rant
Here's what I'd suggest: - Look for the students with a spark in their eye. See if you can pick out which ones already know they want to be good hackers. - Map out their next few years of learning, so they know what to focus on. - Tell them to learn Linux. Tell them that if they can find a beater laptop, download a distro, and load it, they can have functioning computers their whole lives. Low-income students have a difficult time maintaining Windows computers at home. If they can build a linux box, they can take charge of hardware issues. - Tell them to learn python. The community is incredibly supportive of non-traditional programmers, and the language leads you to whatever kind of actual work you want to do in programming. - Last, and most important: if you can do a followup visit two weeks or one month from now, your impact will be deepened. Ask the students which of them have tried to follow up on your talk. Those are the students who need your support. Just act as a guide for them; help them find a beater laptop, help them get a distro running, help them run an interactive shell, point them to some learning resources. - If you really want to make a difference, keep visiting every 2-4 weeks so these students spend minimal time lost in the programming ecosystem.
In closing, thank you for doing this. There are incredibly smart kids in low-income areas, and many of them have a strength in them from dealing with adversity. If we support them, they can channel that strength towards very meaningful work.