#458

Wprowadzenie do programowania funkcyjnego

Warsztat odbywa się w formie zdalnej za pośrednictwem platformy/komunikatora online, z wykorzystaniem dźwięku, obrazu z kamery, udostępniania ekranu komputera prowadzącego i uczestników.

Programowanie funkcyjne nie jest wcale nowym paradygmatem, bo sięga aż lat 60-tych i pomimo, że zostało nieco zapomniane, dziś znów zyskuje na popularności. I słusznie, bo pozwala pisać zwięzły deklaratywny kod (wyrażający „co” komputer ma wykonać, a nie „jak”), który jest łatwiejszy w testowaniu i trudniej w nim o błędy.

Używając programowania funkcyjnego piszemy programy, które składają się jedynie z funkcji, które są „czyste” – jeśli damy im ten sam argument to zwrócą tę samą wartość i nigdy nie zmienią niczego innego w programie. Czyste funkcje są łatwiejsze w testowaniu (zwłaszcza jednostkowym), a zbudowane z nich programy mają mniej bugów.

Żarówka

Czego się nauczysz?

Techniki, które poznasz na tym warsztacie wprowadzą Cię w świat programowania funkcyjnego i pozwolą Ci stać się bardziej wszechstronnym programistą. Przy odrobinie otwartości na deklaratywny styl kodowania nauczysz się pisać kod, który jest zwięzły i łatwy do czytania i utrzymywania zarówno dla Ciebie, jak i innych.
- Na warsztacie poznasz podstawowe i nisko-zaawansowane koncepty paradygmatu funkcyjnego programowania, które można wykorzystać w rozmaitych językach imperatywnych, takich jak Java, C#, Python, Ruby, PHP, JavaScript / NodeJS, Go, Swift i innych. Poznasz użyteczność paradygmatu i jaką wartość niesie w sensie pisania aplikacji, które są łatwiejsze w testowaniu i utrzymaniu.
Grupa

Dla kogo jest ten warsztat?

Dla programistów z początkową lub zaawansowaną znajomością języków imperatywnych, którzy chcą poszerzyć swój zestaw narzędzi programistycznych o paradygmat funkcyjny.
- Zachęcamy do uczestnictwa zwłaszcza tych, którzy jeszcze nie zetknęli się z programowaniem funkcyjnym lub mieli problemy ze zrozumieniem jakie niesie ze sobą korzyści!
- Warsztat jest językowo i środowiskowo agnostyczny, dzięki czemu nadaje się dla programistów różnych języków - zarówno front, jak i backendowych.
Notatnik

Wymagania wstępne

1. Podstawowa znajomość programowania (zmienne, typy danych, funkcje, pętle, if-else, etc.)

Prowadzący

Mikołaj Kubera:

Nauczyciel i mentor kodowania, developer, pasjonat programowania funkcyjnego i niezależny twórca. Prowadził własny start-up, pracował w przemyśle jako full-stack developer używając JavaScript i NodeJS oraz języków funkcyjnych (Elm i Elixir). Uczy kodowania full-stack w językach funkcyjnych oraz podstaw programowania w językach imperatywnych. Obecnie pracuje nad niezależnymi grami komputerowymi pisanymi wyłącznie w językach funkcyjnych. Poza programowaniem kocha naturę, sztukę oraz filozofie wschodu.

Program warsztatów

  1. Czym jest programowanie funkcyjne. Które języki są językami stricte funkcyjnymi, a które jedynie używają funkcyjnego paradygmatu.
  2. Koncepty funkcyjnego programowania spotykane w wielu językach imperatywnych, m.in.:
    1. funkcje wyższego rzędu (np. map, filter, reduce)
    2. czyste funkcje vs nieczyste funkcje
    3. niezmienność / niemutowalność danych
    4. deklaratywny kod vs imperatywny kod
    5. funkcje cząstkowe i cząstkowa aplikacja funkcji
    6. kompozycja funkcji i „piping” (operator „pipe”)
  3. Przykładowe użycia
  4. Ćwiczenia (językowo agnostyczne)
  5. Przykłady użycia funkcyjnego paradygmatu w „mainstreamie” i jakie są możliwe „przejścia” pomiędzy językami (np. z Ruby do Elixir, z C# do F#, z Javy do Scali)

Uwaga

Liczba miejsc ograniczona! Organizator zastrzega sobie prawo do odwołania wydarzenia w przypadku niezgłoszenia się minimalnej liczby uczestników.
Zakupione certyfikaty zostaną przesłane uczestnikom w formie elektronicznej po warsztacie. Jeśli chcesz otrzymać zakupiony certyfikat w formie papierowej, zgłoś to mailowo na adres kontakt@stacja.it.

Zapisy na wybrany warsztat zostały zakończone.