Teach Hacking in High Schools
kevinjmireles.wordpress.com
kevinjmireles.wordpress.com
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.
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 am really curious to see where I end up in the next three years.
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!
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.
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.
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.
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.
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.
Until those change, it's unlikely we'll see significant changes.
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.
How exactly is this related to knowledge about programming?
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 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.
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).
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".
Another good intro to "hacking" is simply to have them install Linux on old machines.
" 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.