下面的这几段文字来自Stack Overflow,觉得一针见血地指出了自己很长一段时间以来编程水平得不到提升的原因,受益匪浅,特意粘贴下来,希望能帮到同样迷茫的Programmer。
The very, very best way to learn anything is by practice and repetition. To apply that to programming, the only way you're really going to get better is if you program.
I would recommend doing this: think of something you'd like to have in a program, something simple. Research what language would be a good way to make that kind of program - sites like this are a great resource. Go to Amazon and buy the highest rated "intro to" book for that language and work through it -- ALL THE WAY through it, do every single example.
Then, when you've finished the book, start working on your own idea. Again, make it something simple enough to be realistic, something you can actually finish and know that you're making forward progress, but make it something you'd enjoy doing and be happy with when you're done.
I had a blog before I learned any programming -- for me the first thing I wanted to learn how to do was add a featured image section to my WordPress site. Figuring out how to do that was tricky for me at the time, but I was able to figure it out, and I was really happy with the outcome. After that I went back and designed a WordPress template from scratch. The first time I did that it took me about a month. Since then I've designed dozens, and now I can often create one in just a day or two.
The most important thing is not what kind of program you create - it's just sticking with programming and practicing. At first you'll copy a lot of code that won't make sense, but the more you do it the more you'll have these great "Aha!" moment's where you suddenly realize how things work.
It's a journey, not a destination, so just get moving and don't quit :)