There are thousands of enthusiastic blog posts, classes and apps that aim to entice you with the promise of a slick, unequivocal procedure for learning to code.
This winter I decided to learn iOS. What I forgot is that the most common state for a programmer is a sense of inadequacy. As a programmer, there is a limitless amount of stuff to learn. You can become a specialist in one language or framework, but if your job is to build things efficiently, you will constantly need to be learning new tools and constantly feel out of your depth. It helps to be mentally prepared for feeling stupid.