Wrażenia po warsztatach “Podstawy C# oraz .NET Core”

devwarsztaty

Dzisiaj nie będzie ani technicznie ani o projekcie. W minioną sobotę wybrałem się z kumplem do Wrocławia do siedziby PGS Software, na warsztaty z cyklu DevWarsztaty, zatytułowane”Podstawy C# oraz .NET Core” prowadzone przez Piotra Gankiewicza. O Piotrze dowiedziałem się gdy zainteresowałem się DSP17, jako zwycięzcy poprzedniej edycji. Zainteresowało mnie jaki projekt realizował. Takim sposobem dotarłem do jego bloga, snapa i fejsa :p Zacząłem śledzić głównie snapchata. Długo nie byłem do tego programu przekonany a jak zacząłem korzystać to okazało się, że jest to bardzo przyjemne źródło dzielenia się informacjami i wrażeniami. Kiedy Piotr wspomniał o warsztatach z podstaw C# byłem pewien, że chcę w nich wziąć udział. “Ale zaraz zaraz …. przecież Ty programujesz w C#”. No tak może  i programuję, ale w tu pojawia się  problem-nie miałem takiego dobrego przygotowania do programowania. Nauczyłem się złych wzorców i tak brnąłem w to trochę za długo.

Dlaczego podstawy?

Jak wspomniałem we wstępie za długo tkwiłem ze złymi wzorcami oraz brakiem podstaw. Rzucony na głęboką wodę nie utonąłem, jednak moje “pływanie” po tej “wodzie” dalekie było i nadal jest od ideału. Kilka razy zastanawiałem się czy te warsztaty są dla mnie czy nie. Jak Piotr wspominał, że to takie podstawy podstaw przechodziły mi po głowie myśli “A może jednak to nie dla mnie? Może się zanudzę bo wszystko będę umiał?”. No cóż, te pytania zostały bez odpowiedzi i zdecydowałem się, że jadę. Zawsze to nowe doświadczenie, a z niemalże każdej nauki można coś dla siebie wyciągnąć. Tematyka warsztatów:

• Wprowadzenie do platformy .NET Core – czym jest i co nam daje.core
• Czym jest C# oraz jak jest kompilowany i uruchamiany kod źródłowy.
• Definiowanie zmiennych, metod, klas oraz ich poprawne modelowanie.
• Dziedziczenie, polimorfizm, interfejsy i dążenie do abstrakcji.
• Typy generyczne, wyjątki, obsługa błędów, słowo kluczowe var.
• Delegaty oraz wyrażenia lambda, zdarzenia (events).
• Extension methods (metody rozszerzające).
• IEnumerable, IQueryable, yield oraz LINQ.
• Mechanizm refleksji, typy dynamiczne (dynamic).core
• Asynchroniczność oraz wielowątkowość.

Dodatkowym bodźcem była chęć poznania .NET Core oraz narzędzia w którym pisze Piotr czyli Visual Studio Code. Jako, że moim drugim po stacjonarnym komputerem jest Macbook uznałem, że te warsztaty będą dobrym punktem wyjścia.

Dla mnie osobiście minusem VS Code jest brak możliwości budowania aplikacji wizualnych WPF lub Windows Forms. No ale, nie można mieć wszystkiego. To, że Microsoft zdecydował się na wypuszczenie na rynek narzędzia Cross-Platform (na wszystkie platformy Windows, Linux, Mac) jest dużym krokiem na przodu.

W siedzibie PGS Software zebrało się około 20 osób i jak się okazało wszyscy mieli styczność z programowaniem co pozwalało optymistycznie sądzić, że przerobimy cały przygotowany materiał. I prawie tak się stało, zabrakło niewiele ale o tym poniżej.

Przebieg warsztatów

Warsztaty rozpoczęły się z drobnym opóźnieniem ale w zasadzie pozwoliło to każdemu nawet spóźnialskim przygotować się do warsztatów. Gdy Piotr rozpoczął warsztaty okazało się jednak, że jedna osoba nie ma zainstalowanego .NET Core (sic :p), no ale na szczęście instalacja nie trwa długo.

Na początku prowadzący powiedział czym jest i co nam daje .Net Core oraz parę słów o C# jak jest kompilowany i uruchamiany kod źródłowy.

Początek szkolenia faktycznie zapowiadał, że może to być jednak materiał, który już dawno mam za sobą. Zdawało się, że wszytko wiem i pierwsza część nic nowego nie przyniesie. Po części tak było jednak im dalej tym zaczęło się robić ciekawiej.

Na początek trzeba było przygotować środowisko (ten kto jeszcze tego nie zrobił) i stworzyć nowy projekt. Następnie przeszliśmy do omawiania zagadnień zgodnie z tematyką. Omawianie kolejnych kwestii przebiegało całkiem sprawnie co podkreślał sam prowadzący. Mniej więcej co godzinę robiona była krótka przerwa na rozprostowanie kości.

Piotr pytał co jakiś czas czy każdy wszystko rozumie czy coś dodatkowo wyjaśnić, służył również pomocą w przerwach. Omawiane tematy były tłumaczone w sposób przejrzysty i wyczerpujący. Myślę, że każdy by zrozumiał omawiane tematy.

Brakowało mi separowania  plików oraz zasady jednej odpowiedzialności, jednak przy ograniczonym czasie jaki był przeznaczony na warsztaty jest to zrozumiałe, aczkolwiek w plikach i ich strukturze był spory bałagan.

Podsumowanie

Mimo spędzenia bardzo intensywnych 6.5 godzin nie udało się omówić wszystkich tematów. Szkoda :/ Bardzo liczyłem na dotarcie i omówienie LINQ. Niestety mimo, że tempo było dość szybkie zabrakło na to czasu. Pozostaje czekać na kolejną część i dokończenie reszty tematyki oraz poruszenie kolejne kwestie.

Może ktoś zaraz powiedzieć “Tyle piszesz o tych warsztatach a nic kodu nie zamieściłeś”. No właśnie. Na początku pisania tego postu planowałem zamieścić trochę kodu, jednak uznałem, że warto dać link do kursu Becoming a software developer prowadzonego na youtube przez Piotra o –>> tutaj <<– W kursie omawiana jest cała tematyka z warsztatów i dużo więcej. Zachęcam serdecznie do odbycia tego kursu. Nie jest to co prawda to samo co warsztaty, jednak zaufajcie mi jest to bogate źródło wiedzy.

 

 

  • http://www.programmer-girl.com programmer-girl

    “Brakowało mi separowania plików oraz zasady jednej odpowiedzialności” – wielki like, też miałam takie odczucia:)