I started thinking about the dividing part of Fizz Buzz.
I originally was creating 3 methods which I then called in the print_fizzbuzz method.
num % 15
num % 3
num % 5
I realized that I could condense these into one method.
So I went back to math to figure out the best wording for the arguments.
dividend / divisor == quotient
And thus the final method that is very clear as long as you remember your math.
I added this: ( dividend / divisor == quotient ) as a comment to be crystal clear.
def divide_by(dividend, divisor)
dividend % divisor == 0
Then to print the fizz buzz I was looping through a range, for the argument I was using the placeholder num.
I started to think about what I was actually trying to say there.
Instead of just saying num what was it that I really meant?
It took me a while to distill down the words in my head.
First I thought about the problem.
What is "num"? It is the number that I want the Fizz Buzz to stop at.
So I thought end_num, end_number, limit.
When trying to narrow down a word I find it useful to use a Thesaurus
Here are the synonyms for the word limit: http://www.thesaurus.com/browse/limit
These are the words that I thought might be good for my argument after viewing that list:
end of range
Then I noticed that I was calling a range.
What could the beginning and the end of a rangebe called?
Answer: lower bound and upper bound
fizzbuzz = 
(1..upper_bound).each do | dividend |
if divide_by(dividend, 15)
fizzbuzz << "fizz buzz"
fizzbuzz << "fizz"
fizzbuzz << "buzz"
fizzbuzz << dividend