I think you're forgetting what it was like to learn your first programming language. A lot of concepts in procedural programming and OOP are hard to wrap your head around at first (static, by ref or by val, the difference between base classes and interfaces).