What's the most optimal approach to learning to implement functions? - C#