What is the mental process involved in programming? It is a difficult question to answer, but I think many of us have our own conception. Until recently, my off-the-cuff answer would have been something like: I think about what I want the code to do, and then I construct the algorithm that is needed by thinking about the control flow and the variables. A sort of programming by reason: I size up the problem and use logical reasoning skills to progressively construct a solution. I would have applied the same model to beginners and experts alike. But I’ve recently been thinking that this model might be wide of the mark.
Memory, not Thinking
In Daniel Willingham’s book, “Why Don’t Students Like School?”, he talks about how expert chess players play the game. My naive model of chess players would have been similar to programmers — I would have assumed that…
View original post 1,083 more words