RSpec 101 provides an overview of RSpec and its main concepts:
1. describe() and it() are used to define example groups and examples (tests) within those groups. describe blocks can be nested and context() is an alias for describe().
2. before(), after(), around() hooks allow setting up and tearing down test environment/state. before(:each) runs before each example while before(:all) runs once for the group.
3. expect() is used to set expectations for what should happen rather than assertions for what will. Matchers like .equal(), .include() check expectations.
4. Helper methods, shared examples, and mocks can be used to DRY up