Game Design, Programming and running a one-man games business…

Time for the ‘teenage coding god’ meme to die

What is it with TV executives and non-tech savvy journalists? Can they not do the vaguest bit of research and kill of this myth about ‘gifted child genius programmers and hackers’? its so off-base its laughable, especially to anyone my age who works as a software engineer. If it isn’t immediately obvious what I’m talking about, its characters like this from silicon valley:

And also like this (also from silicon valley)*

And like this from ‘halt and catch fire’

And any number of media stories about ‘teenage bedroom genius hackers’. I guess it all goes back to a single film, in the early days of computers (and the threat of hacking)…war games, starring Matthew Broderick aged 19 released in 1983. The myth of the young genius computer whizz was born, and nobody has seemingly challenged it since.

Firstly…lets get something straight., The ‘cleverest’ programmers are not usually ‘hackers’. Firstly, its much easier to break something than build it. You build software with 100,000 lines of code and 1 line has a potential exploit? you did a good job 99,999 times, versus a hacker who finds that one exploit. are the finest minds in programming really working for the Russian mafia? I suspect they are more likely to be working for Apple or Deep Mind or some tech start-up with fifty million dollars worth of stock options. They get better pay and no threats of violence, which would you choose?

Secondly, computers were invented a while ago now. We have people with a LOT of experience in the field out there now. Amazingly, C++ is still perfectly usable, and very efficient, and given the choice between someone who has written tens of millions of lines of C++ over twenty or thirty years, versus some ‘bright’ kid…I’m going with the old guy/girl thanks.

Learning to code takes TIME, yet because bookshops hawk crappy ‘learn C++ in 21 days (or less)’ bullshit, some non-coders actually believe it. There is a BIG difference between ‘knowing some C++’ and being a C++ software engineer. Writing code that works is fucking easy. Writing reliable bug-free efficient, legible and flexible and safe code is fucking hard. Why do we think that surgeons with 20 years experience are the best choice for our brain operation, yet want software coded by a fourteen year old? Is there some reality-distortion field that turns programming into a Benjamin button style alternate reality?

No.

So ideally, any movie or TV series that features the ‘ace’ coder would have them aged about 30-40, maybe even older. At the very least they would be in the darned twenties. Enough with the school-age hacker god bullshit. Here is a recent picture of John Carmack. I bet he is a better coder than you, or me. He has even more grey hair than me.

While we are on the topic, the best coders are not arrogant, mouthy, uber-confident  types on skateboards wearing hip t-shirts with confrontational activist slogans on them, and flying into a rage whenever people talk to them. Nor do they always blast out heavy metal or rap music on headphones whilst coding on the floor cross-legged, and nor do they ‘do all their best work’ when on drugs, or at 3AM, or after a fifteen hour coding blitz.

These are myths that make TV characters ‘more exciting’. Except they also make them unbelievable and stupid. I’m quite unusual in being a fairly extravert (in short bursts) programmer. Put it down to being a lead guitarist in a metal band 27 years ago. Most really *good* coders I know are actually pretty quiet. They will not draw attention to themselves. they are not arrogant, they know enough to know that they know very little. Really good coders tend not to brag. I brag a bit, its PR but would I claim to be a C++ *expert*. Nope, I know what I need to know. I also only really know C++, a little bit of PHP, and some HTML, CSS, but not enough to do anything but the few things I need. When I meet coders who brag that they know 10 languages, I get that they know the syntax, but how to use them effectively? enough to write mission critical code that a company is built on? I find it hard to believe.

Most coders look pretty boring. Most of us are pretty boring. Most of us are not arrogant shouty attention seekers. The experienced ones know to stop coding by 9PM at the very latest, and to take regular breaks. We also aren’t stupid enough to store backup disks next to hi-fi speakers in the same room (an actual plot point in halt and catch fire). We make shit TV, but good code.  I suspect our portrayal will never change.

 

*All the SV cast are young, but carla seems to be portrayed as younger, cooler, more confident than the rest.


20 thoughts on Time for the ‘teenage coding god’ meme to die

  1. Thing is i knew someone close who happened to live a ” Matthew Broderick aged 19 wargames” type experience very close to what is in the film except the computer did not call back – secret service did – which generated a bit of anxiety around his friends ; this was a few years after the movie. I also knew some very talented in programming at 20 that were living “point break style minus burglaries”. So they exist, they are few but i have seen them ;)

  2. It’s just Hollywood, unfortunately. In nearly every job, older, more experienced people have greater skill, more finely tuned abilities, and produce better work. However, the movie industry loves to sell “young and cool” people — not sure if they will ever change their minds on that.

    The one good thing that may come from such portrayals is advertising the profession… young people started to see coding as something fun, interesting, and “cool”. It may have drawn/be drawing in young people who might not otherwise have joined the profession.

    1. I was teaching a programming class some while ago. All the students were teens, and almost all of the were so much influenced by these portrayals, that they had some kind of illusion of becoming a serious hacker overnight and do cool things (as they called it).
      They hardly tried to learn the basic concepts of programming!

    2. My daughter was considering taking computer science at university until she found out there would be *gasp* actual coding.

      It’s so unbelievable to me this profession ever got cool let alone trendy. But unfortunately the only people that brainlessly ever follow trends are the type of people that will never actually get good at what they are pretending to be interested in. Of course the clothes, rainbow hair, problem glasses, “nerd culture” idioticy is right up their alley.

  3. I think one of the largest factors that contribute to the “young genius” myth are the older programmers who stop learning/developing. The older coders who hone their craft are amazing and I learn something new from them everyday (not just about the codebase, but about software engineering in general). The ones who are complacent, their code tends to be sloppy with not much thinking behind it. They also kill new ideas out of “experience” as opposed to reason.

    The “young genius” programmers who have great attitudes are awesome to work with because they’re coachable and learn fast. The “young genius” programmer with horrible attitudes say everything is stupid and build things without much thought. More often than not, I have to clean up after the latter “young genius”.

  4. While I agree with you that the portrayal of software engineering and hacking in pop culture is highly annoying, I have a few observations to make:

    1) I’m not sure if it’s actually software engineering specific or if it’s just the field you happen to know best. Imagine being a lawyer, police officer or medical doctor and comparing your reality to how your profession gets portrayed in movies. I bet you could write a similar rant.

    2) The age thing is actually not too far from true. To wit the average age at companies like Google and Facebook:
    http://www.smartinsights.com/?attachment_id=74653 (granted, it’s a bit sad that the article can’t tell the difference between median and mean, but whatever, I think the point still stands)

    3) Of all counter examples you could have chosen, Demis Hassabis of Deep Mind is just about the worst possible pick. He actually is one of these young coder whiz kids and wrote Theme Park before he was legally allowed to drive or drink alcohol (https://en.wikipedia.org/wiki/Demis_Hassabis).

    4) Carmack is legend.

    1. What do you mean by the article can’t tell between mean and median? They’re both types of averages.

  5. While the majority of 1337 haxors are just script kiddies, the ones finding exploitable bugs are doing very hard work. Finding that 1 exploit in 100,000 lines of code is hunting for needles in a haystack.

    As for why the teenage coding god, yeah, it’s partially just Hollywood being Hollywood. But I’m with Dave; there is a truth that many programmers decide they know everything they need to know when they’re 25 or 30 and just stop. I find the thought depressing. I still love learning new things and becoming a better programmer, but I’ve run into them.*

    As for those teenagers, some of them compensate for lack of experience with sheer persistence. (Aah, the good old days of up-all-night coding.) The result tends to break easily, and to be hard to maintain or expand, making it difficult to use for real work, but it’s often attention grabbing. They’re certainly not the coding gods from the movies, but there is a small kernel of truth in there.

    *For the sake of balance, the counterpoint is the new programmer who is overly infatuated with the newest toys, always jumping from technology to technology. They’re learning a lot, but they’re not getting any damn work done.

  6. >tens of millions of lines of C++ over twenty or thirty years

    10 million lines of code over 40 years * 200 days per year is around 1250 lines of code per day. I doubt anyone has ever got close to that for debugged working code (unless you include auto generated code).

    It has taken me 12 years to write approx 150 thousand LOC of PerfectTablePlan C++. That is around 60 lines per day. Admitedly I was also doing other things (marketing, support etc). But 20x that productivity over a sustained period seems unlikely.

    1. Oh s**t you’re right: we’re so boring that we even do statistics about how many lines of code we could have written over 20 years! ^_^

      I prefer the whiz kids cliché…

  7. When we are young we are very curious and we think we can do anything. We don’t factor in the time or money that it will take because we don’t worry about money and time seems unlimited. That can be a very important catalyst to accomplish some amazing things. The code may not be as elegant or optimized as it may be later in our careers but the important thing is that the young coder thought of something new and spent the time to learn and research the problem. Mastering the craft of software engineering is a lifelong pursuit, one that I still haven’t truly mastered after 37 years.

  8. Never saw Halt and Catch Fire, but the first character pictured serves as a deconstruction of this trope in Silicon Valley, and the second you assume to be at least in her mid twenties, because she’s a contemporary of the main group of characters in Silicon Valley (they reference having worked with her in the past, so one assumes she’s finished college and been a professional for a few years).

  9. Close, except for one thing. The best programmers out there ARE hackers – not crackers (the ones who break computer security illegally), mind you, don’t confuse the terms, but true hackers. (See the writings of Eric S. Raymond). Real hackers, by the original industry definition typically have a deeper level of mastery than just your work-a-day-only coders. That said, while many hackers get their start as teens, you are totally correct that they don’t have enough time to become masters of their craft. All the same, we’ve gotta stop mixing the terms up. Crackers don’t deserve the hard earned title of Hacker.

  10. Honestly, I don’t see the problem. I started programming at around 11 years old and by the time I was in high school I would consider myself pretty competent. Sure, that doesn’t translate to being the top 0.0001% of programmers, but good programmers often get their start early. By the time a kid who started programming at 12 turns 18, they have 2 more years of experience than a student who just graduated college and learned all their programming knowledge during that time. A thirty year old will have more experience, but they also have more baggage coming in — they will be more likely to want to carry their current knowledge of their current language, framework, etc. into whatever they start doing. Like trying to apply Java-style OOP concepts to JS when they don’t fit at all and things like that.

    And I completely disagree with the 1 in 100,000 thing. It’s hard to do both. Yes, it’s hard to write 100,000 lines of code. It’s just as hard to be able to read a 100,000 line program and find everything that could possibly look like an exploit. Or even worse — dealing with the program without the source code (as most hackers do). The programmer has the benefit of tools that help flag undefined behavior or possible buffer overflows, etc. The hacker doesn’t get any of that. They might be able to poke around with tools that check for common exploits (a la SQL injection tools) but that isn’t usually enough to be productive against a good opponent (anything beyond personal sites… the people hacking Google, Facebook, Twitter are much better at hacking than I am at programming).

    The thing about 3am, drugs, metal/rap, or programming for 15 hours match my personal experiences pretty well (with both myself and others). I don’t see why this is wrong. From the way it seems, all of this is rather common in Silicon Valley today. Read about people abusing amphetamines or modafinil, the Balmer peak with alcohol, or microdosing drugs. These are all fads in SV and programming in general. Music taste has nothing to do with programming, probably a lot more with age. Most programmers I know listen to music to improve focus, and most younger ones will listen to rap (it’s what’s “in” now). Programming for 15 hours straight is just what happens when you’re in school and you get one day a week to work on projects (and have no job making you program all day). If you enjoy programming, it’s easy to get involved in a project where you’ll sink in multiple hours a day, because that IS all the programming you’re able to do and you’d rather get as much done as possible.

    The whole point of this post annoys me, quite frankly. It’s not even about the fact that it doesn’t match my experience or anything, it’s just a weird complaint. Obviously Hollywood will play up anything. It’s much more interesting to talk about them playing up the technology aspect (notorious Hollywood hacking clips) than it is to talk about who the programmers are. Obviously, it’s easier for the audience to connect with a younger person with the same taste of music and the same personality type.

  11. Yeah you’re right the best way to make a profession look cool is to show a bunch of old dudes and middle aged women moaning about the practicality of a new framework while waving their walking sticks at anyone that doesn’t care that things break sometimes. Don’t be mad bro. Embrace the fact that your and my profession is appealing.

  12. Challenge to hackers (or Carmack) that think they know their stuff:

    Take Quake 2 and turn it into cheater proof (while allowing user made mods) without changing playability (responsiveness of guns etc)… Bonus: Do it on Windows instead of console.

    I so fondly remember playing CTF on that game … until only the bot users remained (and the few natural “railgun gods”). TBH I actually think most of the very last remaining players weren’t cheaters, they were just so good that if you went to the server without a bot you’d not stand a chance. To fix that, add a star craft 2 style or similar system where the “aiming gods” get found and matched to their own instance/server so the game is enjoyable to those who don’t have 8/10 hit rate.

    I moved on to BF1942 but the bots/hackers came there too and after that I’ve been DONE with online FPS games even though I’d enjoy one now and then it just pisses me off that some “mastermind” hacker hands out their cheats on the web at all. A game can sustain couple cheaters* if there’s many servers but when those tools go public that causes most leave and the difficulty level then goes up so much with only the experts and bots around that most online games don’t survive that as the intermediate level players leave too then.

    *I don’t think this is valid anymore though since the cheater tools, source codes and tools to obfuscate your cheat code or hide in the system are now widely available – the bar to cheating has been lowered so much that the only way forward on PC is to have some DRM/anti-cheat take over the CPU and ensure that every executable byte in memory is signed and every non-executable byte in memory is loaded from a signed executable loading a signed file.

  13. Oh my fugging god in hebben thank you!

    I got into programming when I was about 11, I’m 40+ now, just in time to experience delightful ageism in the industry. And I can honestly say in my personal experience this whole “preteen code god” is a complete joke. I have never in my entire life seen or read ANYTHING proves it’s true let alone possible.

Comments are currently closed.