While you can create a C# program with just variables and control flow, C# is an object oriented language (OOP). This means you organize your code into objects which interact with each other. This course will provide the basics of OOP by introducing you to value types and reference types.
This is a companion discussion topic for the original entry at https://www.raywenderlich.com/604335-intermediate-programming-with-c