PCB side I really liked Make your own PCBs with eagle. Learned quite a bit about components by doing the little work assignments the book gives you plus eagle is free and a great software.
Popular alternatives to
Make Your Own PCBs with EAG...
Clean Code: A Handbook of Agile Software Craftsmanship