I wasn't sure how to ask this question really, I hope I did a good job of phrasing it.
There are lots of "how do I get started...", "resources for begginers.." or "should I learn..." type questions on Stackoverflow. I have read these post and explored the resources they point to but while I wish I had found them years ago the level they are pitched at is kinda just below (or way way way) above my current skill level.
Without spending too long giving way more background than needed and boring everyone; I'm a web developer, I have been toying with with web stuff for about 3/4 years and have 18 months of commercial experience. I am self taught and have a really good grasp of HTML, CSS, Javascript and a pretty PHP and MySQL in that I know the syntax and built in functions/libraries fairly well and given enough time I can brute force my way to a solution to nearly all problems.
What I'm struggling with is really raising my game, pushing myself from being okay/good to good/great. Like I said, I often end up brute forcing my way to solutions when I suspect more elegant solutions exist by using some algorithm or another. I struggle with big picture stuff - I can solve all the small problems but the solution as a whole often ends up complicated and mish-mashy.
I feel like I have hit a glass ceiling and can't push through. The big problem is that I don't know what I don't know but I know I have so so much to learn.
I am teaching myself computer science fundamentals and basic theory which is helping a lot and am planning on learning another language or two, probably Objective-C and something with a completely different paradigm to PHP/C to help give myself another perspective on problems. I also know that experience is great teacher but that comes with either time or with working underneath someone with more experience and learning from them.
So I was wondering what sort of resources others could recommend for advanced web development?
And in more general and for others that have a similar problem what sort of techniques have worked for people when they have found themselves in a similar situation?
You mentioned being bad at big-picture stuff but good at the smaller details and problems. Why not pair up with someone good at the big picture stuff and sponge whatever you can from her/him?
This is actually something I would really like do to but where I work at the moment I have the most experience (it's a really new company and mainly designed focused). I have a REALLY good job so wouldn't want to leave it just to get this sort of experience but I do feel I would benefit a lot from working closely with a more experienced developer.