I usually write features out myself, though I tend to start from one of my other themes and just edit the crap out of it so that I don’t have to write the basics over and over. Practice is really the best way to figure out the process of theme making, and there are a lot of good tutorials out there about how to build various features (this blog has the most and best tutorials I’ve found). There are also base codes out there to give you somewhere to start (find those here). I hope this helps you out and best of luck! :-)