If you're just starting with ruby and chef, Greg Albrecht's "enough ruby to be dangerous" is great: http://ampledata.org/enough_ruby_to_be_dangerous.html
- Principles of Object Oriented Design in Ruby - Sandi Metz
- Refactoring: Ruby Edition - Jay Fields, Shane Harvie, Martin Fowler
- Refactoring in Ruby - William Wake, Kevin Rutherford
I haven't seen a "getting started" guide for chef that I think is wonderful. I actually think this is because chef isn't just programming. It's programming that's about something, namely infrastructure, and it's hard to write well about infrastructure in a way that is both elementary and neutral, which is what people want in "getting started" tutorials. (A different way of saying this is that infrastructure tends not to present a consistent interface that automation code can access.)
- access to a chef server: keys and permissions, the state of your knife configuration file.
- workflow: the environment in which you develop chef code, test, and iterate. This is where berkshelf and vagrant come in. My suggestion is to get comfortable with berkshelf and some test framework (chefspec/rspec for unit testing, cucumber for integration testing) and get on with your life. (I can afford to be cavalier about this because everyone else in the world cares about this piece more than I do.)
- code: cookbooks, recipes, libraries, resources and providers
- versioning: how to version your code, pull in community code, release code back to the community
- data: data bags, environment files, roles/role cookbooks
- package and artifact management: where to get the stuff you're installing, how to manage it
- how chef maps to and interacts with your infrastructure: what I think of as the good stuff.
- mailing lists: http://lists.opscode.com/sympa/lists/opensource
- irc: https://wiki.opscode.com/display/chef/IRC (If you can describe your problem concisely or put it in a gist, IRC can be a great place to get help quickly.)
- opscode's "getting started" site is learnchef: https://learnchef.opscode.com (I have not used this myself, so I can't speak to its usefulness. If you have feedback on it, it's totally worth sending it to opscode.)
- Seth Vargo (opscode employee, rubyist, maintainer of chefspec and berkshelf) http://sethvargo.com chefconf presentation on cookbook refactoring: http://www.youtube.com/watch?v=3JTlcnEpWD4&list=PLrmstJpucjzXNMLcI5X-EjirpDd-SITd3
- Doug Ireton http://dougireton.com chefconf presentation on chef and windows: http://www.youtube.com/watch?v=APBSff1_oVY&list=PLrmstJpucjzXNMLcI5X-EjirpDd-SITd3&index=27
- Miah Johnson chefconf presentation on resources and providers: http://www.youtube.com/watch?v=u5wfN1OEFmY&list=PLrmstJpucjzXNMLcI5X-EjirpDd-SITd3&index=47
- Julian Dunn http://www.juliandunn.net chefconf presentation on antipatterns: http://www.youtube.com/watch?v=IJCY2cEr6Rw&list=PLrmstJpucjzXNMLcI5X-EjirpDd-SITd3&index=22
- Jamie Winsor (berkshelf author and maintainer) chefconf presentation on berkshelf: http://www.youtube.com/watch?v=hYt0E84kYUI
- Sascha Bates (opscode employee) chefconf presentation on infrastructure needs for continuous deployment: http://www.youtube.com/watch?v=pHmU0aNkENc&list=PLrmstJpucjzXNMLcI5X-EjirpDd-SITd3
- Richard Cook on "Making Systems Operable": http://programming.oreilly.com/2013/10/making-systems-operable.html
- a very good description of the chef resource run queue: http://erik.hollensbe.org/2013/03/16/the-chef-resource-run-queue/