“The students who did not understand the concepts were the cases I found extremely interesting. In my quest to help these students understand fundamental concepts like arrays and functions, I began to observe the striking similarities between teaching programming and programming itself.”
i would love to quote the entire article, though linking to it will have to suffice.
while i doubt that every language should be written to cater to every possible user, i do think that more languages should be written so we can compare and learn from their ideas.
one of the more interesting ideas i like to explore is “how can programming be made accessible to everyone?” to me, the answer is not just to change the act of programming; it is also to change the act of educating.
for those who read the article or are curious: arrays are groups of pieces of data which go together, and functions are groups of program instructions that go together; very similarly to how a paragraph is a group of sentences which go together.
you could write a book full of sentences without separating them into paragraphs, and you could write all your programs without grouping data into arrays or grouping instructions into functions, but sooner or later it would be more trouble to do it that way than to add a couple of helpful concepts.
once added, we need some way to understand and explain those concepts; even if we are self-teaching.
i have a theory about teaching programming, and it goes like this: if you really want to understand computers, dont just learn to use software; learn to write software– even if what you write is ridiculously simple. then if you really want to understand programming, dont just learn to use a language: learn to write a language– even if its a ridiculously simple one.