I teach at a small school and as a result 9 of the 10 kids in a programming class will be there because it was the only elective available in the time slot. So there are always kids that have not the slightest idea of what programming is all about. For those of us that have programmed for a while we have a certain mindset we get into when writing code. We realize the computer is dumb as a box of rocks and has to be told every little step. Some kids never get this. They struggle mightily with the idea that to write code they have to think simple. The school has spent all these years and all that money to push the kids towards the top of Blooms Taxonomy and now all of the sudden we tell them to go back to the bottom. For example look at this simple programming statement: “x=x+1”. As programmers we look at that and say “So? It increments, so what?” Now look at it from the kid’s side. They have just spent a number of years learning algebra that claims this is a real bad thing. x is equal to x, not one bigger than x. “This programming sucks and makes no sense. I hate it.” Some of our kids are struggling with solving “7=2x+1” in math and now we expect them to understand “x=x+1”? Code is full of these little illogical things that are unique to programming but are screwy in the “normal” world of what students have been learning for the last few years. I keep telling my kids if you are going to write code you have to design smart and code stupid. Sometimes it even works.
Programmers need to smart and stupid, at the same time