I had the hardest time learning PHP as well. I soon found out that
you don't learn everything all at once. It's handy to have
php.net, the
WordPress Codex, and pretty much anything else that's relevant for WordPress designing bookmaked. You learn as you go, and you'll start seeing yourself thinking out of the box and trying to accomplish something. It takes baby steps, but you just need to find out how to make programming work for you, and your client. Loops, functions for quick, repetitive tasks, and other things.
A quick lesson with PHP: It's a scripting language, which means with each request (yoursite.com/example.php...) it loads everything that was included in the PHP files. PHP bounces around from file to file, but understanding that it's simply just a script you're running could make everything a bunch easier. There's no magic happening with a scripting language :P
I'd also recommend just trying out a few exercises for yourself:
- Create a loop in WordPress, make sure it grabs the post's title, date, author and content.
- Create a post page (permalink) in WordPress, and then link the loop page (post listing) to the post page.
After you've done those things, get curious and figure out how it's happening. Click around the files and read the code. It probably won't make sense to you at first, but over time you will start to understand what is going on. Also make sure you look around the database. Most popular *AMP clients offer PHPMyAdmin to browse around the database. If you'd like a better database client and if you have a Mac, I'd definitely look into
Sequel Pro.
These are some of the most helpful pages in the WordPress Codex, I'd recommend bookmarking them:
If you're looking for a place to start, I'd highly recommend reading the
Theme Development article in the WordPress Codex.
You can do it! I come from a design background too, and now I actually enjoy programming more than designing PSDs...