In college I helped a friend (very smart guy) with some of his intro to programming class assignments. He had the hardest time understanding very basic things. He would've struggled with a fizz-buzz type problem. In many other fields he is highly competent, but he could not grasp programming. I think people who know how to program don't realize that what they find easy is often extremely difficult for other people.