"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration"
About this Quote
Dijkstra’s line lands like a slap because it’s engineered to: a provocation dressed up as diagnosis. “Mentally mutilated” isn’t a neutral technical assessment; it’s moral language, the vocabulary of permanent damage, aimed at turning a pedagogical gripe into an emergency. He’s not just complaining about a language. He’s indicting an educational ideology that treats programming as a set of hacks you memorize rather than a discipline of reasoning you cultivate.
The context matters. BASIC, designed for accessibility, spread through classrooms and early personal computing as a friendly on-ramp. Dijkstra, a major architect of structured programming, saw that friendliness as a trap. Early BASIC encouraged practices he spent his career fighting: spaghetti control flow, casual use of GOTO, and a style where programs “work” without being intelligible. His claim is less “BASIC is bad” than “early habits harden into permanent cognitive ruts.” Once a student learns to think of code as a sequence of ad hoc jumps and patches, teaching invariants, modularity, and proof-minded clarity becomes remediation, not instruction.
The subtext is gatekeeping with a purpose. Dijkstra is drawing a boundary between programming as craft and programming as engineering. He wants to shame institutions into taking rigor seriously, even if that means fewer people feel immediately included. The cruelty is strategic: exaggeration as a corrective to a culture that rewarded quick results over correctness, and “beginner-friendly” tools over durable mental models.
The context matters. BASIC, designed for accessibility, spread through classrooms and early personal computing as a friendly on-ramp. Dijkstra, a major architect of structured programming, saw that friendliness as a trap. Early BASIC encouraged practices he spent his career fighting: spaghetti control flow, casual use of GOTO, and a style where programs “work” without being intelligible. His claim is less “BASIC is bad” than “early habits harden into permanent cognitive ruts.” Once a student learns to think of code as a sequence of ad hoc jumps and patches, teaching invariants, modularity, and proof-minded clarity becomes remediation, not instruction.
The subtext is gatekeeping with a purpose. Dijkstra is drawing a boundary between programming as craft and programming as engineering. He wants to shame institutions into taking rigor seriously, even if that means fewer people feel immediately included. The cruelty is strategic: exaggeration as a corrective to a culture that rewarded quick results over correctness, and “beginner-friendly” tools over durable mental models.
Quote Details
| Topic | Coding & Programming |
|---|
More Quotes by Edsger
Add to List



