Don't get too discouraged by the challenges that you face along the way. It is very important that you don't give up when things get hard. Take a break; Walk away from your code for a bit; Have a snack; Refill your coffee; But most importantly, come back to keep coding! You will get past it and it will get easier, but only if you continue to work through these tough parts.
Teaching yourself to code can be a lonely task. It can be really easy to feel like you don't have anyone to turn to for help, but that's never the case! Whether through the Skillcrush community, Reddit pages, GitHub, or even just Google, there will always be someone out there who can answer your questions, or who had the same question, with an answer that can help you as well. Coding is collaborative, and there is always someone to turn to.
Every coder needs to be practicing their skills on a regular basis. It doesn't matter how seasoned you are in your field, if you're not regularly practicing these skills and learning new skills to grow as a developer, you're going to fall behind! The good news is, most of us self-learners chose this path because we love it, so practicing our skills is a treat.