When you are teaching yourself to do something, without much structured help, it can make learning sometimes difficult. However, the cool thing about starting to get good at something is when you see it start to come together. Like with crocheting, or other such material endeavours, it can be fairly obvious where your abilities lay. In the beginning...well....it can look really crappy.
When you’re learning to program you can be disorganized and leave lots of holes in your code. My crochet projects were just as riddled with empty spots and incomplete rows as my first pieces of code were. Then, after time (a period of two years), I learned to crochet complete lines, with even spacing, and they looked much better.
Like with all things awesome, time must pass and hard work must be executed consistently for an increase in ability to occur. Nothing comes easy, but it is sure worth your time to keep trying.