This. Programming isn't difficult, you can teach it to an adult in a one-week course and I've taught the fundamentals (if statements, functions, loops) in a two hour session with multiple adolescent friends, the core concepts are mostly intuitive for anyone with a simple grasp of logic. What
is difficult is using those systems to understand larger systems, and all of the
other crap that comes in programming.
In the last week I have a deal with a friend of mine -- I didn't feel comfortable accepting a gift from him in return for nothing, so I offered to teach him programming. So far, two one-hour sessions later he has a grasp of a lot of the concepts, but the two main things he struggles with are: the environment (i.e. stuff like the command line, etc.), and syntax. I'm teaching him python, in the first one-hour session we learned about variables includings lists and integers, if statements, statements/expressions, and function syntax. We used the second session to refamiliarize some of the syntax for those things, including stuff like telling him about leading whitespace, putting brackets around array indices, and the rest of the time just getting a python file into a folder and getting there in the command line so he could run the file.
He's a very smart person, but his lack of familiarity with the symbol keys on the keyboard, along with the lack of the ability for the command line to cope with spaces in filenames, made it difficult for him.
His main problems aren't knowing how to use the concepts -- he knows what he wants to do -- but the syntax and grammar of the environment constantly get in his way.