You just know more than you think you do. And even for the stuff that you don't know at the moment, there's still books and the internet and of course learning by experiencing, though it comes down to you wanting to spend the time needed to learn it, obviously, which you seem to be doing, anyway.
Just look on the bright side: while you might not know all the stuff others know, there's a lot of people, who do it as their job and who only know a fraction of the stuff you know and yet they manage to do what their supposed to do successfully. :)
Sounds like you got all the good stuff: data mining, path finding and not getting frustrated by the monstrosity that is PHP. {XD}
But in all seriousness: it's good to hear, that you've already managed to acquire some knowledge that helps you in future project. I mean, at the end of the day, that's after all what those project's main purpose is. :)
Is there something that you program for yourself?