Anyone can learn computer programming. It requires no special talent. I have seen several students starting from nothing (well, the baseline is school mathematics and at least one foreign language) and scoring top results at the end of the semester. However, doable is not the same as easy. What makes it difficult? Here is an argument about the challenge involved in the mental execution of source code.