Then what would you recommend I do...I can't learn my entire programming language (C++, primarily SFML) before I start to make anything. That's like expecting me to learn the entire English language before I say anything. I can't seek out and learn things before I even know what I'm looking for.
I didn't say you should learn everything before starting programming, I said you shouldn't wait to learn things until you need them.
The intention was to teach recursion by forcing us to use it instead of iteration. It's frustrating, I feel it's teaching us Java students a very bad approach to an otherwise simple problem. In the few months of C++ experience I taught myself, I never had to use recursion. For better or worse, I'm a strong advocate of "learn it as you need it" when it comes to programming. The general consensus online seems to be "Use recursion when its faster/more intuitive than iteration" and I fully intend to hold off recursion until I hit a problem like that.
Here you were complaining about having to learn recursion. How do you intend to understand when recursion is going to be faster than iteration if you haven't learned the theory behind recursion yet? Have you even learned about complexity calculations? Do you intend to wait to learn those until one of your programs locks up your computer?
Recursion is not some kind of highly specialized, complex corner case of programming, it's one of the most important concepts to understand, no matter whether you actually use it or not. It's not about
usage but
understanding and
habit.
If you're in the middle of some complex task you do not want to pause and seek out a tutorial about reactive programming, regular expressions or pushdown automata and you certainly don't want to fight through a whole book's worth of theory to understand the trappings and applications beyond what writers of tutorials considered.
What I recommend? Put aside half an hour a day, or maybe an hour a week, or whatever you feel doesn't infringe on your time too much and use that time to seek out and learn programming concepts you don't know yet.