Why Johnny Can't Program

I just published this on Huffington Post. Maybe some policymakers will consider adding programming to the US public school curriculum....
Just last year, while researching a book on America's digital illiteracy, I met with the Air Force General then in charge of America's cybercommand. He said he had plenty of new recruits ready and able to operate drones or other virtual fighting machines - but no one capable of programming them, or even interested in learning how. He wasn't even getting recruits who were ready to begin basic programming classes. Meanwhile, he explained to me, colleges in Russia, China, and even Iran were churning out an order of magnitude more programmers than universities in the US. It is only a matter of time, he said - a generation at most - until our military loses its digital superiority.


  1. I wrote and ran my first BASIC program at the age of ten (1972), and to this day I remember the feeling of exultation … like reading (which also gave me immense pleasure), but in reverse: the program came from my head, and made the machine obey my will. Banzai! Mazel Tov! Snakes Alive!

    1. That’s remarkable, Karl! I think my first program just printed my name across the screen repeatedly, lol.

      I’m curious as to what machine you were using and what your program did. Also, how did you manage access to a computer in 1972 at age ten? I thought only major universities had such equipment.

    2. You’re kind of missing the point. The General was complaining about recruits who have no knowledge or even interest in learning programming. It’s indicative of the lack of education in technology in the lead up to college and/or the military.

      To address your comment, some people join the military for college funding, service to the nation, and, in the case of the Air Force, learning really cool technology. It’s not always about the almighty buck.

      1. It’s indicative of the lack of education in technology in the lead up to college and/or the military.

        The military has lowered it’s admission standards over the last decade. We know that they accept far more recruits with criminal backgrounds than they did in the last millennium. It seems likely that other standards have slipped as well.

  2. Why would a good programmer want to enlist? He would end up being owned like a slave for however long the “war on terror” lasts, would have even less power and even more stupid bureaucracy than in a big corporation, lower pay than in the private sector, and would be giving his life to writing software that helps kill people. Anyway, the military gets its software from contractors and and most of its computer science R&D from universities. Recruits wouldn’t be trusted to write software even if they were good at it, and if by some chance they did write software the military needed, it wouldn’t get them promoted.

  3. Heh – if the military paid enlisted people more than “less than minimum wage if you do the math” they might get some people who already have those skills.

    I’d throw down to go work for the air force doing crazy awesome information security stuff if the pay didn’t work out to less than 8 dollars an hour.

  4. On the other hand, the General clearly said “…or even interested in learning how”and if you enrolled, woud not that be a skill that one could acquire and that could possibly serve you well in the armed force or after?

  5. You say “Digital tools are not like rakes, steam engines, or even automobiles that we can drive with little understanding of how they work.”

    You don’t give much evidence to back that up. I’m certainly not convinced. In fact, 500 million Facebook users (and hundreds of millions of other PC users) seem to indicate the opposite. I’ve met plenty of people who run businesses primarily through digital tools (I recently booked a vacation rental property in Greece entirely over the internet, for example) that they do not understand on a technical level.

    These tools, as far as I can tell, are being “driven” alright by all these people. And I, as a professional programmer, fail to see how that has any huge impact on my Facebook use. Yes, I can better appreciate the work that has (or hasn’t) gone into various features on the site, but I don’t see a fundamental difference developing around how I use the site versus a non-programmer.

    I find your claim dubious.

    1. Right. Furthermore, most programmers (now) know very little about the underlying technology in the computers they use or their microchips. How many programmers can even do x86 assembly language anymore? Programmers themselves no longer need to know the workings of their “digital tools.” The modern programmers’ case for exceptionalism is very weak.

    2. I also don’t agree with this part of the story:

      “Amazingly, America – the birthplace of the Internet – is the only developed nation that does not teach programming in its public schools. Sure, some of our schools have elected to offer “computer” classes, but instead of teaching programming, these classes almost invariably teach programs: how to use Microsoft Office, Adobe Photoshop, or any of the other commercial software packages used in the average workplace.”

      This is wrong–when I was in public highschool (’96-’00) there were computer science classes. Three classes in fact, some of which were a part of the College Board’s highschool computer science advanced placement curriculum: http://www.collegeboard.com/student/testing/ap/sub_compscia.html?compscia I didn’t go to a magnet school either, this was in a suburban midwest public highschool.

      1. Also America wasn’t the Birthplace Of The Internet(TM); it was CERN, in Switzerland.

        It’s cute how Americans still perpetuate that rumor though.

      2. back in the late 80’s early 90’s I learned programming school. Unfortunately it was basic and cobol. I really wish we’d done c or pascal. Even more unfortunately, the class was inundated by people who belonged in shop and were only interested in not having to take senior english. The class spanned multiple periods and included an english credit. The three or four of us in the class b/c we liked computers were bored out of our minds while the rest kept things moving as slowly as possible =(

  6. There are good programmers out there.
    There are good patriotic programmers out there.
    These are also good problem solvers.

    My apologies for the folks that generate much of the ordinary code, you are good folks and good at your job, but are not included in the above.

    Why don’t these patriotic, problem solver, programmers join the armed services?

    When you join the service you must go through the same process as any other recruit. This involves a great deal of physical and psychological elements designed to break down old habits and thought process. Becoming “Gung Hoo!” is a good thing for the most part. It provides for the predictable and reliable soldier.

    Unfortunately the people you need are creative types. It oft misused “out of the box” type thinkers. There are very very few of these who can go through the normal service basic training without losing the talent they are needed for. Some but not many. Most won’t even try as they know at some level it would destroy what they value the most.

    This is why the services contract out so much for IT services and why keeping it in house is so difficult.

    Ok, that is the problem, now how about a solution.

    First, get it through your head, these folks are not going to be soldiers. They can wrap their head around the concept of soldiering with the proper access and the rare person who can do both.

    These folks thrive on challenges, even more so if it’s personal. Design the recruitment process accordingly. Psychological process’s that encourage patriotism, loyalism, honor, and challenges without breaking them down. And most will know that’s what is going on, but it still works.

    Again, they are not soldiers, with the extremely rare exception, they are not going to be soldiers. Those extremely rare folks that want to be soldiers as well should have a path for that.

    Did I mention these folks are not going to be soldiers, get used to that idea.

    1. “Unfortunately the people you need are creative types.”

      Actually you want technical types … who are cognitively the complete opposite of creative types.

  7. Our military has digital supremacy? Really? I figured they just bought their shiny toys from Lockheed and Boeing and that was that. Johnny don’t need to program. Go get your gun.

    1. War has gotten sanitary. When the GIs went to war in the Pacific during WW2 thousands of soldiers lost their lives taking just one island. Hundreds of soldiers (or more) were lost each month in Korea and Vietnam.

      Al-Qaida and the Taliban can’t fight a straight up battle because NATO forces have an overwhelming technological advantage, so they fight using unconventional tactics, which is why NATO soldiers have died. Iraq and Afghanistan were taken with relatively few loses.

      This is not the first time that unconventional tactics have been used. The British army lost the Revolution because the generals only understood the battlefield, considering the harassment of supply lines and long marches of troops as inconveniences. When their troops got on to the battlefield the British troops were malnourished and tired.

      Now as for the topic at hand, the US is losing its technological edge because religionists want religion taught in schools rather than science. The schools are forced to avoid controversial topics so many fundamental skills are being lost.

      But that doesn’t matter, because jobs are being outsourced to countries like India. Few things are actually manufactured in the United States anymore also. China doesn’t have to worry about the US… they’re buying up the US debt and manufacturing the goods needed.

  8. The content of the article aside, I might have picked a less cliched title, as it instantly brings to mind the famous article “Why Johnny Can’t Code,” an article that has been passed around among programmers continuously for the past four years.

  9. Why should a drone pilot have to be a programmer? When I want to drive my car I don’t have to be a certified mechanic. It seems like the problem is that the military needs better software that abstracts low level details of programming drones into higher level concepts that can be grasped with less training.

    1. Spoken like a true patriot: with only half of a grasp on the actual problem but total certainty as to the answer.

      1. “Spoken like a true patriot: with only half of a grasp on the actual problem but total certainty as to the answer.”

        Spoken like a true internet user, criticizing and flaming another person, but also not showing any insight, contributing to the discussion, or having their own potential solution to the issue at hand.


        If they want to up the numbers of recruits that are to be programmers for the military, start them young in classes such as programming for the NXT Mindstorm robots. Hold robot programiing competitions!


        Make a secured test network and put it out on all of the tech mags that any one group that could hack the system the fastest wins notoriety and a prize!

        The X-games for hackers! Fun for everyone!

        Programmers only really want a fun and interesting problems to solve. So give them one like….programming military drones, laser guidance systems, or maybe the new-fangled “body armour” that might be happening for the “super solider” in the coming decade or so.

  10. Ultan, Beelzebuddy, excellent points–
    I can’t help but thinking that this is framed in a self defeating manner: outsourcing, sub contracting, global corporatism– somebody will always run the war/ write the code because theres a profit to be made in doing it– and thats the probelm. We shouldn’t be concerned with who writes the code, only about making war something people cannot and should not profit from.
    US vs. Them in Cyberwar? Sounds like another Cold War cooked up for the Facebook generation. A more insightful model needs to be used to look at things than US and Them as It Applies to Code– or you’re just being another simpler minded Militarist: yesterday it was Johnny Get Your Gun, now its Johnny Get your Code?

  11. “He wasn’t even getting recruits who were ready to begin basic programming classes.”

    I can’t even begin to unpack and understand this. Maybe a misunderstanding and unfamiliarity with the military, because this is actually what that general needs, “…new recruits ready and able to operate drones or other virtual fighting machines”

    It’s not Starfleet out there.

    1. I was wondering that too. What’s wrong with these drones that they constantly need to code for the things?

      Doesn’t the contractor handle most of the initial coding?

  12. I was fortunate enough to be a witness and participant to the dawn of the personal computer age in the late 70’s and early 80’s. Our home and school had Apple IIs, Vic 20s, C-64s, TI-99s and TRS-80s, etc. Getting anything out of these machines pretty much required learning a programming language and DOS commands. Our grade school computer classes included programming. The computers were just tools and were pretty much dumb until YOU did something useful with them. This gave you a wonderful feeling of power, control and achievement. One of my favorite childhood memories was over a summer vacation helping my friend program and test a BBS, all with home brew software, and watching the first stranger log on.

    Conversely, I vividly remember the day in high school when the new Macintoshes became part of the computer curriculum. Suddenly I became a USER instead of a programmer and the computer became an appliance. Some of the joy was lost.

    Happily I still use the same skills and often even the same commands I learned back on the early 8-bit machines almost daily programming and testing building DDC systems. The programming side serves me well.

    I know, cool story, bro.

    1. Getting anything out of these machines pretty much required learning a programming language and DOS commands. Our grade school computer classes included programming. The computers were just tools and were pretty much dumb until YOU did something useful with them.

      Frankly, there wasn’t anything useful you could do with them. There wasn’t any reason to have them in the school except they were shiny blinky toys the faculty and staff wanted to play with.

  13. I’m gay, liberal, said bad things on the internet about George Bush using my real name, and I can program computers. Also, I have no interest in dying in an illegal war.

    How do I participate?

    1. LOL–I’m not gay, but I did invoke DADT to get a Navy recruiter off my back years ago. Now, my wife and I are in our 30s, and she still gets recruiting material. I haven’t heard from any of the armed forces since 18.

      Not that I’m a good programmer…when I do anything it’s more worthy of The Daily WTF than anything.

  14. I’d completely endorse emphasizing some basic programming courses in primary/secondary school. Problem is, there’s a lot of subjects these days which should receive greater emphasis. The basics of compound interest/personal finance is one. For many students, basic math and reading are others.

    Anyone going into a discipline involving any quantitative analysis would benefit from some basic programming/algorithms coursework. But in my experience, the “weed-out” introductory computer science courses at most big universities are badly suited for anyone outside the CS departments.

    But more to the point, I don’t think there’s any particular dearth these days of programmers from IT schools or Bachelor’s CS programs, no?

  15. I am prior service (US Army Reserves) and have a college degree, know some programming plus lots of other computer skills, and since I just can’t seem to find any steady employment that gives me adequate health care post Army (and since my gov’t won’t really help me otherwise) at this point in my life I have seriously thought about going back in* and I am (just) young enough to do so.

    *(yeah, I know, but I REALLY need some health care and they fcuked me since I was only Reserves before and don’t “have enough active duty time to qualify for VA benefits” as they put it)

    However DADT nixes that (Why Jenny, formally Johnny, can’t code!). Good job Gub’mint for keeping us darn queers out of serving their country!

  16. “colleges in Russia, China, and even Iran were churning out an order of magnitude more programmers than universities in the US.”

    uh, bullshit.

    that sentence is missing “.. who are interested in joining the military… or who are not gay” at the end of it.

    we have plenty of programmers. the military just discourages them from joining.

    maybe if we stopped fighting illegitimate wars and turning away qualified candidates, they could attract the programmers they need.

  17. Is the general also concerned that while there are plenty of recruits willing and able to fly C130s, F-F-16s, and F-22s, there are almost none able to program the millions of lines of code responsible for keeping those planes in the air? How about the dearth of recruits able to create composite laminates for stealth fighter structural parts?
    I really don’t understand WTF this general is on about.

  18. the reason why they can’t get enough coders to work for them is that the kind of people who have the brains were marginalised from general society by bullying behaviour before they even got out of elementary school. as if someone (eg, like me, who would have become a programmer if the education system cared less about fitting us into their boxes than nurturing our talents) who has just been through the process of growing up as an outsider has a lot of loyalty to the country, for that matter even the whole alliance of countries of NATO.

    anyway the DoD isn’t gonna pay as good as lockheed martin or boeing or whoever else, coders are fairly rare anyway for reasons listed above, and the ones that are around have to be paid well or they will go where they are paid well, which means google, facebook, apple… warfare conducted by drones and autonomous sentry guns and whatnot is the warfare methods of a military whose money is being wasted on bad intelligence and guided by ivory tower philosophies that have little connection with the real world geopolitical situation.

    drones and supersoldiers are very bad for the US military’s public image in as far as those who they claim to wish to win ‘hearts and minds’. it shouldn’t be a surprise that the usa has such a low quality pool of available technical design types when the whole economic strategy has been about shifting the brain-grunt work to countries like india, japan and china, and lookie, who is now in a position to build ICBMs and stealth bombers and has the population to support standing army sizes that collectively dwarf the us military?

    again, it’s all about the culture of corporate and military USA – they don’t have room in their mindsets for the idea of ‘wussy’ little programmers designers and whatnot, in their mind a programmer is a bearded steve wozniac circa 1978, a hippy, no less. if the us military is gonna lose it’s edge cos it doesn’t like hippies it’s a bit of tough titty really. and the same goes for the corporate culture and the bureacratic culture of most western countries as well.

    the people they can’t get are people who would rather write computer games simulating near future post apocalyptic zombie/alien invasions, who are writing code for NPCs that make the best autonomous military robots look like worms as far as IQ goes. people who have fantasies about aliens or zombies destroying the system are quite a bit beyond being interested in writing AI and sensor processing and mesh networking code for a military machine that thinks nothing of putting down uprisings with dehumanising psy ops and taser and nerve gas armed riot police, spies aiming to subvert grassroots activist organisations, and the list goes on…

    if you ask me it’s not gonna be a lot quicker than a generation before the US military’s intellectual ability, so to speak, resembles a 3 year old child with downs syndrome (not that it doesn’t already come close to that dumb) i’d be willing to bet that within 10 years we are going to see orphaned us military stations becoming nests of insurrectionary forces trained by former us soldiers who have become too expensive to keep paying for. all over the place, middle east, eastern europe, asia, south america, nobody likes the USA because they are a bunch of bullies, thugs who have no interest in human progress or the soft and fluffy things that make the general brutality of life worth living.

  19. Yes, kids should be taught to program. (I’ve got two teenaged nephews who want to be game designers who have never written a line of code.) But the question is, how do you implement an effective programming curriculum?

    Say the kid has four years of exposure to programming in high school, by the time she’s off to college, all the stuff she’s learned is obsolete. How do you train kids to not become obsolete?

    Gen X was way more hands on with their tech. Kids these days (read with an old lady creaking voice) are all plug and play eunuchs.

    1. “the question is, how do you implement an effective programming curriculum?”

      You don’t. Programming is something you need to do in your own time, fuelled by the excitement and wonder of teaching yourself. Transfer it into a classroom and it kills the fun.

    2. As a programmer myself, I don’t agree that anything they learn in school will be obsolete by the time they leave.

      Sure, the specific language they learn in may not be in common use, but the skills they learn are still the same. Take your latest and greatest language: Python, Ruby, Java, C#, whatever. It still has variables, functions, conditionals, and loops. These are the bare bones basics of every computer language, from the machine code all the way up to high-level languages. As we have progressed, we have added new patterns and paradigms, but programs still run on machines that think in a procedural, mathematical, logical manner, and these are the things students need to learn in order to understand what programming is about.

      Programmers learn new languages all of the time. It doesn’t matter what you start with; learning to program in a language teaches you how to think about programming. Once you learn the fundamentals, the engineering, and the design patterns, the language doesn’t matter: I worked in over a dozen languages over 5 years of university and I learned each one as I went.

      If students aren’t being given the opportunity to learn even basic programming skills in high school, we are doing them a disservice. I started learning in grade 3 and it has given me a major advantage over my peers. There is a big difference between programmers and you’ll find the best programmers are the ones who have been thinking like programmers since they were a child.

      1. Thanks for the great reply. I agree entirely that learning to think like a programmer is essential. Sounds to me like someone should write a whole grade school curriculum based on the idea that we live in a digital world which should be understood by its inhabitants.

    3. “I’ve got two teenaged nephews who want to be game designers who have never written a line of code.”

      Fortunately that would only be a problem if they wanted to be game developers, not designers. If they want to be designers why would they need code? Get em on an Animation and 3D S Max/Maya course; also get them playing loads of games and analysing interactions and storylines.

      Trust me on this; game designers don’t code any more than game developers design.

      1. “I’ve got two teenaged nephews who want to be game designers who have never written a line of code.”

        “Fortunately that would only be a problem if they wanted to be game developers, not designers. If they want to be designers why would they need code? Get em on an Animation and 3D S Max/Maya course; also get them playing loads of games and analysing interactions and storylines.”

        I have to say that’s wrong in my experience. I’ve been a game dev for 12 years now, and the designers I have worked with were HEAVILY into scripting.

        It depended on the game but they use such languages as LUA, XML, Python, and UnrealScript.

        I would stay away from the suggested 3Ds Max or Maya unless they want to get artists or tech artists.

        If you want to get them into a more designer type of track I would SERIOUSLY suggest getting a game such as Civ IV/V

        1) Load a typical level and tear that sucker apart to see how it ticks

        2) Use the tools and scripts (Python, LUA, XML) to create small game levels and scenarios

        3) Upload the game levels for peer review on sites and see if people like them.

        4) Get feedback, rinse, repeat.

        Another great starting point is using the FREE Unreal Developers Kit and do the same thing as above creating mods:



    4. “Say the kid has four years of exposure to programming in high school, by the time she’s off to college, all the stuff she’s learned is obsolete. How do you train kids to not become obsolete?”

      This meme needs to be buried. Yes, things change. But no, they don’t change quickly enough to make a five-year-old skill set obsolete. If you learned to program in C on DOS back in the 80’s you are far ahead in learning to program something modern like JavaScript in a browser environment compared to someone who can’t program at all. Much of core programming skill, data structures, algorithms, and general design methodology is still useful because it just isn’t specific to any particular language or OS. And you know, there’s still a lot of systems around that were written in C back in the day, and still need upgrading, porting, extension, and debugging.

    5. “Say the kid has four years of exposure to programming in high school, by the time she’s off to college, all the stuff she’s learned is obsolete.”

      Complete and total bullshit. The best programmer we have at work is 65 years old. The dude totally knows his stuff. LU=Z decomposition is the same now as it was 10 years ago. That algorithm hasn’t changed any. Clearly you have never done any code maintenance.

  20. I look at it this way: not many skilled programmers are US citizens and fewer still have any desire to join the US Air Force and draw an enlisted pay grade.

    Those who do write DoD code tend to be contractors and civil service. GS-11 to GS-13 range too, not Airman Basic. The USAF wants to do it themselves, though, and they’re slowly realizing that kids fresh out of tech school don’t cut it.

    1. Yup. People who are capable of becoming programmers can study programming and then become programmers. People who are NOT capable of being programmers can study programming all they want, it’s still really unlikely that they will be a able to program.

      The difficulty faced by the military is the way their training works; they take kids who did well on the ASVAB, and then give them a choice of jobs they want them for, that the test results indicate they are smart enough to perform; there is no way to determine if a individual is capable of being a programmer, aside from looking at whether or not they are already programmers. If they are already programmers, they are unlikely to join the military.

      The only way around this (outside of simply using civilian contractors, the obvious answer) that I can see is to do something similar to the way that the Public Health service and NOAA works; proven programmers could be commissioned as officers in the Public Technology Service, which would provide them with salary and benefits that would be more competitive with civilian employment options.

      Keeping this in mind, I hereby nominate Steve Wozniak as our first Technician General (Grand Geek) of the United States, with the rank of Vice Admiral.

  21. The reason Johnny and Janey can’t program computers is that less than 2% (estimated) of the population have the mindset to do so with any degree of competence.

    The reason the military can’t find recruits who want to learn to program computers is that the totalitarian nature of the military is anathema to the vast majority of those with a hacker mentality.

    And oh yes, as others have noted, the 12:1 civilian hacker to military pay ratio may also have something to do with it.

  22. the face of war is changing,look at the recent iranian difficulties vis a vis reactor control computers.whilst normal armaments still feature.however with competent programming one could confuse the missiles,battle ships and bombers,perhaps to the degree that the attackers own country becomes the target.etc.

  23. “I’d completely endorse emphasizing some basic programming courses in primary/secondary school. Problem is, there’s a lot of subjects these days which should receive greater emphasis. The basics of compound interest/personal finance is one. For many students, basic math and reading are others.”

    Why does it have to be an either/or?
    Why not integrate math/computers/programming. Have students program something functional that requires some fairly complex math. then the math will be an applied skill rather than an abstract formula. it might actually make students understand both subjects a little bit better.

  24. Good points all.
    I think the car analogy deserves some unpacking, though.

    We can be passengers in cars.
    We can drive cars.
    We can open cars and work the mechanics inside.

    To me, using a program is being the passenger.
    Programming the computer is being the driver.
    Opening the computer and working on the hardware is being the auto mechanic.

    The reason why actually knowing what are computers are doing is perhaps more important than knowing what our cars are doing is that computers are not merely conveying us from one place to another – they are more like extensions to our nervous system. We perceive the world through them, and express ourselves to the world through them. If we’re using other people’s programs to do this, fine – but we should at least know what those programs were intended to do, what their biases are, and how they work.

    To me, this is basic literacy.

    I agree the military example is a bit much, but I was surprised to hear this coming from a general. And having spent a bit more time than I ever thought I would with military people, I must say they really do mean to protect our nation and keep the world peaceful.

    As for drone pilots, the general is not suggesting that drone pilots need to know programming. He just wants some other people who can program. It is possible he is not finding ready cyber recruits because smart cyber people would rather write algorithms for banks than positioning programs for aircraft (or, better, encryption routines for the DoD). It could be a cultural shift, for sure. But I suspect it’s also a numbers game, and that our public schools are not turning out kids with the science/math readiness of a decade or two ago.

    1. I think your car analogy is flawed. I think driving a car and operating a computer program would be analogous. Driving a car gives you three or four primary controls with no ability to construct complex algorithms. This is the same as many simple (from a use, not necessarily design standpoint) computer programs. Driving a car is analogous to operating a racing simulator on a computer, and by extension, analogous to operating most video games, and by extension analogous to operating most other computer programs with interfaces of this complexity level.

      I would say that in the car analogy, programming a computer would be the equivalent of *designing* the car.

      You obviously don’t agree, and so I suggest instead of debating the metaphor we throw it out and talk about the underlying principle.

      You say:
      “The reason why actually knowing what are computers are doing is perhaps more important than knowing what our cars are doing is that … We perceive the world through them, and express ourselves to the world through them.”

      Many of us perceive the world through corrective lenses without knowing much about optics. We have perceived the world through television (in the same sense that we perceive the world through the internet) for several generations now, and most of us don’t understand how a television works. The same for radio or printing presses.

      We know even *less* about how our own bodies work than how these other machines work and we’ve been perceiving the world through those since the dawn of our species. Most of us don’t know how eyes or ears or vocal cords work, let alone brains, but we’ve managed to do OK with the perceptions they’ve delivered to us and expressions they’ve allowed us over the eons.

      I would argue there’s no obvious connection to be made between an object’s purpose being perception or expression and a higher requirement for understanding than if it had some other purpose. Why does an object who’s purpose is perception require a higher level of understanding than one who’s purpose is manipulation (say, a chainsaw) or locomotion (a car)?

      “because it’s perceptive” isn’t really a complete answer.

      When discussing how anything, a computer or otherwise, works there’s a level of understanding that you have, and then there’s one level below that, which is effectively a black box. Programming falls into the black box area for most regular computer users. Hardware design falls into that black box for most programmers. I’d imagine there’s some level of physics that falls into that black box for hardware designers.

      These people all manage to accomplish their own objectives with their black boxes at different levels. At the same time, they can all look backwards up the chain at the guy one rung higher than him and think “I don’t know how he gets by without knowing [my level].” Hardware guys think this about software guys, and software guys think this about IT guys, and IT guys think this about end users. The fact is, everyone manages to get by because the knowledge of each of these layers of technology isn’t necessary to operate on the layer above it in the stack.

      This is why I wonder what you think differs between the Facebook use of a programmer and a non-programmer, because at this higher level, the understanding of the lower level is usually not required. Presumably, based on your assertion, this should be obvious and demonstrable, but I don’t see that it is.

      What does a programmer do differently with Facebook than a non-programmer?

      1. Very well put, you summed up my thoughts better than I could hope to do it. It’s all about abstraction, a concept programmers are intimately familiar with.

        Also for folks complaining about no good compilers or tools to learn from on computers today–IMHO javascript and HTML5 with SVG are a fine replacement of BASIC. Someone really needs to port QBASIC classics like snake and gorillas to HTML5 as learning examples.

      2. Re “This is why I wonder what you think differs between the Facebook use of a programmer and a non-programmer”

        To go back to the previous analogy? “what differs between the vehicle use of a mechanic and a non-mechanic?”

        – not riding the clutch (you know that thing that manual cars have … I think you call them ‘stick-shifts’)
        – not riding the brakes
        – checking the oil level from time to time and even putting some in when needed
        – checking the tyre pressures and tread depth from time to time

        But then, me clicking my mouse on Facebook doesn’t wear out Facebooks processed sand and brown shiny spinning things.

        To be a little less facetious, the Facebook analogy doesn’t work so well but I would bet that fewer programmers have malware, viruses, and other nasties infecting their (and consequently others’) computers, or highly fragged hard drives and inefficient registry clutter, etc than does the average “driver”. A little knowledge of the next black-box down and perhaps even a hint of awareness of the black box beneath that, is rarely a waste of time.

        Unfortunately they really are too much like black boxes. In my youth I knew when the reason my Mini would not start was because of the jammed starter motor or some other reason, and if the former, the right amount of percussive maintenance to unstick it. I also could see and touch the fan belt. Today’s car? Forget it. This is becoming increasingly true for computing as appliances become the norm – and they will become the norm just as whatever is in my car’s engine bay and wiring loom is more appliance like than was my old 1060s Mini.

        The General fails to understand the appliance issue. There is no more reason why he needs programmers today than he needs kevlar manufacturers, unless he plans to in-source more black boxes. But if cyberwar/cybersecurity is the future challenge, the very last organisation you want to try to deal with it is the army!

        However, General is clever enough to realise that will put him out of business, so makes a half-arsed complaint about not being able to get programmers in the army. He would do better to learn programming himself and join whichever shadowy organisations are or ought to be focusing on this problem, if he finds it such a worrisome problem.

    2. “To me, using a program is being the passenger.
      Programming the computer is being the driver.
      Opening the computer and working on the hardware is being the auto mechanic. ”

      I have to correct you there.

      Being a passenger is simply being an observer – it’s passive.
      Being a driver is most DEFINITELY being a user – it’s practically a raw definition of a user.

      The problem with the analogy is that the only room for a programmer is for the guy/gal that programs the software in a car … who is still a programmer :p

      Claiming that the driver is a programmer is like claiming that you’re a programmer for using this site. Or a programmer for turning on your TV with a remote. It just doesn’t make sense.

  25. Lots of high schools offer programming courses. I know mine did. If the question is, why don’t they start earlier, here’s the answer I see: elementary school teachers don’t know how to program. Most of them can barely do basic math if it isn’t spelled out in their curriculum.

    My cousin is a 5th grade teacher. Once she was a substitute for a 6th grade math class (for a semester), and had no idea how to solve any of the problems.

    When I was in 4th grade, my school district put computers in all the classrooms, with programs for students to practice reading and math skills- if you did well, it moved you to harder questions. This was when I learned that my teacher didn’t know how to multiply and divide numbers with decimal points.

    We don’t give teachers nearly enough credit. Their jobs are really hard to do well, but many of the people who’d be great never consider it as a profession. We need better trained, better paid teachers.

  26. Anything can be taught up to a point. Beyond that you need to see through the inherent problems and imagine work-arounds. Software cowboys just are. They can’t be cranked out. Either you get it and revel in it or you don’t. Putting a really good team together might be a once in a lifetime experience. It’s important to bounce ideas off each other.
    Having gotten a revision to a military tech manual that 8 brass hats signed off on, that had a glaring error, I don’t have much faith in soldiers writing code.

  27. Also, BASIC is still widely available, it just doesn’t come pre-loaded onto your computer. Try googling “GW BASIC”

  28. In my parallel universe, I’ve got provable skills in HTML/CSS/C#/JavaScript, an electronics degree, and I program microcontrollers/design circuits for guitar effects and I can’t get an employer to give me the time of day.

  29. Sounds to me like the Air Force General is not looking in all the right places. Instead of thinking that enlistees should already be able to program, why isn’t the General looking at the officers coming out of the Air Force Academy? Doesn’t the Academy offer a Computer Science degree? If they do, but the Generals don’t utilize them as programmers then it implies not only that the Generals don’t understand what programming involves but also that they view it as a “menial” job – beneath an officer. Most programmers/software developers working in the commercial world have college degrees. If you have a college degree and join the military, you’re usually given officer status. Seems to me the AF General is missing the connection.

    But then again, the military is known to squander their talent; as they did in 2002 when they discharged gay arabic translators even though there was a shortage of translators.

  30. Blame Apple. Nice gadgets that don’t encourage you to learn how to program. I learned to program in 1980. In school!

    1. “Blame Apple. Nice gadgets that don’t encourage you to learn how to program.”

      I’ll just let that quote hang there for a while in the air for the folks to observe.

      1. To shame him?

        Personally I love to use things to get jobs done.

        If I have to open up a text editor and start coding shit, that simply means the device I’m using is sub-standard.

        In the same way I don’t have to program things for my TV or Oven. Why should I be expected to?

        Should we also stop children from living n houses because it’s taking away their scavenging abilities?

        Claiming that the efficiency and quality of the end product is to blame for people not learning how to code is just retarded.

    2. What like all that native Cocoa software you can get for Macs and those 200,000 apps for iOS devices?

      You’re right, where have all the programmers gone?

      That’s like claiming that Sony are destroying the programming market because of all those TVs they make.

  31. “Typing in a simple algorithm yourself, seeing exactly how the computer calculates and iterates in a manner you could duplicate with pencil and paper — say, running an experiment in coin flipping, or making a dot change its position on a screen, propelled by math and logic, and only by math and logic: All of this is priceless. As it was priceless 20 years ago. Only 20 years ago, it was physically possible for millions of kids to do it. Today it is not.”

    “Or else, hold a big meeting and choose another lingua franca, so long as it can be universal enough to use in texts, the way that BASIC was.”

    ” By using the tools of a bygone era to learn more about tomorrow.”

    I’m trying to learn programming as an adjunct to the digital art that I’m creating and it seems there PLENTY of fun textbooks and exercises for learning how to to begin to program using the best beginner’s programming language out there, PYTHON. It’s available for every kind of system out there.

    BASIC is honestly not needed as much anymore. It’s like saying I need to learn Latin to be an fiction writer. It’d be neat to know some origins of words but it’s not really useful for actual writing.

    I think you’re trying to be too purist. You can use python/C# etc for any of those “textbook” examples you’re asking.


    Coin flipping programs, etc.


    Or if you REALLY want to go “to the metal”, learn a programming language (which is similar to Assembly) to program microcontrollers such as the Arduino (I REALLY recommend this):



    or learning scripting in games such as Civ IV (that teaches database handling, simple AI loops, using Python)


    (Civ V, the latest iteration, will be using LUA and XML scripting languages and the editor will be coming out soon)

    or learning a assembler like language for the NXT Mindstorm robots:




    There are tons out there which I think that qualify for what you are looking for.

  32. The lack of built in programing languages in modern OS.

    C, Java..etc. Have a big learning curve. Even to print out a ‘hello world’ thing.

    BASIC was great…it came with most OS. Apple, DOS..etc. It might not have been a great language for creating things. But the concepts it taught for processing info was great.

    Learning C or JAVA has more ‘housekeeping’ rather than learning how algorithms work.

    You can’t even get out of the gate with C without lots frustrating stuff secondary to the task of creating a algorithm.

    1. The lack of built in programing languages in modern OS.

      C, Java..etc. Have a big learning curve. Even to print out a ‘hello world’ thing.

      See: Python

      1. Amen bro!

        We ditched Visual Basic for python because students were getting confused by the minutiae of VB instead of learning basic programming constructs.

        And, for younger students, see: Scratch

      2. Oh..yeah. I’ve only briefly messed about with Python.

        But something like that should be included with Modern OS.
        Like AppleBasic, or MSBasic was in the past.

        It was something a kid could explore. I don’t think Attention Spans have changed…but a kid wants gratification without tedious mucking about with housekeeping stuff. (to learn loops, concepts etc). A ‘kit’ for tinker toy playing..playing is fun.

        Something teaches basic programming concepts; without the housekeeping and streamlining that comes with complied languages. Like we had with BASIC.

  33. ZZT is how I first learned to program. There’s plenty of much fancier/better made easy to use game toolkits out there. Kids who like videogames should definitely be encouraged to program.

    But as for teaching kids to program in school, I’m not sure that will work out. The way programming is taught in school tends to be incredibly dull. If you need to fall asleep, listening to some professor drone on about for loops for 60 minutes will work much better than any pharmaceutical.

  34. They might want to consider fully paying for their public schools, then consider updating the curriculum (I would like it if they did both at the same time).

  35. If you’re looking for a programming language on every home PC and can’t find it, you should look into this Javascript thing. It’s… a programming language, and on basically every home computer out there. It’s on your iPhone & iPad too.

      1. No, he’s thinking of Javascript. It runs on essentially every computer with a web browser, including iPhone/iPad, which don’t have a JVM.

        1. while JS is available on every computer it carries considerable baggage that you need to know work-arounds for to get it to work on every computer.

          1. Hardly. I’ve implemented a number of very heavy-weight Javascript based apps that run on web browsers using the jQuery library and have never had compatibility issues. The only compatibility issue you have to deal with are stylesheet differences.

  36. If they have many more people who are skilled at programming drones than we do can they figure out how to make our drones land harmlessly without blowing anyone up?

  37. In the summer of 1991, I and several of my Texas CompSci II students went to Austin and asked for a CompSci III class. We got it for the ’92-’93 year. We practically got to design the curriculum ourselves. From those classes I learned how to program at the level of DOS interrupts (and memorised the ALT+ keystrokes for, and the bytes of, one or two small programs so I could literally sit down at a keyboard and load a program from my memory with nothing more than edlin), how to remotely break a network card, that working on spec is heartbreaking, that the game of Risk is, once past the initial stages, and given equally competent players, remarkably similar to the Cold War, and that being good at bypassing network security can get a young man a date to prom.

    I also learned that there is a company in Dallas (far north of Dallas, really, in Plano) called EDS. Ross Perot owned it, and I think he left it to his son, and it was recently swallowed by HP.

    EDS, in addition to writing custom software for (and maintaining off-the-shelf software for) businesses around the world, also developed software for the United States Government, including the military.

    I infer from the story’s content that the military now has decided to insource their programming talent.

    When I went to university, I went to University of Texas at Dallas – a campus created and bequested by Texas Instruments – for Computer Science. At the time, the requisites for a Computer Science degree — Programming, essentially — meant that one had to take Calculus (which we had serious problems with in the incoming freshman class), Pascal (which I had stopped using in favour of C++ two years previously), 8086 assembler (macro mnemonic programming, where the target machine was an ancient no-longer-commercially-available 4 MHz 256-K RAM 8086, and which most people dealt with by disassembling their C++ programs and formatting the resulting mnemonics into macros, cleaning it up, and verifying that it ran, in an era where most desktop machines were going to be Pentiums or Cyrix or AMDs and embedded controllers had programs written for them from HLL down to the metal), FORTRAN, LISP, ALGOL, and finally actual Unix systems programming (right after shell programming). In the first two years at university, I essentially slowly reviewed the first two years of High School Computer Science, and the last two years looked to be a rehash of my third year (my senior year in High School). There was no way to place or opt out of these courses. Computer Science was aimed at producing people who could use computers to research theory in math and logic.

    Then Windows95 happened. The university could not move quickly enough to make me ready to enter the workforce in 1997, because there were no object-oriented classes on the curriculum, much less how to program for Windows or OS/2 — and embedded programming was developed on the EE track.

    Now, UTD has Computer Science (theory), MIS, and between them they share Computer Programming classes. I strongly suspect, because of the introduction of soooo many of the potential “recruits” to global culture and Unix-ideals (and FSF, EFF, OSS, etcetera) via the Internet, and given the economic reality that they can be paid better (and not have to crawl through the mud) and/or still serve the US Government by working on projects in the private sector, there’s going to be a dearth of recruits to the US military who want to target logic, math, electrical engineering, or systems programming.

    In short, the people who are most likely to join the military today are also the people who are most likely to have never received or pursued the advanced education that programming requires. Conversely, those who have pursued that education are capable of releasing their aggression on virtual sprite enemies, are more likely to have learned that humans are mortal before they become eligible for military service, are more likely to have learned that not every citizen of Oceania is a scimitar-waving barbarian slavering to cut our throats in the night, and that there is/was no yellow-cake but Iraq does have a highly unpopular-in-the-area non-Muslim dictator and plenty of oil resources.

    It doesn’t take a genius to (metaphorically) add two and two together and realise that the US Government thinks it’s 3.987572975… and that the furtherance of the ideals espoused by the US Constitution is more likely to be done by /not/ joining the Armed Services, which actively discriminate against homosexuals, are rampant with militant radical protestant evangelists who are piggybacking their crusade on the back of the military action, for a country for which the significant and controlling share of the Federal government and many state and local governments are run by people who — wittingly or unwittingly — further impose reprehensible social policies (sexist, racist, homophobic, and Protestant-centric) while failing to do anything to prevent economic collapse (Phil Gramm!), forwarding an expensive and debilitating-to-us but enjoyed-immensely-by-the-opposition ‘War on Drugs’, and choosing a commander-in-chief whose qualifications for government service are limited to running an oil partnership into the ground, owning a baseball team, and ‘governing’ Texas.

    Ireland has a law against blasphemy, and I, a vocal and avowed atheist, would find Ireland far more inviting than America had Obama not won the federal election (solely because as a zero-sum-game, that election had one choice that was slightly better than the outgoing and one choice that was an incredibly insane proposition). I would imagine that talented American-raised programmers who had their choice of where in the world to live would be more likely to choose the Netherlands than America.

  38. Why do the drone programmers have to be 18 years old and fit to fight? They don’t. And much of the comments are correct. Programmers are hired by contractors – not the military. There are millions of programmers that are out of work in the U.S. BECAUSE of these STUPID wars. Since 2001, I have known hundreds of unemployed or under-employed programmers. We need to change our ENERGY policy and stop fighting wars for oil. There is a HUGE market in GREEN jobs; but banks and businesses are being tight-fisted. The reason that China and India are gaining on us is that we have sold our education for the cheap. We have paid for Asians to receive graduate education in technology. They have now taken that education back to their countries and taken the jobs with them. American CEOS have out-sourced more than manufacturing. We do not need to be afraid of a lack of drone programmers, but for continuing these bloody wars, continuing raping the Earth, continuing poisoning the water. We are soon going to reap what we have sown. Global Climate Change is Godzilla. Stupid general is concerned about a few Afghani dirt-farmers. People need to wake up to the truth instead of believing this propaganda.

  39. The people who know programming well enough to instruct it get better paying jobs than teaching high school.

    In addition to that, high school teachers aren’t paid enough, they do not perform well enough, and student discipline is not enforced.

    You can blame the religion boogey man if you want to, but the obvious answers still applies.

  40. We know even *less* about how our own bodies work than how these other machines work and we’ve been perceiving the world through those since the dawn of our species. Most of us don’t know how eyes or ears or vocal cords work, let alone brains, but we’ve managed to do OK with the perceptions they’ve delivered to us and expressions they’ve allowed us over the eons.

    Forgive me for taking issue with this one isolated from the rest of your post but I’d like to add in that people owe a lot of their improvement to the very fact that they know more today about their body and their mind than they used to.

    An example: I’d be a lot worse off if I didn’t know that the correct types of emotional stress will engage an “amygdala hijack” and create an irrational, destructive response that can cause a major crisis. Because I do know this, I can seek to insulate myself from such a trigger, and because I know this, I can reflect on incidences of this in more insightful and productive ways. I also benefit from understanding diffusion of responsibility, knowing about the Milgram and Stanford prison experiments, etc. I know how I work to some extent and as a result I work a lot better.

    That particular assessment really doesn’t belong in there. Understanding the single most definitive system in your life, one that enables you to have a life, is infinitely more important and beneficial than you just made it out to be.

    Of course people “do OK” without it just like someone who can’t read or write probably thinks they “do OK” considering that shortcoming, but you can bet they’d be more satisfied if they could.

  41. Our wonderful Military.
    Our wonderful wars.
    Our wonderful censors who hide any comment opposed to them.

  42. “Maybe some policymakers will consider adding programming to the US public school curriculum”

    That would be nice. Add accountancy and marketing and [insert hobby horse subject here].

    But doesn’t this particular example of a lack of programmers in the military say more about the sort of people who *join* the military than it does about a lack of programmers overall?

    Seems all a bit confused to me.

  43. Between 2000 and 2005, at the request of Bill Gates, Larry Ellison and their running buddies, congress bumped the H-1B quota from 65,000/year to 250,000. 2000 also marked the bursting of the dot com bubble, the completion of Y2K-induced migrations to package software, and the first wave of outsourced overseas software development. The combined effect of contraction in demand and expansion in supply was just what the Gates/Ellison crowd wanted – the cost of hiring a software developer in the US dropped precipitously.

    But people aren’t stupid. Why would anyone sign up for a computer science degree when – at least in America – it’s a profession in decline? So interest in computer science and software development ground almost to a halt.

    Lest anyone think I’m anti-immigrant; nothing could be further from the truth. I wouldn’t be an American but for immigration and likely you wouldn’t either. And I greatly enjoyed the variety of cultures and traditions brought in by the various immigrant populations. I’m hardly anti-immigration.

    What I am against is the mega-rich using their power and influence to shape immigration policies to take advantage of the rest of us. It’s a problem as old as human society, but the US Congress is supposed to thwart it, not facilitate it!

    1. “What I am against is the mega-rich using their power and influence to shape immigration policies to take advantage of the rest of us. It’s a problem as old as human society, but the US Congress is supposed to thwart it, not facilitate it!”

      I’m calling bull on that one.

      I work for in a very competitive technical industry that needs programmers. For admission into the company you need to pass rigorous programming tests and an interview. We test HUNDREDS of people of the years, most American. The Americans are the majority of the ones who fails these tests and therefore don’t get the job.

      And if you think that a programming test is somehow culturally biased, which is ridiculous, the company I’m talking about is in the States.

      It comes down to that most American college computer science graduates are just not up to snuff on what we need, but many foreign candidates are.

      Don’t hate the players, hate the American education.

  44. I love programming. I remeber the first day i wrote my first program. 8 years old. I was such a geek. Still at 16 i love to program. I can make anything and everything. Only i got an oppertunity with programming for the miletery :D

  45. The science and engineering students in my university classes today are not as experienced in computer programming as they were a few years ago; many high schools have replaced programming instruction (which became widespread in the 80s) with ‘softer’ topics like web design and media software.

    The best math/science students in HS often still program, for example in the context of robotics teams, though even then sometimes labor is divided in such a way that not every student on a robotics team does programming.

    narddogz above asks what computers were available in schools in ’72. I was in high school then, we had a PDP-8/s running several languages (including LISP!), though the ‘main’ language on it was FOCAL (a BASIC-like language). Many schools in the area had similar machines.

  46. “Mr President, we cannot allow a nerd gap!”

    1. Good programmers are intelligent, usually unorthodox problem-solvers; why on Earth would they want to join the quintessential authoritarian order-driven monoculture?

    2. Anyone smart enough to get a “Hello world” out of a magical whirring box is probably too smart to think that signing up to get body parts blown off by Johnny Taleban and his roadside carnage carnival is a good idea. There are less risky ways to make a living.

  47. I’m sort of okay with programming not being taught in schools.

    I’d MUCH rather have critical thinking/problem solving skills taught.

    Learning how to prioritize tasks, get clarifications, how to identify & learn what you don’t know and solve ugly ugly problems is more useful overall.

    People can be very daunted by problems outside their skillsets and the process of learning new skills to bridge knowledge gaps is both easier and harder than its ever been before.

    We live in the future where if you want to learn how to do almost anything there are tutorials, videos and information on how to do it available. On the flip side newer computer users often aren’t aware how just how much you can do with computers, the internet and a good search engine.

    They figure out the buttons to press to get what they want and they are pretty much done.

    The sense of wonder is missing. That sense of wonder of new technology is what makes the book “Accellerando” so awesome and yet unrealistic. We forget that no matter how freakin cool something is when it first is developed very soon it will be ubiquitous, forgotten or replaced. When you grow up having the world’s information at your finger tips it just isn’t that cool. Right now more people play Farmville than are on twitter.

  48. @77

    The technologies that enable the World Wide Web were indeed invented at CERN but the web is only a subset of the Internet, which was itself invented in the US. It’s an understandable mistake to make but combined with your ridicule of those who understand the difference, only serves to makes you look foolish.

  49. While I agree with the idea that the capability to program should be more widespread (after all, nine out of ten professional programmers can’t program either), I don’t think that the military is a good metric for programming ability in the general public. The military appeals to a very different psychographic than does programming, and many of the things that are encouraged by programming experience are discouraged by the military outside of rather small and isolated situations. One of the positive aspects of programming experience is the tendency not to trust orders that have been given — anyone who has managed to make a complete mess of some data by performing some operation slightly incorrectly knows the danger of blind obedience, and the extension of the metaphor into human lives should be obvious.

    That said, I should affix the disclaimer that I’m a damned dirty anarchist and pacifist and I’m generally pretty cynical about the ability of any military to do much of anything sensibly.

  50. When I first joined the military, it was to become a programmer. But they shunted me elsewhere. There aren’t all that many programming slots, but thousands of slots for combat support. Even if a mathematically savvy person was interested in joining, it’s easy to see that there is only a tiny chance of getting the programmer gig. Plus, there are other jobs available with a larger than tiny chance.

  51. there’s a deeper level here than the obvious & literal “Johnny Can’t Program” a computer in a computing language.

    to me, the true issue is “Johnny can’t meta-program” and “Johnny can’t hack his own wetware interface to Universe.”

    People in the West, generally speaking, have become disempowered & disenfranchised for various reasons…It’s no great surprise to me that the sciences (like programming) are in decline. Our esprit de corps has been sapped by multi-national corporations (who very much know how to take advantage of our human BIOS & are perpetually injecting us with virii & trojans) & their social/psychological engineers (script writers/coders).

    Look at a book like “Hackers” by Steven Levy & you can feel the love & thirst for knowledge dripping off the pages. Where, today, in Western culture is that same drive?

    With the rise of tech so has risen the military industrial complex’s power to learn our nature & taken advantage of that nature. Think Black Hat Hackers or the tribal shaman gone bad & turned evil sorcerer witch doctor. All your soul belong to Coca Cola. Your life & dreams sapped, sanitized, artificially flavored & dyed then bottled & sold back to you for a profit.

    It’s always better for humans when we possess a strong element of the pioneering spirit… as those wild-west coders of the 60’s, 70’s and especially early 80’s could tell you. In today’s world? Meh. Why pioneer or be unique or individualistic when it will probably just result in Johnny being labelled OCD & given ritalin or worse? Why pioneer when everything you could stuff your fat face with is on the computer next to your bed or at the mall or on the t.v. with its 600 channels.

    [end rant]

  52. I spent 16 years as a programmer. Almost everyone I knew in that area has been laid off. Lots of those nice jobs are now in Bangalore.

    It’s pretty idiotic to study programming when the military is almost the only employer left. That is almost as bad as having to move to Bangalore.

    Until the US has decent jobs again, it’s going to sink, and sink …

    Well, it’s what certain factions have been begging for. China is gonna own our butts.

  53. I’m still in school, but I’ve had the chance to do development at a few military contractors. Though I didn’t contribute much, I got a chance to work with the people who are actually behind our military’s latest and greatest technology.

    I’ll tell ya, there are plenty of programmers coding for our military on the government’s dime. Why does the Air Force now think this is a problem? The contractors do the work, and they bankroll it. Seems like a good system from where I’m standing. The contractors can make the drones, and the Air Force can fly ’em. Like many have said, programmers want to work in an office and get paid well. They don’t want to be soldiers. Most of the coders I’ve met have no moral qualms about programming weapons (I do, and that’s why I won’t work for contractors anymore).

    To all the people saying “programming is easy”, you’re 100% right. Pretty much anyone can learn to program. You parents could learn it, your kids could learn it, the guy bagging your groceries could learn it. However, programming for the military requires skills that take more work and more time to develop. You need to be good at higher-level math. You need to be able to adapt to new programming languages and new technologies. You need to be able to write code without bugs. If there are bugs, a lot of innocent people could die. If someone presses a button on a web-app and for some reason it deletes their vacation pictures, that sucks, but it’s not that bad. If someone presses a button and suddenly that nuke is heading for the wrong city… you get the idea. You don’t program extremely deadly multi-million-dollar weapons in javascript. The programmers I worked with are damn smart. Certainly smarter than me, probably smarter than you, and probably smarter than your average recruit. That’s the real issue here.

  54. If you’re smart enough to program a computer, you are smart enough to figure out that the military isn’t your best option, EVER!

    1. The military probably is not your best option now, but in thirty or forty years you’re not going to be the quick young smart kid on the block any more, your brain will slow down, you will probably not still be working in IT and making big bucks at it, and at that point VA benefits may indeed be your best health care option.

      But to get them you have to put the time in now.

  55. Speaking of math, there is something very wrong with math education in the USA. The rest of the western world runs circles around them, even at elementary-school level.

    I’m Canadian, like most within a few kilometres of the border, and it astonishes me every time I meet Americans or consume their media how innumerate they are. Those who aren’t are clearly self-taught.

    As tempting as it is to blame the pointless clinging to Imperial measures, I doubt that’s more than 5% of it. I think it’s an American attitude that says that not only is math difficult, but also unimportant. Quite a coup for marketeers and bankers, even before the Tea Party etc. That way the can advertise ‘sales’ as better than they are, skim some off the top with few the wiser, and otherwise lie and steal.

    But I’d like to ask the Americans here if I’m right? After all, it’s only an observer’s guess.

    1. Anon: It isn’t just math but in many subjects/life areas Americans are lacking.

      There isn’t *one* root cause item at the heart of this but many possible factors leading up to this.

      1. A huge percentage of people here believe in evolution. Many of those make fun of scientists, facts and reason.
      2. Science is being undercut by horrible, horrible product safety laws for chemistry sets and other such old time educational toys. These toys were an inspiration to many current awesome scientists.
      3. Our teaching emphasis has switched from more critical thinking skills to rote memorization to pass our crazy standardized tests.
      4. Our culture has shifted to hyper-attention span skill disorder. 5. Thinking critically about subjects is frowned upon in the “sound bite” media that currently prevails.
      6. Owning chemistry equipment in america now is highly frowned on (and in some places illegal) as police/media/people get suspicious and think you are cooking up drugs.
      7. Even just taking pictures in public places can now get you arrested.
      8. People are self-sorting in America. Mixed communities of people from different social classes are pretty much gone. We are mobile enough that we self-select where we live so we can be with like-minded people. This simultaneous homogenization and fracturing of America leads to the belief that “everyone thinks like us” which of course leads to shock when they don’t.
      9. The plethora of media choices has, in a way, dumbed us down. With the amount of choice out there in what to consume people tend to consume media that agrees with/reinforces their own internal viewpoints. This is why Tea Party Americans think their heroes for fighting the obvious injustices in the world and really discount reality (in their code “lamestream media”). Crazy ass viewpoints that people would have been fired for and unprofessional behavior is now tolerated and encouraged on the news.
      10. Our culture promotes being a crass sociopathic mental midget as the way to fame with reality tv.
      11. We pay more attention to hype than facts here. Over the last 60 years our country has gotten safer, teen pregnancy rate have dropped but the hype and nationwide news cycle has blown individual cases way, way, way, way, way out of proportion. When crazy sh*t happened in the 50’s locally it may have made a big splash in the local market but in most cases it wasn’t important enough to make the national news.
      12. Our nation has turned into a Nanny state in many ways not the least of which is that we happily turn over rights to be more “secure”.

      I still love America but there is a lot of stuff wrong here.

    2. Re Anon #99:

      I grew up in Canada and have since moved to the US. I think a combination of factors impact your perceptions here:

      1) Confirmation bias. America-bashing is *the* intellectual hobby in Canada.

      2) Better resource allocation. In Canada, a larger percentage of people end up with university degrees (due to pricing and other incentives). As a result, you have a lot more people you are likely to interact with on a day-to-day basis who have degrees. In the US, there is both a reduced level of education in certain respects, but also a better allocation of resources. There is greater opportunity for those with education. In general, the people working front-line service jobs tend to be the people who have the least education (gas station attendants, hotel workers, etc). At the same time, these are the people you are most likely to interact with.

      3) Reduced requirements in daily life for numeracy. Canadians by and large tend to be much more accepting of authority than people in the US (but accept and reject it in different ways). People learn more math because they are told it is useful or a good thing to know. In the US, people look around and ask “how am I going to benefit from this”. Since just about every non-technical job has automated away the need for math skills, people are less willing to invest effort into learning them.

      4) Being outside your normal surroundings. People tend to surround themselves with people like themselves, both intentionally and unintentionally. If you are a numerate individual, you are most likely to be around other people who are like you. When traveling, you get a much wider group of people.

  56. Why would tell my kid to get a CS degree when some asshat with a MBA can just decide to ship his job to India? My kid is going to be a plumber, electrician, or an asshat with a MBA.

  57. The core of the problem is that American culture has become rabidly anti-intellectual. We live in a country that

    1)Devalues analytical, critical and creative thinking in favor of lockstep ideology.

    2)Values the mindless regurgitation of pundits’ inflammatory sound-bites in place of rational discourse.

    3)Flat-out demonizes science, scientists and higher education– as in the desire and ability to THINK and LEARN– as “elitist.”

    4)Embraces ignorance as the greatest guardian of all virtue. (How’d that “Abstinence” thing work out for ya?)

    Not only are Johnny and Janey unable to learn to program– They can barely read/write/comprehend their own native language.

    Most of’em are so damn dumb they don’t know how to avoid getting pregnant.

  58. Am I remembering this correctly: Didn’t Bill Gates complain about finding programmers in the US and then subsidize training schools in India right after that? Couldn’t he have conceivably trained Americans?

  59. Mr. Rushkoff, I think you are correct in your observation that “Digital tools are not like rakes, steam engines, or even automobiles that we can drive with little understanding of how they work.” but completely off in your conclusion based on that observation.

    Rakes create tactile, physical input and response – using a rake incorrectly and you will get tired more quickly and be less effective. Experiment and you will be tactilly rewarded – you gain understanding as a direct result of use.

    Steam engines – a little antiquated, but being entirely mechanical someone willing to observe a steam engine thoroughly can figure out how they work – heat changes water into vapor, vapor expands, pushes piston. Direct observation yields direct results.

    Automobiles – these lie somewhere between steam engines and computers, depending on the vintage of your vehicle and its propensity to break down. Plus, cars offer direct responses to your interactions with them. Not just steering and speed – when you’ve had to fork over hundreds of dollars to replace a C-V joint, you pay attention to those squeaking noises.

    So I’d say that the examples you picked give credence to keeping auto-shop in schools and mandating kids help out groundskeeper willie now and again as the likelihood that they will need to use physical tools and dive a car are much greater than piloting a drone.

    I understand the general gist of your argument – that you cannot trust the machines you don’t know how they are programmed – yet you are willing to casually dismiss the importance of the same understanding for the operations of millions of multi-ton missiles traveling at high rates of speed in close proximity to our fellow citizens (cars) because they are not your area of interest – too old school.

    I personally do not see computers as an extension of ourselves the way you do. To me a person’s computer does not represent who they are as a person any more than their car or rake does. The art they create on their computer, their care they take while driving and how they care for their lawn does start to say a little something about them as a person.

    So I agree that we need a more robust educational system, but I think we shouldn’t insist that everyone learn C++, but rather we do everything we can to get kids to get interested in the world around them and asking questions – and if it were up to me, I’ insist on starting with the rake and the car. Steam Engines and Drone Piloting Software would be electives.


  60. “Say the kid has four years of exposure to programming in high school, by the time she’s off to college, all the stuff she’s learned is obsolete.”

    Others have mentioned that this is a fallacy, but I will tell you how much of a fallacy it is: the first time I encountered CGI (how a Web server runs a program or script) I said to myself, “gee, this sure seems a lot like IBM CICS transaction processing.”

    In CICS, your program does some processing, sends a screen to the terminal, then ends. The terminal has enough smarts to let the user enter data into the fields you defined, and when they hit Enter, your program gets started over again and passed the data the user entered. Then it does some processing, sends another screen, and ends.

    This is also how CGI works, if you replace “screen” with “page” and “terminal” with “browser.” The details differ significantly, but anyone used to CICS would find CGI comprehensible and straightforward to program for. (You could even use COBOL for it, like you would with CICS.)

    CICS was released in 1969; CGI was developed 24 years later, in 1993. There is nothing new under the sun.

  61. Actually, in the book I make a pretty strong argument that if we had considered the biases of automobiles rather than just accepting the imagery in auto advertisements, we might have thought twice about letting the auto industry dictate land use policy, moving tonthe suburbs, and spending two additional hours each day operating heavy machinery just to get to work. Not to mention one day per week paying for the privilege of car ownership.

    Much more important than programming for me is the more basic ability to recognize the biases of the tools we are using. Knowing just a little something about programming helps us to use the technologies a bit more intentionally.

  62. Doug,
    Why is it discouraging that programmers with skills are choosing to go other places than our oversized, overblown, completely-out-of-proportion-with-the-rest-of-the-world-military? Why do we laud those who program things that kill and maim, anyway.

    Rather, we should be excited that more and more intelligent people are using their programming smarts to create things of actual value to people, and that they are doing it in an increasingly deregulated and free market, and an increasingly globalized and peaceful world.

    Let’s encourage our programmers to create more plowshares, rather than swords. Keep our talent out of the business of Empire!

  63. I’ve come to this discussion late.
    I have been programming since the 1970’s and I still get great satisfaction from programming. I currently use an up to date version of quickbasic which is completely back-compatible and completely free (www.qb64.net).
    It allows you the progam by the seat of your pants a satisfaction that cannot be enjoyed with these new-fangled languages (C++ especially).

Comments are closed.