#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 kodowania, developer, pasjonat funkcyjnego programowania, i niezależny twórca (indie maker). 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 jako indie maker nad własną appką dla twórców komiksów zainteresowanych kolaboracjami. 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.