I often think of myself as being bad at it. I keep telling myself that I am not good enough, and I don't know enough languages. This has actually helped me spread from HTML and CSS to JavaScript, PHP, and MySQL.
...what?<p>Being overly critical of yourself is not only no fun, it's also not particularly effective. Sounds like if you constantly reinforce that you're not good enough, you will lose confidence and motivation to continue.<p>I'm thinking an easy reframe of this is competing with your past self. See if you can do better than you did yesterday, even by 1%. A 1% improvement every day leads to a doubling in 71 days.
Have you ever taken a programming class? Self-directed learning is great but there's something assuring about taking a class that thoroughly and systematically treats a subject. You walk away without the worry of holes in your knowledge.