Input is often the terminal / user, but really, can be anything. Data, Incoming Network traffic, and so on, can all act as input for specific types of software.
Output, is the result of your program execution. Often it's to the screen, but it could be outbound Network traffic, writing files to disk, executing OS commands, etc.
Return is a way to pass information from one part of the program to another, while at the same time sectioning off parts of the program into logical functions or methods.
And lastly, for someone starting off with ruby is there any programs highly recommended or just practices or anything that will benefit me?
Most of the questions you've been posting are not Ruby specific, but more general Computer Science. You may look into how a computer processes your instructions / logic explanations, because knowing how to write software that takes advantage of things like return, is different from knowing what return itself does. If it's available, a course in computer logic would likely answer a lot of your questions.