Menu Zamknij

Kurs C#

Opis kursu

  • Profesjonalne przygotowanie do pracy na stanowisku programisty w wybranym języku programowania oraz powiązanymi z nim bibliotekami oraz frameworkami.
  • Nauka od podstaw po zaawansowane rozwiązania komercyjne.
  • Zoptymalizowany kod napisany zgodnie z dobrymi praktykami programistycznymi.
  • Szkolenie według planu dopasowanego do najnowszych standardów IT.
  • Nagrania ze spotkań grupowych, które możesz oglądać kiedy tylko chcesz.
  • Ogromna ilość zadań teoretycznych i praktycznych o różnym poziomie trudności.
  • Wsparcie mentora przy rozwiązywaniu problemów związanych z pytaniami teoretycznymi, zadaniami praktycznymi i projektami komercyjnymi.
  • Elastyczny kontakt z mentorem.
  • Profesjonalne przygotowanie do rozmowy kwalifikacyjnej.
  • Profesjonalnie przygotowane portfolio z rozbudowanymi projektami komercyjnymi.
  • Skuteczne techniki nauki programowania.
promocja ikona
PROMOCJA – pierwsze spotkanie GRATIS

Już teraz

zapisz się na kurs​

Zostaw swoje namiary, a skontaktuję się z Tobą w sprawie kursu

    * - pola obowiązkowe

    Administratorem danych osobowych jest KM PROGRAMS KRZYSZTOF MAKOWSKI z siedzibą przy ul. Cicha 7, 42-454 Niegowonice, Polska. Dane osobowe osób korzystających z formularza kontaktowego przetwarzane są w celu identyfikacji nadawcy oraz obsługi zapytania przesłanego przez udostępniony formularz. Więcej informacji o przetwarzaniu danych osobowych, w tym o przysługujących Ci uprawnieniach, znajduje się w Polityce Prywatności.

    Plan kursu

    • Konfiguracja i uruchomienie środowiska programistycznego
    • Omówienie architektury .NET oraz .NET Core
    • Wykonywanie kodu w środowisku zarządzanym oraz platforma CLI
    • Zmienne
    • Stałe
    • Typy danych i kategorie typów
    • Literały
    • Zarządzanie znakami – typ char
    • Napisy – przegląd metod typu string
    • Interpolacja napisów
    • Formatowanie napisów
    • Typ System.Text.StringBuilder
    • Wyrażenia regularne
    • Pobieranie i prezentacja danych
    • Formatowanie dwustronne
    • Dyrektywa using oraz using static
    • Wartości null oraz void
    • Słowo kluczowe var
    • Typy bezpośrednie i typy referencyjne
    • Konwersje pomiędzy typami danych
    • Operatory
    • Instrukcje sterujące oraz pętle
    • Mechanizm pattern matching
    • Tablice
    • Metody do zarządzania tablicami
    • Typ tuple i dekonstrukcja
    • Zagadnienia uzupełniające
    • Definiowanie metod
    • Stos i sterta
    • Sposoby przekazywania parametrów do metod
    • Pomijanie parametrów wejściowych – wildcards
    • Parametry out variables
    • Wartości zwracane przez metody
    • Zwracanie przez referencję
    • Metody z ciałem w postaci wyrażenia
    • Metody o zmiennej ilości parametrów
    • Parametry opcjonalne
    • Przeciążanie metod
    • Metody lokalne
    • Rekurencja
    • Zagadnienia uzupełniające
    • Definicja klasy i obiektu
    • Referencja do obiektu klasy
    • Omówienie założeń enkapsulacji
    • Modyfikatory dostępu do składników klasy
    • Pola instancji
    • Pola tylko do odczytu – modyfikator readonly
    • Metody instancji
    • Referencja this
    • Deklarowanie właściwości
    • Właściwości przeznaczone tylko do odczytu lub tylko do zapisu
    • Konstruktory
    • Inicjatory obiektów
    • Finalizatory
    • Typy anonimowe
    • Składniki statyczne
    • Konstruktory statyczne
    • Klasy statyczne
    • Metody rozszerzające
    • Klasy zagnieżdżone
    • Klasy i metody częściowe
    • Kompozycja
    • Klasa System.Object i jej metody
    • Zagadnienia uzupełniające
    • Omówienie założeń dziedziczenia
    • Klasa bazowa i klasa pochodna
    • Modyfikatory dostępu w dziedziczeniu
    • Konstruktory w dziedziczeniu
    • Przesłanianie składowych z klas bazowych
    • Polimorfizm
    • Metody rozszerzające w dziedziczeniu
    • Składniki statyczne w dziedziczeniu
    • Rzutowanie między typem bazowym a pochodnym
    • Klasy zamknięte – modyfikator sealed
    • Modyfikatory virtual oraz new w dziedziczeniu
    • Odwołanie do składników klasy bazowej – słowo kluczowe base
    • Klasy abstrakcyjne
    • Zagadnienia uzupełniające
    • Deklaracja interfejsu
    • Implementacja interfejsu
    • Interfejsy a polimorfizm
    • Implementacja z jawnie podawanym interfejsem
    • Implementacja bez jawnie podawanego interfejsu
    • Dziedziczenie interfejsów
    • Metody rozszerzające i interfejsy
    • Interfejsy znacznikowe
    • Zagadnienia uzupełniające
    • Omówienie zasady działania delegatów
    • Deklarowanie typu delegata
    • Tworzenie instancji delegata
    • Metody anonimowe
    • Wyrażenia lambda
    • Delegaty ogólnego przeznaczenia System.Func oraz System.Action
    • Zarządzanie zmiennymi zewnętrznymi wyrażenia lambda
    • Delegaty typu multicast i wzorzec obserwator
    • Deklarowanie zdarzeń
    • Typy generyczne a delegaty
    • Zagadnienia uzupełniające
    • Algorytmy badające właściwości geometryczne
    • Algorytm badające właściwości matematyczne
    • Konwersje pomiędzy systemami liczbowymi
    • Badanie ciągów danych pod kątem wybranych właściwości
    • Sortowanie ciągów danych
    • Zastosowanie metody dziel i zwyciężaj
    • Wybrane metody numeryczne
    • Programowanie zachłanne
    • Algorytmy na tekstach
    • Wybrane algorytmy kryptograficzne
    • Rekurencja
    • Przegląd wybranych struktur danych
    • Zagadnienia uzupełniające
    • Omówienie hierarchii wyjątków
    • Sposoby zgłaszania wyjątków
    • Sposoby przechwytywania wyjątków
    • Ponowne zgłaszanie przechwyconego wyjątku
    • Wyjątki w wyrażeniach
    • Implementacja własnych klas do obsługi wyjątków
    • Dziedziczenie klas wyjątków
    • Zwalnianie zasobów z wykorzystaniem instrukcji using
    • Dobre praktyki zgłaszania i obsługi wyjątków
    • Zagadnienia uzupełniające
    • Klasyfikacja wzorców projektowych
    • Implementacja wzorców kreacyjnych
    • Implementacja wzorców strukturalnych
    • Implementacja wzorców czynnościowych
    • Zagadnienia uzupełniające
    • Omówienie hierarchii kolekcji
    • Inicjatory kolekcji
    • Interfejs IEnumerable oraz IQueryable
    • Standardowe operatory kwerend
    • Wyrażenia z kwerendami
    • Przegląd wszystkich metod technologii LINQ
    • Wzorzec Lazy Evaluation w pracy z kwerendami
    • Klauzule let, into, from
    • Wzorzec projektowy iterator
    • Podstawowe interfejsy w kolekcjach: ICollection, IList, IDictionary
    • Podstawowe klasy w kolekcjach: List, Dictionary<K, V>, SortedDictionary<K, V>, SortedList, Stack, Queue, LinkedList
    • Indeksery
    • Zagadnienia uzupełniające
    • Definicja klasy generycznej
    • Generyczne interfejsy i struktury
    • Reprezentacja typów generycznych w CIL
    • Typy Pair oraz Tuple
    • Zagnieżdżone typy generyczne
    • Ograniczenia typów generycznych
    • Metody generyczne
    • Kowariancja i kontrawariancja w typach generycznych
    • Przechwytywanie informacje o typie w runtime
    • Zagadnienia uzupełniające
    • Tworzenie, uruchamianie i zarządzanie wątkami
    • Blokowanie i usypianie wątków
    • Pule wątków
    • Wątki aktywne i działające w tle
    • Priorytety wątków
    • Wyjątki w wielowątkowości
    • Współdzielenie zasobów
    • Synchronizacja
    • Klasa Monitor
    • Słowo kluczowe lock
    • Pola jako zmienne volatile
    • Klasa System.Threading.Interlocked
    • Inne typy związane z synchronizacją
    • Zadania asynchroniczne
    • Wzorzec obsługi asynchroniczności za pomocą zadań
    • Instrukcje async oraz await
    • Asynchroniczne wyrażenia lambda
    • Pętle równoległe
    • Klasy kolekcji przetwarzanych równolegle
    • Równoległe wykonywanie kwerend LINQ
    • Zegary
    • Zagadnienia uzupełniające
    • Omówienie architektury frameworka Entity Framework
    • Zarządzanie bazą danych – podejście code-first
    • Zarządzanie bazą danych – podejście database-first
    • Budowanie modelu bazy danych – mapowanie tabel
    • Praca z migracjami
    • Dodawanie nowej tabeli
    • Modyfikowanie istniejącej tabeli
    • Usuwanie istniejącej tabeli
    • Tworzenie relacji pomiędzy tabelami
    • Wypełnianie tabel przykładowymi danymi
    • Konfiguracja tabel i wprowadzanie ograniczeń z wykorzystaniem DataAnnotations
    • Konfiguracja tabel i wprowadzanie ograniczeń z wykorzystaniem FluentAPI
    • Pobieranie i przetwarzanie danych z wykorzystaniem technologii LINQ
    • Lazy Loading
    • Problem Select N + 1
    • Eager Loading
    • Explicit Loading
    • Wykorzystanie wzorców projektowych i typów generycznych w zarządzaniu danymi
    • Narzędzia wspomagające pracę z Entity Framework
    • Architektura wielowarstwowa
    • Implementacja kompletnej aplikacji zarządzającej komunikacją bazodanową z wykorzystaniem Entity Framework
    • Zagadnienia uzupełniające
    • Dyrektywy preprocesora
    • Przestrzenie nazw
    • Obsługa zasobów zewnętrznych
    • Operator nameof
    • Porównanie działania operatorów is oraz as
    • Struktury
    • Wyliczenia
    • Przeciążanie operatorów
    • Operatory konwersji
    • Implementacja bibliotek
    • Refleksje
    • Atrybuty
    • Omówienie architektury GIT
    • Przegląd instrukcji GIT
    • Rozgałęzianie i scalanie w GIT
    • Aplikacje i wtyczki do pracy z GIT
    • Praca ze zdalnym repozytorium
    • GitHub Pages
    • Zagadnienia uzupełniające

    Newsletter