Being solo *is* difficult. In contrast, when you are working with a team of developers, everyone is learning from each other. As part of team, you will pick up a lot of knowledge by working with other developers, and with a lot less effort than when you try to figure everything out on your own. 

That said, as a developer, you have to commit yourself to constantly learning. Whether it's reading documentation for new frameworks, or books on development, you have to make a constant effort keep your knowledge current and growing. However, being part of a time may clarify what area you need to learn about most.

Regarding your point about revisiting your older code, and rewriting: I've found that my own code always represents the best of what I knew at the time I wrote it. Many times I go back to something I wrote years ago, and slap myself on the forehead, when I see how much better I could have done, *given what I know now*. But that's the nature of experience, you get it after you need it... 

When you're developing an application, you always need exercise good business sense, to decide when it's best to cut corners to finish more quickly, and when it's necessary to take more time to learn something new which would improve the design and quality of the application.  There's a universe of things to learn in the software world.  Without exercising that kind of good judgement, you could find yourself spinning your wheels learning, thinking, redesigning, but never getting anything done.