Microsoft has endowed its brainchild, .NET, with genuinely impressive capabilities. The .NET platform provides numerous technologies and tools that allow to use it in almost every industry to create a wide range of projects — from simple desktop applications to mobile products and computer games. Every year, the platform is becoming more and more popular thanks to its flexibility, boosting the growing demand for .NET developers in the labor market.
How can one become a .NET professional from the ground up? The sphere of .NET is so broad that learning everything at once is virtually impossible. A better strategy is to concentrate on particular features or technologies, depending on the chosen development path — for example, check out this roadmap to becoming a .NET expert. However, there are some fundamentals that every .NET professional should master – to name a few, the proficiency of the C# programming language and the ability to code on it.
If you have decided to become a .NET developer, start with mastering the basic concepts of the framework. In this article, we collected videos, exercises, and common .NET questions to be heard at an interview for a Junior position — hope they come in handy!
Videos for learning C# and .NET
- C# 101 – Microsoft video series for beginners
Where to get the most complete basic course for a .NET developer? Obviously, from the very author of the platform — Microsoft! The company produces and shares high-quality materials for learning the fundamentals of the C# programming language, as well as comprehensive guides for mastering the .NET framework. For those new to the field, we suggest beginning with this video course to become familiar with the OOP concepts used in the language, gain a basic understanding of the C# building blocks (data types, fundamental operations, operators, functions (methods), and classes), and learn to create a basic program that outputs <Hello World!>.
- C# Language Highlights – С# features review from the Microsoft team
Already mastered the basics of the language? Then it's time to move on to the next step! Following the release of the C# version 7.1, the.NET team at Microsoft put together a playlist explaining the language's unique features and version changes. Get a grasp of tuples, exception filters, async streams, and other helpful language additions. The playlist is regularly updated with in-depth review videos of the key C# concepts.
- Learn C# with CSharpFritz – A complete language course
We will stick to the tradition of recommending resources from the official Microsoft channel. The following playlist is an incredibly cool collection of podcasts, lives, and videos, where C# is thoroughly analyzed and the viewer is provided with fascinating examples and hands-on practical tasks. If you are tired of studying multiple materials at once — this is your go-to comprehensive course.
Practical tasks and games
- C# Exercises from W3Schools
This is the collection of 58 exercises to help you unify the theory and test your understanding of the language. Tasks are organized by topics: solving each one earns a player 1 point. It is a good way to put new knowledge into practice during the study of the recommended language courses.
- C# programming exercises with solutions – Some more C# exercises (with three difficulty levels)
You can’t have too much practice. Choose a topic and the desired level of difficulty to get a list of C# challenges. As a bonus, you can compare the code of your solution with the ready-made one which goes with each task.
- 350+ C# Practice Challenges – EVEN MORE free C# exercises (with six difficulty levels)
This resource follows the same logic as the previous one: six difficulty levels, from Very Easy to Expert, and you get XP (experience points) for completing each assignment, raising your personal score. These gamified exercises will get you hooked up for sure!
9 most popular questions you may hear in the interview
1. What is object-oriented programming? Describe its main principles.
Object-oriented programming, or OOP, is a programming approach where software development centers around the concept of objects that interact with each other. Different objects combine into the structure of the software code. OOP is an alternative to functional or procedural programming which is also used in C# development. You can read more about the main principles of OOP in our earlier article.
2. What is the difference between managed and unmanaged code?
Managed code is executed by the Common Language Runtime (CLR), a component of the .NET framework, while unmanaged code is executed by the operating system. In contrast to the unmanaged code, where security is the developer's responsibility, the CLR offers a secure environment for code deployment.
3. What is the difference between C and C#?
Although C# is a descendant of C, the fundamental distinction between the two is that C# is an object-oriented programming language, and C is a procedural one. Among other distinctions:
- C# is utilized for desktop and mobile apps as well as web services, whereas C is best suited for building hardware applications and system programming.
- C# includes 87 distinct keywords, compared to C's 32.
- C's code often relies on the hardware features, but C# intrinsically uses a high level of abstraction from hardware.
4. What is an object in the C# language? What is a program?
Object is a core component of every program and an embodiment of the abstract idea of a single entity. In OOP, a program is viewed as a set of objects that interact with each another and share data.
5. What is called a method in the C# language?
Method is a behavior of an object — a block of code that contains a sequence of expressions used to perform certain operations. Methods cannot exist outside of a class, structure, or interface. They help save time by reusing code.
6. What is a structure in the C# language?
Structure is a composite data type that may include methods, fields, constructors, constants, properties, indexers, operators, or sometimes even other structures. A structure helps to combine different types of data into a single unit. Structures are similar to classes in this regard. However, classes are of reference type, whereas structures are of value type.
7. How does a garbage collector work in C#?
Garbage collection is the process of memory management in the program. The garbage collector automatically releases the memory that is no longer in use to make room for new allocations.
8. What is an array?
An array is a data structure that stores a fixed number of elements of the same type. An individual element is referred to by an index.
9. What is recursion?
Recursion is a method that calls itself. Recursive method calls must end when a specified condition is met; otherwise, memory overflow occurs, and the program hangs for the user. The sequential process of recursive method calls is similar to the cyclic process.
Did you know the answers to 9 out of 9 questions? Then it's time to discover for the current possibilities for NET Juniors!