When I built my first WordPress theme it pretty much just involved modifying and existing basic theme. I didn't really know what all of the PHP functions were for so I was afraid to modify them and I ended up with messy code and a bunch of stuff I didn't understand. Every time I wanted to change anything a there were a lot of unexpected errors and side effects. I also realized that I wasn't really understanding WordPress. I was just adding stuff here and there without knowledge of the overall structure of WordPress themes.
So I decided that I was going to learn WordPress once and for all. I needed to learn how to build themes from scratch.
Since my base theme had some useful code, I decided to remove any code that I didn't understand and reorganize everything. If I didn't understand the code, it didn't belong. I poured through the Codex for help.
I ended up with an excellent base theme that I could use for all future themes. Since most WordPress themes are built from the same basic files, this saves a lot of time and work. Since I understand all of the code there are no unexpected side effects when I modify code.
If you are serious about WordPress development I highly recommend that you do this and build your own basic framework. WordPress provides excellent resources out of the box. Use the Codex to learn about theme structure and functions. For theme examples use the WordPress default themes. They are well structured and you can be certain that they comply with WordPress standards.