> Another option would be for me to learn about data structures and algorithms
I wouldn't call this an option, but it also doesn't mean you have to spend the next year doing nothing but this. I would recommend spending a few days getting the basics under your belt and figuring out the more advanced stuff when you encounter it (and trust me - you will, they're everywhere).
You already understand how apps work and how you build them so if you're unsure what project to tackle next I'd highly recommend picking up Django (because you already know python) and building some web app that just seems interesting to you. It'll give you some server-side experience, expose you to databases and the HTTP protocol (which everyone on the web should know - it's not that complicated but having worked with it really gives you a different picture of the web).
It'll also give you a working knowledge of browsers, AJAX, HTML5, etc which are always useful skills to have. You might even find yourself going back to apps this way by using Phonegap which allows you to write cross-device apps using web technologies (though the process isn't as easy as the website makes it appear).
Basically just work on expanding your knowledge until you find a project that fits and then dive deep into that.
Also, it's all hard work and everybody faces those problems, don't let it get you down.
I wouldn't call this an option, but it also doesn't mean you have to spend the next year doing nothing but this. I would recommend spending a few days getting the basics under your belt and figuring out the more advanced stuff when you encounter it (and trust me - you will, they're everywhere).
You already understand how apps work and how you build them so if you're unsure what project to tackle next I'd highly recommend picking up Django (because you already know python) and building some web app that just seems interesting to you. It'll give you some server-side experience, expose you to databases and the HTTP protocol (which everyone on the web should know - it's not that complicated but having worked with it really gives you a different picture of the web).
It'll also give you a working knowledge of browsers, AJAX, HTML5, etc which are always useful skills to have. You might even find yourself going back to apps this way by using Phonegap which allows you to write cross-device apps using web technologies (though the process isn't as easy as the website makes it appear).
Basically just work on expanding your knowledge until you find a project that fits and then dive deep into that.
Also, it's all hard work and everybody faces those problems, don't let it get you down.