Давайте створювати інженерний вплив разом

GlobalLogic надає унікальний досвід і експертизу на перетині даних, дизайну та інжинірингу.

Зв'яжіться з нами
Cross-Industry

Oleksiy Glembytskyi, Senior Software Engineer, GlobalLogic

My name is Oleksiy Glembytskyi, I am a .NET developer at GlobalLogic, and I also conduct webinars and teach C# programming language courses. And in this article, I would like to share tips that help my students learn C# and become .NET developers.

About the C# programming language and the .NET platform

  • C# is an object-oriented programming language, the syntax of which is similar to C++ and Java, but much easier due to a lot of “syntactic sugar” (such as the yield operator, lambda expressions, async/await keywords), also C# supports a wide range of libraries and frameworks for the development of various programs.
  • .NET is a software development framework that includes a runtime environment, class libraries, and development and debugging tools. The .NET platform itself contains many components, the main of which is the CLR (Common Language Runtime), which executes code written in the C# programming language and other .NET languages, as well as the .NET Framework Class Library (FCL), which contains a wide set of classes for various programming tasks.

Study tips

First of all, I would like to highlight the main options with which you can learn .NET and the C# programming language.

Literature

The first option is to study with the help of literature. If you are just starting to understand programming and you do not have much experience, then I would advise you to start studying with the following books to choose from:

  1. H. Schildt, C# 4.0 The Complete Reference (C# 4.0 Complete Guide) , unfortunately, this book is not the latest version of C#, but it describes fundamental things that do not change from version to version. 
  2. E. Troelsen, Pro C# 7: With .NET and .NET Core (The C# 7 programming language and the .NET and .NET Core platforms) in this book describes both the fundamental things and the new features that have been added to C#. 
  3. D. Sharp , Microsoft Visual C# Step by Step (Microsoft Visual C#. A detailed guide. 8th edition) this book contains many code examples, practical tips and provides clear explanations of the basics of C# and programming in general. 

All the books described above are of the same level of difficulty and are suitable for beginners, because they contain a large number of examples, a clear presentation of the C# language and the basics of programming in general. Which of them to choose is more a matter of taste, here I would advise you to read one chapter from each of these books and choose the one you like, but in general it is best to combine all this literature, because it is difficult to get by with one book. 

If you already have experience in any programming language, you can start studying with more complex literature. I would advise you to read them somewhere after a year, or at least half a year of experience in commercial development, or at least after writing home projects. This literature reveals the mechanisms of how .NET and C# are arranged under the hood. Now in detail about each of these books:

  1. D. Albakhary, C# 9.0 in a Nutshell. The Definitive Reference (C# 9.0. Reference. Complete description of the language) this book includes a more detailed description of C# and describes the latest versions of the language and the latest changes in development technologies. 
  2. Richter J, CLR via C# (CLR via C# programming on the Microsoft platform) or as it is sometimes called, the C# developer’s bible. This book provides an in-depth look at the architecture and operation of the .NET Framework runtime, known as the Common Language Runtime (CLR), using the C# programming language, and includes a detailed description of the CLR. It also describes tools for developing software for the .NET platform, performance optimization, memory interaction, security, and other topics related to the development of C# programs and their execution in the CLR environment. The only advice is if you don’t have a lot of experience, then start studying from the 2nd chapter, because the first chapter describes the assemblies and the topic is necessary, but not the easiest, and it can be postponed until the end of the reading. 

Courses

The second study option is courses. Here you can choose either video courses or online courses. 

The biggest advantage of online courses is the opportunity to ask the teacher questions, get recommendations and have a mentor in the form of a lecturer. When choosing courses, I would advise you to first take the first class (usually it is free). After it, you will have an idea about the format, the program, and most importantly – about the lecturer, because most of the courses that are currently held are author’s. This means that the teacher himself prepares the material and examples, so it is very important to choose an expert who can convey information in a format convenient for you. And of course, it is important that the teacher suits you mentally. 

If you decide to buy a video course, this is also a good option, but here you need to adjust to self-discipline and regularly watch video lessons, because with online courses you will be disciplined for at least a few days by conducting classes, and here all hope is solely on you. When choosing any course option, in my opinion, the most important thing is practice, because if you just listen to a lecturer or watch a video lesson and at the same time it seems to you that everything is clear, after a certain time you will still forget the material. Therefore, the advice here is as follows: more practice, try to write the code shown to you in parallel, modify it and look at the result. But one of the most important things is to always do your homework, because the more practice, the better the result. 

YouTube resources

With the third point, I would single out  YouTube resources, but everything is not so simple here. The main problem with this approach is that there is very little structured material, and it is quite difficult for a beginner without experience to create and follow a training program on his own. In general, you can find a lot of quality content on YouTube, but in my opinion, it should be used in combination with some other approach described above to better understand some topics and to deepen knowledge. For example, if you did not fully understand a topic from the textbook or video lesson materials, you can find several videos on YouTube and delve into the issue.        

Official documentation

And the last point, this is of course official documentation, it contains all the necessary materials for study. The main points that can be included here are the C# and .NET documentation, which includes a description of the main concepts and information on the .NET framework and data about the libraries that can be used during development. Also, one of the points are tutorials on GitHub, which can be useful for acquiring practical skills. But in my opinion, this approach is more auxiliary and can be used to deepen the skills, rather than as the main source of knowledge, due to the very technical presentation of the material. 

Own projects

And finally, I would advise you to write your home project after taking the course or finishing the book, thanks to it you will be able to gain practical experience, as well as understand the intricacies of this or that technology. And of course, this project can be added to your portfolio.

Conclusions

Summing up everything written above, I would advise in general to use combined approaches when studying, for example, take one or another course as a basis, either online or in a recording, and read a certain chapter of the book in parallel with each lesson. In this way, you will consolidate and deepen the knowledge gained in the lectures, and when questions arise, you can refer to the official documentation or YouTube channels for more detailed information.