Wprowadzenie do programowania funkcyjnego
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.
Czego się nauczysz?
- 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.
Dla kogo jest ten warsztat?
- 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.
Wymagania wstępne
Prowadzący
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
- Czym jest programowanie funkcyjne. Które języki są językami stricte funkcyjnymi, a które jedynie używają funkcyjnego paradygmatu.
- Koncepty funkcyjnego programowania spotykane w wielu językach imperatywnych, m.in.:
- funkcje wyższego rzędu (np. map, filter, reduce)
- czyste funkcje vs nieczyste funkcje
- niezmienność / niemutowalność danych
- deklaratywny kod vs imperatywny kod
- funkcje cząstkowe i cząstkowa aplikacja funkcji
- kompozycja funkcji i „piping” (operator „pipe”)
- Przykładowe użycia
- Ćwiczenia (językowo agnostyczne)
- 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
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.