Coding requires effort, which is acquired like any other skill such as reading/comprehension. Many people try to run before they even learn to walk and this is when the sudden leap in difficulty is encountered. It took me years( read - coding time and effort) to move from novice to an intermediate programmer and this occurs each time you want to move up on your skill level. You need to commit effort, and no doubt you are going to fail before you succeed.
Pair programming, code reviews , mentoring etc ...appropriate to your own individual learning ability is paramount for success.
I personally found:
1. Code imitation - coupled with understanding
2. Code reviews - of a next level programmer
3. Blogging/Q & A(Stackoverflow sort)
as important in becoming a better programmer.