Well I guess some people are not cut out for it, but what you describe is not something that should worry you.
Do you have a basic understanding of what data structures are important for ... and how algorithms can be efficient or inefficient etc?
You have
decided to write a c++ parser
so I would not worry about being one of those people.
Most people who are not cut out for it fail a lot earlier and do not have the resilience to dive that deep into programming.
Find the right approach and you can and will improve in many areas. You will laugh when you see the code you wrote one year ago.
I guess reading about skill acquisition might be something for you (I like the book "The First 20 Hours"). I know I am no good at learning & improving on my own.
I need either guidance or invest a lot of time in thinking about how to improve consciously. I need input from many directions in order to avoid stagnation.
Avoid specializing too much and obsessing over something that does not deserve much attention.
Also: consider reading or rereading "The Seven Habits Of Highly Effective People". It might change how you feel about interdependence and make huge projects seem more manageable in one lifetime :-)