Which Programming Language Should I Teach First: the Least Productive Question
Posted4 months agoActive4 months ago
parentheticallyspeaking.orgTechstory
supportivepositive
Debate
0/100
Programming EducationTeaching ProgrammingComputer Science Fundamentals
Key topics
Programming Education
Teaching Programming
Computer Science Fundamentals
The article argues that asking which programming language to teach first is the wrong question, and the discussion supports this view by suggesting a more fundamental approach to teaching programming.
Snapshot generated from the HN discussion
Discussion Activity
Light discussionFirst comment
2h
Peak period
1
2-3h
Avg / period
1
Key moments
- 01Story posted
Aug 25, 2025 at 12:20 AM EDT
4 months ago
Step 01 - 02First comment
Aug 25, 2025 at 2:35 AM EDT
2h after posting
Step 02 - 03Peak activity
1 comments in 2-3h
Hottest window of the conversation
Step 03 - 04Latest activity
Aug 25, 2025 at 2:35 AM EDT
4 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45010163Type: storyLast synced: 11/18/2025, 12:05:16 AM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Then there's the idea that we can move data between cells and input and output that data.
Then that we can do simple operations between cells, such as arithmetic and comparing and swapping.
At that point we know enough to write a simple program, such as inputting two numbers from the keyboard and outputting the largest on the display, using some trivial made-up language.
Then introduce looping, and solve the problem of inputting numbers until zero is input, and reporting the largest number found.
Then maybe simple structures such as arrays or lists or strings, then more complicated flow control such as nested loops and callable procedures or functions, persistent storage, and so on. At each stage, require solving simple "real world" problems such as a trivial billing program, or sales tax calculation, or a toy text editor, or simple histogram output.
Turns out most programs need and use very few programming concepts. A good introductory language would be as simple as possible, just sufficient enough to demonstrate and allow the writing of programs covering all the desired concepts in a 101 course. If the language being used can allow more than what's being taught in the 101 course, then it will have features and syntactic sugar that will invariably confuse and misdirect the student. Let a more powerful language wait until the next course, because the most important thing to teach initially are CONCEPTS such as named memory, operators, if-then-else, simple I/O, simple structures, looping, and so on, NOT the arcane syntax of some particular language.
The written material should include as many small but "useful" program examples as possible, first with each concept individually demonstrated, then combining concepts into more sophisticated less-toy-like examples. I've also found that a particularly powerful instruction method is to present a very short piece of code along with five supposed outputs by that code but for which only one output is correct, and make the student determine which output is the answer.