Menu Zamknij

Kurs C#

Cena szkolenia

Cena szkolenia wynosi 120 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji zadań i projektów zleconych w ramach szkolenia.

Opis kursu

Szkolenie przygotowuje do pracy na stanowisku Programista C#, Junior .NET Developer lub podobnym. Po zakończeniu szkolenia uczestnik kursu będzie w stanie tworzyć oraz rozwijać aplikacje w języku C# oraz aplikacje bazodanowe z wykorzystaniem frameworka Entity Framework. Opanowanie zagadnień pojawiających się w szkoleniu zagwarantuje uczestnikowi kursu możliwość dalszego rozwijania się w kierunku tworzenia aplikacji zarówno webowych jak i mobilnych oraz gier komputerowych. Podczas szkolenia uczestnik kursu pozna dodatkowo wiele innych narzędzi wspomagających pracę z opisanymi wyżej technologiami. Uczestnik kursu wykorzysta języki i technologie w najnowszych wersjach. Kurs cały czas rozwijany jest pod kątem najbardziej aktualnych rozwiązań wymaganych w branży IT.

W ramach szkolenia uczestnik kursu rozwiąże ogromną ilość zadań teoretycznych i praktycznych, które skutecznie przygotują go do rozmowy kwalifikacyjnej. Wiedza uczestnika kursu będzie systematycznie sprawdzana w trakcie próbnych rozmów kwalifikacyjnych, które odbywają się w języku polskim lub angielskim.

Po zakończeniu szkolenia uczestnik kursu będzie posiadał kilka dużych projektów, które potwierdzą jego praktyczne umiejętności posługiwania się narzędziami i językami programowania, które pojawiły się w kursie. Każdy kolejny etap projektu będzie indywidualnie sprawdzony i oceniony przez mentora. Zagwarantuje to zgodność projektu z przyjętymi założeniami oraz dobrymi praktykami programistycznymi, jak również wymusi systematyczną pracę nad projektem. Dodatkowo uczestnik kursu otrzyma zadania rozwijania lub modyfikowania istniejących już projektów oraz ich analizy pod kątem wyszukiwania błędów.

Szkolenie zawsze odbywać się będzie w formie spotkań indywidualnych, dzięki czemu tempo kursu zostanie dopasowane do konkretnych potrzeb uczestnika kursu.

Potrzebne aplikacje i narzędzia

Komputer / laptop z systemem operacyjnym Windows i zainstalowanym zestawem narzędzi do budowania aplikacji pojawiających się w trakcie szkolenia. Potrzebne oprogramowanie zostanie szczegółowo opisane oraz zainstalowane na pierwszym darmowym spotkaniu testowym lub w momencie, kiedy nastąpi konieczność jego wykorzystania w trakcie szkolenia.

Aplikacje potrzebne do nawiązania połączenia: Team Viewer oraz Skype. Na życzenie uczestnika kursu będzie możliwość używania innej aplikacji zdalnego pulpitu lub komunikatora głosowego. Na pierwszym darmowym spotkaniu testowym oceniona zostanie jakość połączenia. Na tej podstawie przeprowadzona będzie konfiguracja, która pozwoli zapewnić najlepszą jakość dźwięku oraz obrazu podczas szkoleń.

Umiejętności potrzebne przed
rozpoczęciem kursu

Kurs przeznaczony jest dla osób o różnym stopniu zaawansowania. W szkoleniu uczestniczyć mogą osoby, które nie miały do tej pory nic wspólnego z programowaniem, ale również osoby, które już posiadają doświadczenie na podobnym stanowisku. Celem szkolenia jest przygotowanie do pracy programisty, jak również podnoszenie kwalifikacji osób już pracujących w branży IT.

Istnieje możliwość rozpoczęcia szkolenia od wybranego punktu w planie szkolenia. Kurs poprzedzony jest wtedy szczegółową rozmową kwalifikacyjną w języku polskim lub angielskim. Na podstawie rozmowy zostanie oceniony poziom uczestnika kursu z zakresu materiału przed wybranym punktem w planie szkolenia.

Plan szkolenia

  • 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

Zapisz się na KURS i zyskaj - licencja JetBrains na 6 miesięcy za darmo!