Good developers learn to program. Most courses teach a language

· coding · Source ↗

TLDR

  • Syntax and bootcamp curricula teach language translation, not the decade-deep skill of deciding what code should exist, where seams go, and which decisions are load-bearing.

Key Takeaways

  • Bootcamps cover syntax, standard library, and idiomatic style. They skip system decomposition, data-flow reasoning, and recognizing irreversible architectural decisions.
  • The real senior skill is reading ten times more code than you write, tracing data through layers, and debugging as a discipline not a last resort.
  • AI tools like Claude Code amplify judgment, not replace it. Prompting without judgment ships plausible code, not correct code; the bottleneck stays at design, not typing speed.
  • Recommended path: go deep in one language by shipping and maintaining a real project for a year, then pick a structurally different second language and look for what stays constant across both.
  • Book list worth the investment: The Pragmatic Programmer, Code Complete, A Philosophy of Software Design, Kernighan and Pike’s The Practice of Programming.

Hacker News Comment Review

  • Commenters largely agreed the language-vs-programming gap is real, but pushed back that you still need a real language first before abstract thinking can attach to anything concrete.
  • A recurring thread disputed whether CS degrees address this at all, with the position that CS is computer science, not software engineering, and the overlap is a historical accident, not a curriculum design.
  • One commenter flagged UBC’s OSSU course on systematic program design as a rare counter-example that actually teaches programming over language.

Notable Comments

  • @djmips: Points to https://cs.ossu.dev/coursepages/spd/ as a concrete course that teaches programming structure, not syntax.
  • @Jtsummers: A competent programmer reasons across most languages without intimate knowledge of each; “which language first” is the wrong framing.

Original | Discuss on HN