On Reddit.com there's a recent post asking what kinds of things someone can do to gain the skills they need to get a job as a web developer. Disregard the comment at the top and get straight to the good stuff - there's lots of great recommendations here including:
- "take the time to take algorithm classes , UML classes and db modelling classes and , very important , read other people's code"
- "Work on stuff that interests you." and "Work on stuff that doesn't interest you but solves a problem for someone else"
- "Pick a major CMS (doesn't matter which one) and tear it apart."
- "Go through the PHP tracks on codeacademy.com"
- "Go to MIT Open Courseware and start reading up data structures and algorithms."
- "Just keep programming. You'll do stupid things, but having to do those things should become annoying."
Unfortunately, the poster started things out with a "don't tell me to read a book" mentality, so there's some responses in there about that. Don't let that disuade you from some of the other answers, especially if you're new to PHP, though.