I teach high school math and science to at-risk students, and I teach an intro to programming class when I can. I have heard numerous stories of smart kids who realized in middle school that they wanted to be programmers. It often falls along the lines of "I noticed that all of my peers liked playing games, but I was more interested in how you make games."
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.
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.