Hacker News new | ask | show | jobs
Teach Hacking in High Schools (kevinjmireles.wordpress.com)
39 points by Kevinjmireles 5271 days ago
8 comments

I am a high school math and science teacher, and in the last year I have started to teach an Intro to Programming class, based on Python. It has been really satisfying, and students are loving it. Students are just now starting to understand enough to see where they might go with this.

I quickly run into an interesting problem, though. To teach this well, I am starting to learn the skills needed to work at a startup. That makes me look a little more closely every month at the "who is hiring" post, and wonder if I could leave teaching and double my salary.

This is part of the reason many people who are teaching programming in schools aren't good developers; if they are, it's too tempting to leave and make good money.

Thanks for sharing this.

I am wondering if startups would sponsor some of their developers to go into schools (20% of their time), give back to the community they live in and teach young people how to hack.

Also, what about starting your own startup on the side, testing ideas and making some small apps that generate revenue for you to provide the doubling of your income?

Interesting problem nonetheless...

I have started work on my own projects, which gives some satisfaction. But I am really tempted to do it full-time. I am a pretty good teacher, because I work hard all day long and think critically about my practice, and I work with a really strong staff. I can't help but think that if I put that much energy and focus into working in the startup world, that I'd do really well and enjoy it. I am really satisfied every day, though, that everything I do all day long is really meaningful. So I will be pretty picky about finding a startup with a mission that is meaningful, rather than just providing a service or product that people will pay for.

I am really curious to see where I end up in the next three years.

If you're interested in changing the world, I've got a public service project MyRepresentatives.com in need of a developer(s) to help me take it to the next level. It's your one stop shop for engaging with your political representatives online. Find your political representatives, subscribe to their updates and give them feedback. Currently, version 1.0 is live today for the Memphis, TN area, but I'm working on expanding both the functionality and geographic reach.
Organizations are designed to do what they did yesterday. In order for schools to attract and retain highly-skilled professionals they need to begin to offering more flexible work schedules/careers for people like you.

And while startups can offer great financial rewards, just think of yourself as an angel investor mentoring hundreds of startups each year! Even ycombinator can't match that output!

"Organizations are designed to do what they did yesterday. In order for schools to attract and retain highly-skilled professionals they need to begin to offering more flexible work schedules/careers for people like you."

Yes. If I am actually skilled enough to make a successful startup, I might look at trying to make a half-time teaching position work. That would be just to stay in teaching, not for any salary needs.

"And while startups can offer great financial rewards, just think of yourself as an angel investor mentoring hundreds of startups each year! Even ycombinator can't match that output!"

An angel investor who will never see any financial return on my investment.

Having done the startup thing and lost my shirt in the process - you can read my Lessons from the Land of Hard Knocks - http://wp.me/1pqm - realize there are no guarantees of an ROI in monetary terms. However, as a teacher you have a much higher probability of actually making a difference and touching peoples lives than getting excellent an excellent Karmic ROI.

That said, I'm still working toward my entrepreneurial goals, just a little wiser and in a little more measured fashion - and this time I'm focused on working on something that I really care about whether I make a dollar on it or not.

It's a hard call; I'm doing the same thing, especially after my Intro Programming class was cancelled. I had students develop some serious programs, and at the same time, had a student go from, "What do you mean by a computer program" to, "Couldn't you do that recursively?" in 4 months. It's a great course to teach.

That said, teaching is a calling, just like startup culture is. No matter how frustrated, sick, or tired I am, no matter how much I actively dislike the subject I'm teaching (conic sections!) when you throw me in front of a classroom, something takes over, and I'm amazed at what comes out.

Also, you don't have contact info in your profile, but check out CS4HS if you haven't already (http://www.cs4hs.com/). It's a great resource with great networking.
There is a currently a large push from tech companies, colleges, and CS teachers and the CSTA to increase the number and diversity of students in both programming and computer science. The College Board discontinued their AP CS B exam because not only was enrollment unimpressive, but the overwhelming majority of the students taking it were white and asian males.

There's a lot of pushes out there to make programming accessible: Randy Pausch and CMU had Alice (which feels painfully abandoned, unfortunately), MIT has Scratch, which Berkeley extended into SNAP/BYOB. All of these are really offshoots, in their own way, of the promise of LOGO: to introduce children to a programming language that is both conceptually deep and initially accessible.

The painful bottom line, though, is that many students in the new generation don't see the need for computer programming. They didn't grow up with the command line, or even with finicky and annoying Windows 95 programs. They have computers that do everything they want, and the computers generally do it very, very well. They use Facebook and Blackberries and iPod touches and don't worry about where the software comes from. The experience has generally been so seamless for them that they haven't had to think about it.

Try asking a teenager how many people they think work for Facebook, or Amazon, or Google.

I used to teach both Math and Computer Programming in a high school. Now I teach Math full-time, and my math classes are twice as big as they used to be. With budget cuts and the current economy/political climate, continuing an old elective program is hard enough, let alone starting a new one.

"continuing an old elective program is hard enough, let alone starting a new one"

Anything that is an elective gets pushed to the side in schools. One way to make it easier to teach programming in schools is to identify ways to reach core academic subjects through programming. One way I am doing that is allowing anyone who has had an intro programming class to do programming-related assignments in math class. For example, students can work through Project Euler challenges to earn math credit. We need flexible ways to grant credit; for example, a student who has worked through so many Project Euler problems should be able to earn a certain amount of math credit, regardless of whether it was done in school or at home.

What I've discovered over the years is that organizations are designed to do what they did yesterday and that people and institutions follow the cheese. In order to get high schools to begin offering programming as a core offering, colleges need to recognize it as meeting a core educational requirement. Second, schools need to be provided funding to offset the cost of offering a new subject. And finally, the educational systems need to have the flexibility to hire people who haven't gone through the traditional certification process, i.e. masters or bachelors in education.

Until those change, it's unlikely we'll see significant changes.

It's pretty difficult to add a new requirement, and it's pretty difficult to effectively embed an elective set of courses. I wonder if we could re-examine typical graduation requirements. For example, I think most districts require four years of English to graduate. Maybe only require two or three years of English, and allow more selection of electives? Maybe you aren't free to just take any elective; you can have English requirements reduced if you take a high-level elective such as programming.
These aren't just school policies, they're usually state laws. Education policy is a huge political topic, and one that the general public often feel qualified to provide input on, regardless of their actual expertise.

That said, why should a hacker be exempt from English requirements? How does programming show that they know English? Many schools are willing to count AP Computer Science for math credits, but that's a different story.

What makes programming a higher-level elective than art, Spanish, or geography? Bear in mind that they all have AP courses, so you're definitely stepping on someone's feet here.

> Try asking a teenager how many people they think work for Facebook, or Amazon, or Google.

How exactly is this related to knowledge about programming?

I think he means that most teenagers have no idea what makes facebook work. That is easily generalized to most people.
Indeed. They see Jesse Eisenberg, and assume he still does a good 5% of Facebook's coding work, easy.
Out of the three high schools I attended in the late 90s, there was only one computer related class available, in one school, and in one grade.

It was an intro to programming with C++, and the teacher was simply writing information on a whiteboard word for word from an outdated book. She couldn't answer any questions because she had no idea how any of it worked. Having already become reasonably proficient with C++ many years prior, I essentially took over teaching the class after just a few lessons, even making my own (and better, I thought) lesson plan.

Looking back on where the public understanding of computers was in the 90s, I can understand the lack of capable instructors. I actually feel privileged (now, anyway) that my class had a brief introduction to Logo back in 3rd grade, even if there wasn't another computer class until high school. But here we are 14 years after a student had to teach C++, and I see virtually zero computer classes available for my nephew in middle school. In fact, the only one available to him until high school is, and I kid you not, an Intro To Word Processing.

Part of the problem is the laughable education system in the US, where actual education and life skills don't even make the top 10 on the list of priorities, and where schools (and more importantly teachers) are grossly underfunded. But the other part, I think, is that the pool of capable and willing instructors is still non-existent. When I talk to CS students or graduates, even ones with relevant minors, the idea of teaching as a career isn't even something they consider. And whether it's lack of incentive or just unwillingness, existing K-12 instructors don't seem to have any interest in becoming savvy enough to properly teach tech courses.

I'm not sure what the solution is, but I fear it won't happen in any satisfying time frame.

I'm in high school in Canada, and there is not a single programming class in the school. The computer-related courses that are offered in the school are Multimedia (photo-editing, video-editing etc.) and Design Studies (CAD, AutoCAD etc.) I've program on my own time, and I'd like to take a course in it, but it just isn't possible in my school.

I'm pretty sure there are some other schools in the city that offer computer science class, but the city board mandates that students go to the school closest to them. There is a transfer process, but if I decide to transfer, I can not take IB (International Baccalaureate) even if the school I transfer to has IB. Pretty annoying.

Bummer! But your school is way more advanced than the ones around here where the closest thing they have is Intro to MS Office :( P.S.My daughter's in IB too and she thought it was pretty cool that you are too :) Now if I could just get her interested in programming....
"We need to throw off the myth that software development requires advanced math and science – as it doesn't! In my 13 years of Web/software product management, many of the best software developers I've worked with don't have engineering degrees at all."

They may not have degrees but this doesn't mean they are not engineers. I basically agree with the post but this "be fluent in one programming language" thing is just stupid. Languages come and go, the principles and the math stay.

Anyway, Bootstrap is a nice project in this field, based on Racket (Scheme).

http://www.bootstrapworld.org/

Bootstrap looks pretty cool and I really like the way its designed to integrate with the math concepts students are already using. And as for the language thing, agree with your comment about languages coming and going - the basic point is that need that we live in a multilingual world which requires learning multiple languages in order to speak to people and machines.
This is exactly what I'm thinking, i.e. rather than programs like FIRST Robotics that aim to inspire students without much actual learning, empowering them with coding knowledge.

I would definitely not mention the word "hacking" in any talks with high-school people, though, since these people do not know the real meaning. Maybe not even "coding".

from my experiences, FIRST Robotics involved a ton of "actual learning"
I gave a 3 hour course in "hacking" to some middle school students and they loved it. It was interesting enough showing them the many cool things they could do from the command line with a network connection; teaching an actual programming language wasn't the place to start. I think that starting a bit younger than high school, and presenting this information as interesting secrets gets kids hooked on figuring out more on their own.

Another good intro to "hacking" is simply to have them install Linux on old machines.

I use the little programming I learned in HS a lot more than I do the Spanish classes I took. Plus, being more comfortable with computers help me get familiar with all the online/computerized ways to learn spanish.
I'm fluent in Spanish and can butcher French & Portuguese pretty well, but the reality is I've needed technical skills much more than I do language skills.
In India they DO teach hacking in schools!Yet it isn't as much fun as the personal projects.
Do they? I wouldn't know but I am more likely to believe they don't. They probably do the same thing as they do in Mexico, where in high school we have technical careers. Depending on the technical career" they teach C (C++?), Visual Basic* or Visual FoxPro* and how to diagnose and repair a PC among other things. But people that pass this subjects are no more hackers than people that pass algebra and calculus are mathematicians.

" Which depends on the high school you go to. ? I am not sure if C++ was available when I was in high school. * This was some time ago when I was in high school, maybe they don't teach them anymore.

Hacker is such a loaded term... but the point is they have some technical skills that are actually valuable and can lead to decent paying jobs as well as additional study/development if they choose to... vs. cosmetology or some of the other vocational ed being offered.