Teach Hacking in High Schools!

I have a dream to build a site that will make it as easy to participate in politics as it is shop on Amazon, but without a software developer all I have is slideware.

Thousands of other entrepreneurs like me have similar dreams – and we all need software developers to make them happen.  Existing companies large and small need tasks automated, reports generated and systems that can talk to each other – and they all need people with software development skills to write the routines and craft the code required to make them happen.

So we import developers from around the world or outsource the coding to other continents – where there’s a surplus of development talent. Or worse yet, our dreams go unrealized and our projects incomplete.

On the flip side, millions of unemployed and underemployed Americans are wondering where their next paycheck will come from. Politicians keep talking about building a high-tech economy, but offer no plan as how to develop high-tech people to fill the high-tech jobs and create the high-tech companies. And our education system ghettoizes software development in the engineering department – as being only for those with advanced math and science skills.

Instead of the 10,000 more engineers a year that Obama called for, America needs one million more people a year with the programming skills to make America great again! And the only way that can happen is if we begin teaching hacking in high schools.

It’s time to think of programming as just being another language that anyone can learn – as software is everywhere and programming is becoming part of almost every office job. Today, I can be illiterate in a programming language and be successful, but for how much longer?

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.

So I propose everyone should be proficient 3 languages by the time they leave high school: English, a “foreign” language and a programming language.

Let me know what you think.

P.S. And if you’re a talented developer who wants to make a difference, we’re looking for a hacker in chief for MyRepresentatives, your one-stop shop for engaging with your political representatives online. Version 1.0 is live here in the Memphis area, but we need someone who can help execute our vision to
make this a global platform for finding, following and giving feedback to your representatives so it’s as easy to engage in politics as it is to shop on Amazon.

21 Comments

  1. zorroslade says:

    I agree with your idea about teaching programming in schools. Hacking and programming are not equivalent. Not everyone who programs is a hacker (original meaning). Hacking is more a personality.

    1. Thanks for the feedback. I thought about just calling it teach programming in high school but it just doesn’t have the same ring to it 🙂

  2. metafour says:

    I hope to start doing this in a middle school this year. On Fridays students who finished their homework get the last 20 or so minutes of class to play, whether it be flash games on the class set of laptops or card games. I’m hoping to get some of them interested in programming but I need to go back and find those sites I’ve seen on HN that help teach programming through the browser.

    You don’t have to be advanced in math to do programming as most of it is logic based which can help them have a better understanding of math but I think there’s no reason that we can’t also aspire to have them learn some math along with it; although I’m a mathematician so I’m kind of biased on the subject.

    1. That’s great. My only thought is that what we need to see is more action at the state and local school board room level so that instead of teachers trying to carve out some time to teach programming – it’s actually incorporated into the core curriculum.

      One of the things I’d like to see is if we can actually begin to push the educational infrastructure to begin incorporating software development into the curriculum. It’s ridiculous that high schools offer cosmetology as a trade track so they can get minimum wage jobs but don’t offer programming so their students can actually make real money.

      I’m not much of a programmer but the key to both math and programming is applying structured logic to solve problems so it seems like the two really complement each other.

  3. Dreg says:

    I’m a Sophomore in a High School, and I’ve been programming for about 3 years. My school is fairly technologically advanced, every student gets their own laptop (Filled to the brim with monitoring software, might I add), and they offer “Computer Programming” classes, which, if I’m honest, Is just the first two weeks of a normal Java class spread over the course of 4.5 months.

    Though it’d be nice to teach programming (Extensively) in High School, the majority of the kids have no idea what’s happening. Even in that basic course, there are dozens who couldn’t understand the most basic aspects of writing code, and flunked the class. Some of which actually tried decently hard. For something like this to work, it would probably need to be taught much earlier and at a much easier level (Like how math is taught constantly from Kindergarten to 12th grade, though maybe not to that extreme).

    That being said, the simple fact that my school gives each student a laptop was enough of an incentive to get me to dive into lower level programming (Before Freshman year, I was only doing work with Java) to bypass the monitoring software, and the thrill from that pushed me into programming further.

    1. Part of the problem is the approach. The problem with most math and science and it sounds like this class is that it’s taught in a way so that only the most gifted get it and not necessarily so that the disinterested become interested, e.g show how you can make a game or leverage some of the modern tools and languages that can make programming easier.

  4. Skhan says:

    I couldn’t agree with you more….especially the part about math and science requirement. The talent simply requires a frame of mind…I’ve started to teach in my basement….free of charge in NYC….Ive been trying to get a bigger place but everyone wants money for space.

    1. Congrats! And thanks for taking the initiative. Have you tried working with your local Boys & Girls Club, I’m sure they would love to have you leverage their space.

  5. Clark Kent says:

    Bitch, please. I did write long post then I deleted it and now I say only this: If you’re good at maths/physics/science then grasping programming language will be easy. If you’re not and you don’t even want to do programming then even if you’d spend all your high school doing it you would suck. And the third option – if you’re not but you do like programming then you don’t need it in your HS curriculum ’cause you already spend every fscking minute doing it – that’s how it rolls.

    Stupid post.

    1. If you’ve never been exposed to programming – not every house in America even has a computer – you won’t know that you even like it, what’s the value or whether you’ll be good at it.
      Kev
      Sent via BlackBerry by AT&T

  6. dcdashone says:

    I’ll code your dream but can you pay me?

    1. Maybe. But if I could why would a choose you?

  7. Corey O says:

    AP Programming is a regular class in a lot of schools. Not nearly enough students enroll though. It should be required.

  8. Not around here it’s not. Also, the problem is it’s only for the AP kids when it should be for everyone – and the focus should be on giving kids the tools and the tasks that they can get excited about, e.g. iPhone apps, that help show how they can actually use the tools in their lives and get rewards for it as opposed to the more traditional approach.

  9. zorroslade says:

    I think that the idea is good. Here is the rub. In order to do any sizable project, a novice needs to learn how to find the info needed. This can be very daunting and arduous. For any language, there are many libraries and n number of ways to accomplish the task. Programming is challenging regardless of your education.

    Learning the basics is very boring. Stimulating kids to invest the time to learn programming seems like the biggest challenge.

  10. Noah says:

    Thank you for bringing up the point of foreign language. It drives me bonkers seeing how the Scandinavian countries are fluent in two languages, other than their own, by the time they’re graduating high school. Programming would be an excellent language to the mix. The high school I went to taught java and C#, and I know as a fact it’s the same way. The kids that came out of that class could make a tic-tac-toe board and that’s about it. It wasn’t in depth enough, and it was taught with that math and science stigma. I would love to see a school that would be teaching Python, Ruby, and .NET. All the time I’m seeing report come out about how much one of the respective developers is making (Hacker News just had one about .NET developers making $92k a year) and yet we’re not teaching them.

    Our students need to be having a skill set upon leaving High School. That way if you’re someone like me who decides not to go into college, you have some asset to your future employer.

  11. Will says:

    I agree that learning a foreign language should be a requirement throughout High School, but forcing everyone to learn a programming language? First of all, it’s a non-essential skill. You can use computers, be adapative when it comes to learning new applications, etc, all without knowing a programming languages. I’m sure there are a lot of computer technicians out their who don’t know a programming language. There is absolutely no reason why a person not intending to pursue a career in software development or is not interested in programming as a hobby should learn a programming language. That’s like suggesting everyone should learn engineering theory, or that everyone should master calculus, or that everyone should learn how to be an astromoner, etc, etc. They’re all useful things to know, but none are essential to life in today’s society, unless you want to spend your life working with them as a profession. So if programming isn’t essential to life, why is it specifically more important to learn than say, engineering? You literally presented no reason why everyone should know a programming language. Also, it’s kind of ironic that you suggest all students should know how to program, yet you don’t know a programming language yourself (at least based upon your writings in this blog, I’ve only ever seen you refer to your computer background as web-management).

    Also, why is the title “Hacking in High Schools”? Learning a programming language is not the same as learning to hack. In that particular context, one assumes the word “hack” is referring to computer security-penetration. The only other computer related definition refers to an attitude, not a skill.

  12. zorroslade says:

    Will,

    I disagree with you about the programming languages. I don’t think that everyone should be a professional programmer, but they should be proficient enough to automate mundane tasks.

    For instance, someone could automate tasks in ms Excel (vbscript), or learn some scripting to read a file and filter it for info. Regardless of your job, a person could benefit from these skills.

    1. Will says:

      Zorroslade: Sorry for the super late reply. Using VB Script or any other scripting language really doesn’t make you a programmer. They might teach you some rudimentary concepts, but as you are simply manipulating an existing piece of software rather than modifying or creating software, they really don’t qualify as programming languages, nor do they make their users programmers. Perhaps that’s just arguing semantics, but my greater point is not that kids wouldn’t benefit from the knowledge, but that it would be very difficult to actually get kids interested in learning it. Either way, I think that rather than trying to teach kids basic programming, a better goal and a more practical one would be to teach kids better computer security practises. That subject is rarely touched upon even in Computer Science courses in High School, which usually just cover basic engineering, IT skills and programming. As a result, people tend to be ignorant to what a secure password is, how to avoid security threats on the internet, and basic security maintenance (such as obtaining a QUALITY anti-virus suite).

  13. I agree 100% If you can learn Hacking skills REAL hacking skills, not just being a script kiddie then you can learn any of the programming languages. The misconception that all hackers are evil needs to die, this is the 21st century we should know now that a few rotten apples doesn’t destroy the bushel.

    1. Thanks! Glad you liked it. The basic idea is to introduce the skills and concepts at an early age to anyone who’s interested as opposed to only those getting engineering degrees. Kev

      ________________________________

Leave a reply to kevinjmireles Cancel reply