I am currently doing Harvard's online programming unit CS50x through EDEX. I am currently up to the first problem set where you have to program mario.c and greedy.c. I am struggling with it. I understand all concepts so far mentioned in the lectures (iterations, conditionals etc...), but when it comes to programming something, or solving a particular problem, my brain just stalls. I make a good start, but when it comes to putting it all together (FOR loops especially) I fail miserably. I cheated, and had a look at someone else s mario.c program, and after reading it, I understood everything, and it all made sense. What do you guys recommend I do to develop my mind to think more like a programmer, and to be better at solving problems with programming? Algorithm study? Does this problem solving ability just come with experience and exposure to programming?