A lot of things have changed in programming in the last 25 years, so I’ve had a lot of back-end learning to do. I have looked through many different videos to find the ones that help me learn best, trying to find that balance between fully informative and mind-numbingly boring. Most tutorial videos for learning the programming language of C# come in sets. Many videos are professionally done (sets from official courses that can be purchased to access additional learning tools), while others are casual and occasionally laced with profanity. I have settled on Mosh and Bob as my main resources. They are both professional instructors, and it shows in the thoroughness of the coverage in their videos.
I first started with Bob’s videos. He demonstrated how to download the software suite (Microsoft Visual Studios) in which I have been learning the language. Bob has been very informative on the nitty-gritty of the C# language. Watching Bob’s videos I got right into the programming in the first couple lessons (he emphasizes learning by doing). Bob has the viewer copy his code and then he discusses it. However, I had so many questions about the overall structure of the language and the settings in which it works. Questions that Bob was not answering. I was able to write some code, but I did not understand how it worked. I need a greater understanding of how all the pieces work together, not just the rote ability to be able to write code. I find it very frustrating to have only procedural ability without functional understanding, so I went back to searching through videos. This is when I came across the video sequences done by Mosh. I found Mosh to be more informative in the big picture: how the language is compiled, how it works across platforms, and how system structures have changed in the last 25 years.
There’s a lot of vocabulary and general structure to wade through when learning a programming language as a beginner. Some ideas important in learning C# have been familiar, like variables, and if/else statements, to my mathematics knowledge and my previous programming experience respectively. It has been slower going than I would have liked, because I have so many methods and structures to learn. There has been a lot of conceptual change to programming since the last time I encountered it. I feel I have a good grounding now, and think the coding will go much quicker from here on.
Below is the first program I wrote, as per programming convention, a ‘Hello World’ program. It pops up a separate console screen and prints out “Hello World”… and that’s it. You can see in the picture below that there aren’t very many lines of code.
The program pictured here is what I am capable of writing after several hours of tutorial lessons. You can see that there are many more lines of text (code) in the below picture. This code took me longer to write and to test/debug, but also does considerably more.
The video below is my program as I ran it one time. It is interactive (you can see me typing in responses).
I have a lot more to learn, but at least I know how to gather and use inputs now. I hope to eventually move to GUI based mini-apps that I could link on my classroom site for additional practice and understanding for my students.