WordPress Theming From Scratch

When I first started my exploration of WP I did so one small step at a time. When I look back on those initial stages of learning I think about how much quicker the process could have been if I had just dove in and conquered obstacles as they arose.
For beginner WP developers it may be tempting to stick with theme modification. By this I mean just taking a theme, whether premium or free, and simply modifying bits of it's code (or child theming) to get the desired results. This can be great in some cases and well warranted. However, in the end this leaves you or your client with a pile of code you may or may not fully understand (seriously, open up functions.php on a theme you didn't create and witness how much excess code your theme ships with).
I was in the same boat initially, child-theming and theme-editing my way to early victories. This was important, but it wasn't until after I built my first theme from scratch that I felt fully in control of my theme. Building a theme from scratch also gives you a nice sense of accomplishment in the end that you may not get from editing an existing theme: everything you see in the final design was your own doing. So what is starting from scratch? An empty folder in wp-content/themes/ on your local dev server. Then just add index.php and style.css and get coding.
Of course you will want to use JavaScript plugins and other premade assets as you would normally, but by starting from scratch you will teach yourself some very essential WP basics like registering/enqueing scripts and customizing the loop.
So if you're looking to get some good hands on practice with WP just open up a new folder on your dev server and get started. If you're not the type to craft all site assets by hand then just Google free website PSD templates. Find a template you like and then theme it up. PSD templates are great because they often come pre-sliced so you get to spend most of the time in the code editor and in the browser.
Happy coding.