Learning Path for Junior .NET/C# Backend Developer

Becoming .NET/C# Back-End Developer is not easy. There are tons of materials on-line, but where to start? What is the correct sequence to learn? We have designed this Learning Path to help you grow quickly. But the Learning Path is not enough. So we are also creating resources that will help you on your learning way:

  • Tests with Questions and Answers
    Our tests will guide you through each topic step by step. If you manage to answer the questions yourself, you can proceed further. If not, you should continue studying the topic.
  • Cheatsheets Our Cheatsheets will help you to verify that you remember everything you need. Use them every day to find out what you forgot and use them while you work on something. Try to use all of the things mentioned in Cheatsheets. This way you will build solid foundations for learning more.
Visual Studio and Console Application Setup
GoalDetailsRelated Resources
  • To understand what is Visual Studio and what is Console Application and when and why to use them.
  • To be able to create new Console application.
  • To be able to run the applicaion.
  • To be able to open an existing solution with Console application.
  • To be able to change Startup project.
IDE, Solution (.sln), C# Project (.csproj), Solution Explorer, Recent Projects and Solutions, Console Window, Program entry-point, Set Startup project, F5

Exercises

  • Create a new solution with one console application project in it, make the program to write 'Hello World' to the console window, run the program.
  • Open an existing solution, add a new console application project to it, make the program to write 'Hello World' to the console window, set the startup project to newly created project and run it.
  • Close the Visual Studio. Open it again and open the solution you previously created without using Recent feature.
@* *@
Basic terminology
GoalDetailsRelated Resources
  • To be able to read the .cs file from top to bottom and roughly understand what is happening where.
  • To know the basic C# keywords
Namespace, class, object, method, 'new' keyword, 'using' keyword, variable declaration and 'var' keywod, variable assignment, property, method, property assignment, property reading, method call, return value, 'return' keyword, data type, attribute,

Exercises

  • Read the code and tell me what is each part doing and why it's there.

Important Questions

  • What is on the left hand side from the property name?
  • What is on the left hand side from the method name?
@* *@
Classes and Objects
GoalDetailsRelated Resources
  • To understand what is a difference between class and object.
  • To be able to create new class.
  • To be able to create an instance of an object.
  • To be able to tell what can the class consist of - to know different kinds of class members.
Class, Method, Property, Constructor, 'new' keyword, Field, Getter, Setter, 'return' keyword, 'void' keyword, parameter, Data Type

Exercises

@* *@
Debugging Skills
GoalDetailsRelated Resources
  • To understand what Debugging is and why to use it.
  • To be able to Debug Console Application.
  • To be able to Debug Test Project (xUnit).
Run (F5), Step-Over (F10), Step-Into (F11), Breakpoint (F9), Quick Inspection, Watch, Stack, Debug/Trace Output

Exercises

  • Debug an application and show state-by-statement how the code is executed. Comment what is happening.
@* *@
Tests
GoalDetailsRelated Resources
  • To understand basics about automation testing - why it's useful, why to do it, how to do it.
  • To understand what is Testing Framework.
  • To be able to run tests and evaluate what tests passed and what tests failed in Visual Studio.
  • To understand what is Test Runner.
  • To be able to find, open, close Test Explorer.
  • To be able to find a test in the code by its name.
  • To be able to find and interpret test execution results.
  • To be able to create a new empty test.
  • To be able to name the test properly.
  • To understand what is Assert and how to verify the expected result.
  • To understand a difference between running a test and debugging a test.
  • To be able to debug a test and go through its execution step by step.
Test Runner, Test Explorer, Tests, Test Attributes, Test Classes, Debug Test vs Run Test, Run from Menu, Run from Test Explorer, Run by Right Click, Ctrl+T, Assert - Equals, True, False, Stack Trace, Advanced: Trait, Page Object Pattern

Exercises

  • Run all tests. Run selected tests
  • Debug a selected test, execute its commands step by step and comment on what is happening.
  • Evaluate a failed test.
@* *@