Explain why I would want to avoid, whenever possible, creating public interfaces where an argument was being modified by reference.
Sigiloso
I did not have an answer for this one. I don't think there is any real problem with it. He told me that it wasn't so much as being right or wrong, but mostly being about maintenance and clarity. When an argument gets edited by reference, as a developer new to the code or that hasn't seen it in a long time, consuming the method could produce unexpected side effects. He suggested always having a new return value instead of editing the original in place. He made it clear that he didn't believe there was a "correct" answer, rather it was more of a cultural thing but just wanted to see if I cared enough to give it any thought.