Anyone with reasonable computing skills can learn to program. The most difficult part about programming is not learning the syntax of a particular language, but sticking to it until you've solved the problem the best way possible and found all the bugs.
Programming is simply problem-solving.
Take the example of alphabetizing a list. What you may not realize is that as you do this, each time you go through the list to add an item, you are searching the entire list and comparing every item to every other item. The steps to solving a problem are known as an algorithm . For popular problems, like the above sorting example, there are many different algorithms. Each has advantages and disadvantages over others.