A crash course in C# for beginners
For the uninitiated, C# is a general-purpose, object-oriented programming language. It was designed by Microsoft and is used in developing many of their desktop apps. Another major use is for making games in Unity. While there are numerous resources that promise to teach C# for Unity, it is better to learn a language not tied to a game-engine. This has numerous benefits such as having a greater focus on coding rather than spending time in the Unity interface. Furthermore, Unity does certain things behind the scenes and so by learning C# you will have a better understanding. For this review, I will be looking at C# Basics for Beginners: Learn C# Fundamentals by Coding. Here are my thoughts.
About the Author
Mosh Hamedani began his programming journey on the Commodore 64 at age 7. He is the author of numerous top programming courses. His most popular class being a C# series of which this is the first installment. Hamedani has a strong academic background, with a MSc in Network Systems and a BSc in Software Engineering.
- C# and .NET Framework fundamentals
- Primitive types and expressions
- Non-primitive types (classes, structs, arrays and enums)
- Value types and reference types
- Conditional statements
- Arrays and lists
- Files and directories
- Date and time
Workflow for the Course
- Learn a ton of theory
- Go over all of the theory by coding live
- Check your knowledge with a quiz
- Write your own program during an exercise
Who is the Course For?
This course is targeted at “newbies or students looking for a refresher on the basics of C# and .Net”. I feel a more adequate description would be that only someone truly motivated should take this course. While everything a beginner needs to know is covered, there is such an aggressive pace to the course that someone expecting hand-holding will get frustrated by the difficulty. If you do have experience coding, however, then you should feel very comfortable with the course.
The course has this sort of flow: the author front-loads a bunch of theory and then shows that in practice by coding live. This process is repeated a few times and then students have a chance to check their knowledge through quizzes. Finally, students will write their own programs during numerous exercises, which should provide ample opportunity to learn more through iteration and research if required.
Where the course really excels is in the application of theory through live coding. The author codes live on video, highlighting areas a beginner might struggle on by creating errors himself, explaining them, and showing how to fix them. This preventative coding style helps ease the burden of debugging for absolute beginners and is my preferred learning approach.
On the surface, some sections seem linear such as working with time and dates; however, after finishing this section I saw how well the author ties review into examples. Rather than simply showing you how to do something, Hamedani explains everything in as much depth as required. This method is further improved by showcasing multiple ways to do the same thing, explaining the differences at each step. (e.g., static vs instance, overloading, etc.). One thing I did find annoying was the Resharper-first attitude of the author. Resharper is basically a paid tool that gives you access to convenient shortcuts for Visual Studio. Many times, the author teaches the instructions for Resharper before moving on to the normal way. It would make more sense to teach the normal way first as beginners likely don’t want to buy something like that before even knowing how to code.
After bombarding students with theory, the author does such a great job of showing how it all works by building programs from scratch. All coding is shown live rather than copy-pasting, which allowed me to follow the author’s thought-process. Where the author could easily copy-paste sections of code to make his workload easier, he goes the extra mile. This doubles the educational benefit as beginners will be re-exposed to concepts covered earlier. Furthermore, the author highlights everything important every step of the process.
“Where the course really excels is in the application of theory through live coding.”
While initially I found the theory coverage too wide and spattered, the author quickly narrows the scope. Lectures get more and more focused, which is exactly where you want to be as a beginner. Fewer examples and fewer concepts are covered, and the coverage has more depth and focus. Overall, this focus on the core fundamentals of programming works well. I did find that the theory itself was not done terribly well at times. There is a very rough start to the course and the visual presentation of theory is very luke-warm. Thankfully, anything that was covered vaguely is fixed in the aforementioned application side of the course.
C# for Beginners: Learn C# Fundamentals by Coding fulfils what it promises: to teach those new to C# the basics. With a slightly rocky start, each subsequent chapter gets stronger than the last. By the end, I felt that my expectations were surpassed as to what can be learned from such a brief course. I look forward to taking the advanced parts of the series to see how well they establish a complete knowledge of C#.
- Adequate theory coverage
- Great practical coverage
- Great section on debugging
- Informed author
- Active community help each other in forums
- Very detail-oriented (doesn’t skip over anything important)
- Strong usage of “gotchas” (areas a beginner might struggle on)
- Author fosters independence (shows how to research)
- Tons of exercises provide extra practice
- Adequate visual highlighting
- Author’s ability to break down scary terms into something easy-to-understand
- Quizzes inspire review
- Aggressive pacing will have motivated individuals learning faster
- Works well on mobile
- Ample resources provided
- Complete beginners may feel intimidated by aggressive pace and lack of hand-holding
- Occasional omission of content (e.g., installing templates for Visual Studio)
- Author inactive in community
- Resharper testimonial
Get the Course – Course Link