Skip to content
ballmüllersolutions logo Send an email Call us

K1 Getting started: programming with C#

Build console programs with classes, collections, LINQ, tests and Git.

Join the waiting list

Who it is for

For beginners who want to learn programming properly after their first program, including people coming from another job.

Prerequisites

The K0 taster course or the placement test. Reading English well helps, because the documentation is in English, but it is not a requirement.

Afterward, you can

  • Work with the .NET SDK, VS Code and the command line
  • Build programs from types, methods and clear control flow
  • Process data in lists, dictionaries, files and JSON
  • Design classes, records and interfaces, composition over inheritance
  • Write expressive code with LINQ, pattern matching and nullable reference types
  • Handle errors and find them in the debugger
  • Work with Git, pull requests and reviews
  • Test code with xUnit and develop test-first
  • Write asynchronous code with async, await and HttpClient

Contents

  1. 1.1

    Tools

    .NET SDK, VS Code with C# Dev Kit, the command line, Codespaces, project structure

    10 h
  2. 1.2

    The language

    types, variables, expressions, control flow, methods, scopes

    25 h
  3. 1.3

    Data

    arrays, List, Dictionary, strings, date and time, files, JSON with System.Text.Json

    20 h
  4. 1.4

    Object orientation

    classes, records, interfaces, composition over inheritance, encapsulation, SOLID in the small

    25 h
  5. 1.5

    Expressive code

    lambdas, LINQ, pattern matching, nullable reference types

    15 h
  6. 1.6

    Errors

    exceptions, the result pattern, debugging

    10 h
  7. 1.7

    Git

    commit, branch, pull request, review, conflicts

    10 h
  8. 1.8

    Tests

    xUnit, good test names, a TDD kata, why the exit code counts

    15 h
  9. 1.9

    Asynchronous code

    async/await, HttpClient, canceling with CancellationToken

    10 h
  10. 1.10

    Final project

    the Kladde as a console program

    20 h

About 160 hours in all (indicative).

Lessons

You see the text and video of every lesson here on the site after buying the course; the titles and goals are already shown. A self-study course: you work through the lessons in order and check your exercises yourself against the solutions.

The lessons stand under their modules, in the order of the course. Click a module to open or close its lessons.

1.1 Tools

Indicative: 10 hours · 5 lessons
  1. Lesson 1 · about 120 minutes

    From a file-based app to a project

  2. Lesson 2 · about 120 minutes

    Solution and folders

  3. Lesson 3 · about 60 minutes

    The editor as a tool

  4. Lesson 4 · about 120 minutes

    Using the command line safely

  5. Lesson 5 · about 120 minutes

    The same environment everywhere

1.7 Git

Indicative: 10 hours · 5 lessons
  1. Lesson 6 · about 120 minutes

    Recording versions with Git

  2. Lesson 7 · about 120 minutes

    Branches and merge

  3. Lesson 8 · about 120 minutes

    GitHub: the repository online

  4. Lesson 9 · about 120 minutes

    Pull requests and reviews

  5. Lesson 10 · about 60 minutes

    Resolving conflicts

1.2 The language

Indicative: 25 hours · 6 lessons
  1. Lesson 11 · about 240 minutes

    Values and types

  2. Lesson 12 · about 180 minutes

    Expressions and conversions

  3. Lesson 13 · about 240 minutes

    Control flow in depth

  4. Lesson 14 · about 300 minutes

    Methods

  5. Lesson 15 · about 180 minutes

    Scope and lifetime

  6. Lesson 16 · about 180 minutes

    Readable code

1.8 Tests

Indicative: 15 hours · 5 lessons
  1. Lesson 17 · about 120 minutes

    Why tests

  2. Lesson 18 · about 180 minutes

    Good tests

  3. Lesson 19 · about 180 minutes

    Designing for testability

  4. Lesson 20 · about 240 minutes

    Test-driven development

  5. Lesson 21 · about 60 minutes

    Tests in everyday work

1.3 Data

Indicative: 20 hours · 6 lessons
  1. Lesson 22 · about 120 minutes

    Lists and arrays in depth

  2. Lesson 23 · about 180 minutes

    Dictionary and HashSet

  3. Lesson 24 · about 240 minutes

    Text and culture

  4. Lesson 25 · about 240 minutes

    Date and time

  5. Lesson 26 · about 180 minutes

    Files and paths

  6. Lesson 27 · about 180 minutes

    JSON

1.4 Object orientation

Indicative: 25 hours · 6 lessons
  1. Lesson 28 · about 240 minutes

    Classes and objects

  2. Lesson 29 · about 240 minutes

    Encapsulation and rules

  3. Lesson 30 · about 180 minutes

    Records and value objects

  4. Lesson 31 · about 240 minutes

    Interfaces

  5. Lesson 32 · about 180 minutes

    Composition over inheritance

  6. Lesson 33 · about 300 minutes

    SOLID in the small

1.5 Expressive code

Indicative: 15 hours · 5 lessons
  1. Lesson 34 · about 180 minutes

    Lambdas and delegates: behavior as a value

  2. Lesson 35 · about 240 minutes

    LINQ: asking a list questions

  3. Lesson 36 · about 180 minutes

    LINQ: grouping, and when a query really runs

  4. Lesson 38 · about 120 minutes

    Safe with null

1.6 Errors

Indicative: 10 hours · 3 lessons
  1. Lesson 39 · about 180 minutes

    Exceptions: when something goes wrong

  2. Lesson 41 · about 180 minutes

    Debugging: finding bugs instead of guessing

1.9 Asynchronous code

Indicative: 10 hours · 4 lessons
  1. Lesson 42 · about 180 minutes

    async and await

  2. Lesson 43 · about 180 minutes

    HttpClient: data from the web

  3. Lesson 44 · about 120 minutes

    Canceling with CancellationToken

  4. Lesson 45 · about 60 minutes

    Testing asynchronous code

1.10 Final project

Indicative: 20 hours · 4 lessons
  1. Lesson 46 · about 120 minutes

    Planning: the missing features as issues

  2. Lesson 47 · about 720 minutes

    Building: the Kladde in version 1

  3. Lesson 48 · about 180 minutes

    Review and polish

Final project: the Kladde

What the Kladde can do after this course

Contacts and appointments as a console program, stored in JSON, with tests and a Git history with reviews.

At the end you present the project in a demo, explain a part of your code and quiz yourself with practice questions and their answers – on your own or in front of someone you know.

More about the Kladde

Certifications

No certification is needed at this stage.

Keep learning with Microsoft Learn

Microsoft's learning paths and documentation that go with this course.

All courses at a glance