Skip to content
DevMeme
4475 of 7435
Bell curve of IQ vs lines of code: productivity paradox meme
DeveloperProductivity Post #4910, on Oct 7, 2022 in TG

Bell curve of IQ vs lines of code: productivity paradox meme

Why is this DeveloperProductivity meme funny?

Level 1: Less is More

Imagine you have three kids tasked with cleaning up a messy room. The first kid is very young and only manages to pick up two toys in an hour. The second kid zooms around busily and moves forty-five toys all over the place in that same time – they make a big show of working, but in the end the room is still cluttered (they just relocated the mess). The third kid is super smart about cleaning: they carefully put away a couple of important things and even remove some broken toys from the room entirely. So at the end, the smart kid’s cleanup actually has fewer toys in the room than when they started. Now, if you only judged by “number of items moved,” the busy second kid would seem best. But clearly the third kid did the best job – the room is cleaner and simpler, even though they moved fewer items (and even threw some junk out). The funny idea here is that sometimes doing less can actually accomplish more. In other words, just because someone is doing a lot on the surface doesn’t mean they’re being the most effective. The meme uses this cleaning story in coding: the smartest developer “cleans up” the code (removing clutter), so writing fewer lines of code can make a better program, just like having fewer toys out makes a cleaner room.

Level 2: More Code, More Problems

On the surface, this meme is highlighting the difference between quantity of code and the quality of code. It uses a bell curve diagram (the classic IQ distribution shape) with funny cartoon faces to show four types of developers. The joke is that a beginner and a super-expert both only produce about “2 lines of code per hour,” while an average developer writes “45 lines per hour.” And the most genius guru actually writes “-2 lines per hour” (meaning they deleted code instead of adding). This is a bit of absurd humor to make a point: judging a programmer by how many lines of code they write is a mistake. In real life, more code doesn’t necessarily mean better results – often it’s the opposite.

Let’s break down the characters and idea in simpler terms. Imagine a junior developer who is just starting out: maybe they only manage to write a couple of lines in an hour because they’re struggling with the syntax or figuring out what to do. Now take an average developer – they might crank out dozens of lines of code quickly, building a solution in a very literal or verbose way. They feel productive because, hey, 45 lines in an hour looks like a lot of work! Now consider a senior developer (the “hooded hacker” in the meme): they might spend most of that hour thinking through the problem or cleaning up the approach, and end up writing only a tiny amount of code that solves the problem in a clean, efficient way. They know a trick or a better method that doesn’t require so many lines. Finally, the guru-level developer (the “galaxy brain” with the cosmic cube head) is someone so advanced that they actually remove some code and make the overall program simpler. Maybe they found that some code wasn’t needed or was doing something redundant, so they delete it, making the software better with less code. Their hourly output is “-2 lines” because they literally took away lines of code.

The meme is poking fun at the idea of using “lines of code per hour” as a way to measure a programmer’s productivity. This is an example of a bad KPI (Key Performance Indicator) – a fancy term for a metric used to gauge performance. A non-technical manager might look at code like factory output and think, “If Developer A writes 100 lines a day and Developer B writes 20 lines, A is working harder.” But software isn’t about quantity of lines – it’s about what those lines do. One well-written line of code can replace ten poorly-written lines. If someone fixes a bug by removing 10 lines of unnecessary code, they accomplished something great (even though a naive metric would say they had “-10” productivity). This is why we call it a productivity myth or fallacy – it’s a common misunderstanding that more = better in coding.

Some important concepts shown here:

  • “Lines of code” metric: This is literally counting how many lines you write. It’s an old-school measure that some organizations used to use, thinking it measures effort. The meme shows why this can be silly. For example, one programmer could write a very long, complicated solution (lots of lines), while another finds a short, clever solution (few lines). The short solution is usually easier to maintain and less error-prone.
  • Code quality vs. quantity: CodeQuality means how good and clean the code is – does it clearly solve the problem, is it easy to read, less likely to break? Writing 100 lines of messy code isn’t as good as 20 lines of clear, high-quality code. In coding, less is often more: if you can solve it in fewer lines, you generally reduce complexity. Fewer lines = fewer places for bugs to hide.
  • “Negative” lines of code: You might wonder how can someone write -2 lines. This means they deleted code. Perhaps there was a chunk of code doing nothing useful or doing things in a long way, and an expert removed it or replaced it with a simpler approach. Removing code that isn’t needed improves a codebase. It’s like subtracting clutter. Developers actually consider it an accomplishment to reduce code size without losing features.
  • 10x engineer myth: There’s a popular idea that some engineers (“10x developers”) are ten times more productive than others. But a myth is something people believe that isn’t really true or is oversimplified. Some interpreted this as “a 10x engineer writes ten times more code.” In reality, if such super engineers exist, they’re not typing faster – they’re making better choices, which often includes writing concise code and avoiding unnecessary work. The meme jokes that the smartest dev actually writes less, not more, turning the “10x” idea on its head.
  • Productivity KPI fallacy: A fallacy is a mistaken belief. Here it refers to the false belief that you can measure a programmer’s productivity with a single number (like lines of code, or number of commits). It’s a fallacy because coding is creative problem-solving, not assembly line work. Setting “lines of code” as a KPI will likely encourage the wrong behaviors. Developers might intentionally write overly verbose code or avoid simplifying things, just to keep the count high. (There’s an old joke: “If you pay programmers by the line of code, they will write you a 1000-line program that could have been 100 lines.”) In short, focusing on a raw count can backfire.

Think of it this way: if one programmer writes a new feature in 20 lines of code, and another does the same feature in 50 lines, who did a better job? The one with 20 lines might have used a more elegant method or a built-in function, whereas the 50-line version might be doing things the long way. The feature works in both cases, but the 20-line solution is less code to maintain and likely has fewer things that can go wrong. That is higher code quality. The person who wrote 50 lines wasn’t necessarily “50 is bigger than 20, so they worked harder” – they just took a different approach, possibly due to less experience with simpler solutions.

The bell curve image is also a well-known meme format on the internet. Typically, it shows a distribution of intelligence (IQ) and assigns simple or extreme opinions to the low and high ends, and a more convoluted opinion to the middle. Here, the low IQ and high IQ positions oddly agree (“2 lines per hour” each), while the mid IQ is the outlier insisting on “45 lines per hour.” It’s a way of saying that sometimes very simple thinking and very advanced thinking reach the same conclusion (e.g., that focusing on tons of lines is foolish), whereas the middle-tier overthinks it or hasn’t realized the truth yet. The hooded hacker archetype on the right side usually represents an elite, mysterious coder (you often see hooded figures in illustrations of “hackers”). The galaxy brain (a reference to another meme where a brain grows to the size of the galaxy when someone has an epiphany) shows an ultra-enlightened state – in programming terms, that’s the master coder who operates on a different level. The cube head is a humorous way to visualize an extremely “expanded” mind. And on the left, that goofy wide-eyed character is often used to depict someone dull or very simple-minded.

In everyday development teams, this comic scenario actually has some truth. Junior devs often produce less output because they’re learning. Mid-level devs might write a lot of code because they’re eager to prove themselves or they haven’t learned the art of simplification yet. Senior devs often spend time reviewing, refactoring, and optimizing code rather than just pumping out new code. A big part of a senior engineer’s job is actually removing unnecessary complexity – which can mean removing lines of code. So if a company only measures “productivity” by lines written, the junior looks bad (low output), the senior also looks bad (since they might even have negative output after a refactoring spree), and the mediocre dev looks great by comparison. That’s clearly not an accurate picture of who’s contributing value! This meme exaggerates it to make it obvious: judging engineers by lines of code is as silly as judging a book by how many words it has, not what the story is.

In summary, the meme is a lighthearted way to say “quantity of code isn’t the same as quality of code.” It resonates with developers because it reflects a real lesson we learn over time: it’s not about writing more code, it’s about writing the right code. And sometimes the best code you can write is code you decide not to write at all. The humor works because it flips the script on what non-developers might assume – that genius programmers would be typing like crazy. Instead, the genius might be the one who knows when to step back and keep it simple.

Level 3: Brevity Beats Bloat

This meme captures a classic productivity paradox in software development: the most experienced engineers often write less code, not more. The bell curve graph humorously plots IQ vs. lines of code to illustrate that both the novices and the geniuses output only 2 lines per hour, while the mid-tier “know-it-all” proudly cranks out 45 lines per hour. The far-right galaxy brain character even achieves -2 lines per hour – meaning they delete more code than they write. It’s a tongue-in-cheek takedown of the lines_of_code_metric as a measure of DeveloperProductivity. In other words, this is developer humor skewering the productivity_kpi_fallacy – the idea that more lines of code = more progress. Seasoned devs see the joke: equating code quantity with productivity is like judging a book by its page count.

Why is this funny to experienced engineers? Because we’ve all seen the 10x_engineer_myth misinterpreted as “10x more code.” In reality, the mythical “10x engineer” isn’t typing 10 times faster – they’re solving problems 10 times more effectively (often with cleaner, shorter code or no code at all). The meme’s middle character (the nerdy guy with glasses at 100 IQ) represents the well-meaning but naive developer who measures success in raw output – 45 lines per hour of churn. This is the coder who might brag about pushing hundreds of lines a day, or a manager who only understands easy metrics. The joke here is that both the low-end newbie and the high-end wizard produce just 2 lines/hour, implying that raw line count is a meaningless yardstick. The hooded_hacker_archetype around IQ 140 is the skilled developer who knows a few well-placed lines can accomplish what 50 mediocre lines do. And the extreme galaxy_brain_programmer with the cube-head (off the charts IQ) is so advanced that they achieve negative lines: they spend their time pruning and refactoring, removing more code than they add. This resonates with senior devs who’ve spent days deleting legacy code and felt more productive doing that than any feature they coded from scratch.

In real projects, focusing on code quality over quantity becomes crucial. More lines of code often mean more surface area for bugs and more technical debt to maintain. A dense 500-line module isn’t a bragging right – it’s a nightmare when you’re on call at 3 AM debugging why the system crashed. The meme implicitly references Goodhart’s Law (“when a measure becomes a target, it ceases to be a good measure”). If you set “lines per hour” as a goal, developers will unconsciously optimize for it – producing lots of verbose, possibly redundant code that ticks the metric without truly improving the software. The result is bloated codebases where quantity went up but CodeQuality went down. Every seasoned coder has seen management attempt some dumb metric like this. Perhaps your team got monthly reports of lines added, and suddenly pull requests were full of filler code or needless abstractions. I’ve personally witnessed an intern copy-paste a utility function 10 times just to hit a “productivity” target – creating a maintenance headache for the future. Meanwhile, the staff engineer spent the week refactoring 1,000 lines down to 300 leaner lines, eliminating a bunch of bugs in the process – their net -700 lines didn’t look “productive” on paper, but it was the best contribution of the sprint.

The bell curve format accentuates this industry truth with dark humor. It implies a sort of spectrum of enlightenment: the wide-eyed junior on the left struggles to produce code; the mid-level developer in the middle just pumps out code without yet understanding that more isn’t always better; and the enlightened senior on the right writes minimal code or deletes code, because they understand the 10x secret that simplicity and clarity yield the real productivity gains. Here’s a closer look at each “IQ bracket” character and their real-world coding behavior:

  • Low IQ (far left, “2 lines per hour”) – This represents a newbie developer. They might only write a couple of lines in an hour because they’re still learning or stuck on problems. Their output is small (maybe just printing "Hello World" or adding one if statement) simply due to inexperience. Ironically, by the flawed metric, they look as “unproductive” as the genius – but for totally different reasons.
  • Average IQ (middle, “45 lines per hour”) – The typical dev who believes cranking out lots of code equals working hard. This is the person proudly committing big chunks of code every hour. They haven’t yet learned that more code can mean more problems. The meme shows this character as a nerd with glasses (often called a “midwit” in meme culture) to poke fun at that overconfidence. They’re likely writing plenty of boilerplate, maybe copy-pasting solutions, and measuring success by volume. Many corporate environments unintentionally encourage this with metrics dashboards (“You wrote 500 lines this week, good job!”). It’s a satirized snapshot of the DeveloperProductivity mindset gone wrong.
  • High IQ (right of center, hooded hacker, “2 lines per hour”) – The experienced coder or “10x engineer” archetype. They might only commit a few lines of code, but those lines pack a punch. Perhaps they used a powerful one-liner or leveraged a library to solve in 2 lines what would take others 40. Or they spent most of the hour thinking through the problem and then wrote an elegant solution very concisely. This person values code quality and maintainability. They know that each line of code is a liability (it has to be tested and maintained), so they write fewer lines that do more work. They may also spend time refactoring existing code instead of adding new code, keeping the codebase lean.
  • Ultra-High IQ (far right, galaxy brain, “-2 lines per hour”) – The enlightened master who has transcended coding metrics. They have such a galaxy brain that their contribution is often removing code altogether. This could mean deleting legacy code that isn’t needed, removing duplicated logic, or simplifying a system so much that hundreds of lines become unnecessary. Negative lines of code sounds counter-intuitive, but it’s a real thing on senior dev teams – you might see a commit where 100 lines are deleted and only 20 added, net -80, because the new approach was that much more efficient. The cube-headed character is an exaggeration of the guru who realizes “the best code is no code.” They know every line you don’t write is one that never causes a bug or needs an update.

By plotting these characters on an IQ bell curve, the meme satirizes the idea that raw intelligence (or rather experience and insight, as IQ here is a proxy for developer wisdom) has an inverse relationship with lines of code written. It’s making fun of the productivity_kpi_fallacy in a way that engineers nodding at this meme find painfully relatable. We laugh (maybe a bit bitterly) because we’ve been in meetings where higher-ups ask “Why can’t you developers deliver more features faster? Can we measure commits or something?” And we recall the quote:

“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.” – Bill Gates

In practice, being “productive” often means deleting code, simplifying implementations, or even spending an hour thinking and writing nothing, thereby saving days of future debugging. The bell_curve_meme drives that point home: real productivity isn’t a linear function of keystrokes. It also pokes at our tech culture’s obsession with IQ and “genius” programmers, by joking that the smartest of all writes negative code. The end result is a meme that combines DeveloperHumor with a genuine insight: more code does not equal more value. It’s a well-aimed jab at anyone who still thinks counting LOC is a smart idea. The next time a boss asks for your “lines per day,” just remember the galaxy-brain developer removing code and smile – sometimes the best DeveloperProductivity move is to hit the delete key.

Description

The image shows a classic statistical bell curve (blue fill, grey outline) labelled “IQ score” along the x-axis, with tick marks at 55, 70, 85, 100, 115, 130, 145, 160, 175 and 190 and shaded percentage bands (34 %, 34 %, 14 %, 2 %, 0.1 %, 0.01 %) indicated above the curve. Four internet-meme caricatures are positioned at different points: far left a simple wide-eyed head with the caption “2 lines per hour”; at the mean a nerdy character with glasses, braces and undercut hair captioned “45 lines per hour”; at roughly 140 IQ a hooded hacker figure captioned “2 lines per hour”; and at the extreme right a galaxy-brain cube head captioned “-2 lines per hour”. The joke contrasts raw line-count metrics with developer maturity - implying that both novice and elite engineers write (or even remove) very few lines, while average programmers churn out many. It satirises the flawed use of “lines per hour” as a productivity KPI, highlighting code quality, refactoring and the fallacy that more code equals more value

Comments

13
Anonymous ★ Top Pick Management keeps celebrating positive LOC, but our smartest commit last quarter was - 2,837: one PR that deleted the entire hand-rolled scheduler we replaced with cron
  1. Anonymous ★ Top Pick

    Management keeps celebrating positive LOC, but our smartest commit last quarter was - 2,837: one PR that deleted the entire hand-rolled scheduler we replaced with cron

  2. Anonymous

    The best code review I ever did was rejecting a 2000-line PR and approving the 50-line rewrite that replaced it six months later - same developer, just after they discovered the standard library had that functionality all along

  3. Anonymous

    The most enlightened senior engineers understand that their greatest contribution isn't the 10,000 lines they wrote, but the 50,000 lines they prevented from being written - or better yet, the legacy monstrosity they refactored down to 200 lines of elegant, maintainable code. Negative LOC velocity is the true measure of architectural maturity

  4. Anonymous

    Make LOC/hour the KPI and the senior optimizes by pushing negative diffs - git revert as a service

  5. Anonymous

    Senior velocity is measured in -LOC/hour - the day you delete a microservice and the system gets faster, your KPI thinks you underperformed

  6. Anonymous

    Left tail at 2 LOC/hour: juniors copy-pasting SO. Right tail: seniors wielding delete like a scalpel

  7. @mxkrsv 3y

    1 dev meme per hour

  8. 𝙳𝚖𝚢𝚝𝚛𝚘 𝙼𝚒𝚗𝚝𝚎𝚗𝚔𝚘 3y

    bruh i made a simmilar meme format myself a couple of months before this is a local meme btw

    1. @beton_kruglosu_totchno 3y

      your x-axis is fucked up

  9. @CcxCZ 3y

    I know a person who worked at Mozilla before "the restructuring" who was pretty proud of his negative LOC contribution.

    1. @azizhakberdiev 3y

      I think they count absolute difference anyways

  10. @karumsenjoyer 3y

    yes

  11. @mpolovnev 3y

    I like deleting dead code. Am I a code coroner?

Use J and K for navigation