Symbols are abstract references represented, typically, by a short string prefixed with a colon. Examples include :blue , :good , and :name . Sadly, there is no succinct, easy-to-learn trick to symbols, so you’ll need to read this whole section—maybe even more than once—to get it to stick. Among mainstream languages, symbols are reasonably unique to Ruby (although Lisp and Erlang do have similar concepts) and tend to confuse most new users, so let’s jump straight into an illustrative example: current_situation = :good puts "Everything is fine" if current_situation == :good puts "PANIC!" if current_situation == :bad Everything is fine In this example, :good and :bad are symbols. Symbols don’t contain values or objects , like variables do. Instead, they’re used as a consistent name within code. For example, in the preceding code, you could easily replace the symbols with strings, like so: current_situation = "good" puts "Everything is fine&