C Vs Python in School
Recently I met a 9th grader, who told me they were learning Python in their computers class. I was happy because Python is the easiest programming language there is, and probably the best language for kids to get started. It reminds me of the time, when I was in 9th grade, we had C in our curriculum. And there was (still is) a huge, authoritative book called “Let us C”, which was used as our textbook.
And whenever I studied from it, I never got past Chapter 4, because it was about “Pointers” (this was especially bad because Chapter 5 was Arrays, which is such a fundamental data structure). I wished students like me, and many others wouldn’t have to go through this. Instead of learning about programming concepts, we were introduced to the messy internals of a language. The tests usually consisted of C trick questions, whose anwsers defied all logic - examples would be, an intricate combination of “++” and “–” to get to the final value of variable; performing computation inside an if or print statement.
This is so unfortunate and twisted. Things like these gave young minds an impression that you really don’t understand programming. Introducing and requiring to learn all the ugly parts of C first, is a great disservice to the useful language Thompson and Ritchie created. Because programming is usually the first introduction to algorithms and data structures, the result is students correlating C/C++ with programming; which is not accurate.
Programming can be as creative a pursuit can be. It can lead to amazing insights, into how the world works. When I discovered Python, I resolved to not touch C/C++ at all. I did work with them after a while, but it says how much I hated them at the time; and how much of a relief, a breath of fresh air Python was for me. Using data strucutres is as easy as using a variable, and you don’t worry about the type; no braces or semicolons yay! All the extraneous details before weren’t helping (it was a long time before i fully understood “void main”), and Python got straight to the point, letting me create something.
I really hope more and more teachers to adopt this approach of decoupling programming from a language, and let students discover the beauty of it.