It's a little known in communities that I play that I'm both a "professional" (as in, gets paid) software engineer, as well as a full time software engineering student at a university, and I still have these moments of just utter frustration and complete self-doubt. It's fine to have those feelings. It's normal.
There's a theory calling the Dunning-Kruger effect whereby, essentially, people who have less experience in a particular field overestimate their own ability until a point in which suddenly their greater experience indicates to them that they are completely swamped by the additional discovery of so much more that they have to learn. While I don't believe it's the case for everyone, it can be disheartening, whether you think you've got this in the bag or not. It's a whole process of trial and error, doubt and elation, misery and excitement. Some of these phases are longer than others and that changes on every project you undertake.
I'll also echo the sentiment others have made here: reading someone else's code is extremely hard to do. It's their own attempt at solving a problem where there are many ways to do it. You're not just learning to read syntax, you're attempting to think like them. In the early days of Arx, I offered my time to @Tehom for a bit, and though I couldn't provide much time to help in the short time I did I noticed we have very different approaches to similar problems. Not only this, we're all still learning as we go, and I venture Tehom's looked back at some of his own stuff and gone 'oh my god what did I do' but can't immediately change some of this. So, don't take everything verbatim as the best way to do things. Feel free to be different, but when you need inspiration look to what works for you. It may be a completely different project, or a similar one.
tl;dr: programming is hard. it's going to suck. do what you want to do and how you want to do it. feel free to ask for help when you're stuck. it may or may not be helpful to you. that's more than fine. don't give up because you don't think you can do it. persist. it'll feel so fucking great when you've achieved something. even a small thing. just do a little piece at a time. each win will power you through the next slog. then you'll win again. dream big. start small.