Ze smutkiem muszę stwierdzić, że studia, które całkiem niedawno ukończyłem, chociaż przekazały mi całkiem sporo wiedzy związanej z różnymi działami informatyki, jej zastosowaniami oraz teoretycznymi podstawami, to w kwestii języków programowania ukazywały studentom jedynie bardzo wąski wycinek rzeczywistości. Nie mam tu na myśli tego, że uczelnia powinna organizować zajęcia z większej liczby technologii, że powinna uczyć innych języków programowania niż ma to miejsce obecnie, albo że ważne jest, aby podążała za najnowszymi trendami i przekazywała wiedzę dotyczącą tego, co aktualnie wykorzystywane jest w firmach. Co więcej, wcale nie uważam że tak być powinno. Sądzę, że studia informatyczne mogą doskonale spełniać swoją rolę, nawet jeśli nie będą wymagały od studentów opanowania na zaliczenie N języków programowania. Warsztat praktycznych umiejętności i tak trzeba budować samodzielnie – czas, który jest na to niezbędny zdecydowanie wykracza wszak poza limity godzin, które można na to poświęcić na uczelni.

O co mi zatem chodzi? O paradygmaty programowania. Myślę, że nie pomylę się, jeśli na podstawie własnych doświadczeń i obserwacji stwierdzę, że większość absolwentów kierunków informatycznych przez lata swojej edukacji uczyła się niemalże wyłącznie o programowaniu imperatywnym. W pierwszych semestrach nauki poznaje się zazwyczaj programowanie strukturalne i proceduralne (zwykle na przykładzie języka C). Później dochodzi do tego programowanie obiektowe (najczęściej w Javie) – studenci muszą wykazywać się wiedzą o wzorcach projektowych, polimorfizmie, dziedziczeniu i enkapsulacji. Zapewne nawet osoby oporne w kwestiach programowania, które informatykę studiują z myślą o pracy w całkiem innej działce IT, dobrze zapamiętały sobie te definicje. Szkoda jednak, że w programie studiów zabrakło obowiązkowego kursu, uświadamiającego o istnieniu i charakterystyce innych, mniej popularnych, paradygmatów programowania. Oczywiście zdaję sobie sprawę, że na niektórych uczelniach odbywają się takie zajęcia, ale raz, że z pewnością nie na wszystkich, a dwa, że i tak są to kursy fakultatywne (poprawcie mnie, jeśli mylę się w tym miejscu).

Osobiście, już od dawna czułem potrzebę poszerzenia swojej wiedzy w zakresie programowania deklaratywnego, ale niestety czas studiów, wypełnionych pracą zawodową i ambitnie dobieranymi przedmiotami nieobowiązkowymi, nie pozwalał w pełni poświęcić się tym planom. Na szczęście wreszcie nadeszła chwila, kiedy mogę zacząć realizować swoje zamierzenia. Nie opowiem teraz o niesamowitych zaletach poznawania programowania funkcyjnego, ani o tym jak tworzenie kodu w językach programowania logicznego zmienia sposób myślenia. Nie opowiem, ponieważ tego typu opinie są mi aktualnie znane tylko lektur i rozmów, a nie z własnego doświadczenia. To, co zamierzam zrobić w najbliższym miesiącu, to poczuć to na własnej skórze – chcę nauczyć się programowania w Prologu.

Dlaczego akurat Prolog? I dlaczego poznawanie programowania deklaratywnego wymyśliłem sobie rozpocząć od programowania logicznego, a nie funkcyjnego? Lista technologii, które czekają w mojej kolejce na to, by się ich nauczyć, jest naprawdę długa, a fakt, że na pierwsze miejsce wskoczył właśnie Prolog można chyba częściowo przypisać temu, że wiem o nim bardzo mało. Jest więc z mojej perspektywy owiany pewną tajemnicą i liczę na to, że poznawaniu go będą towarzyszyć momenty zdumienia i ekscytacji. Mam też nadzieję, że publiczny charakter niniejszego postanowienia sprawi, że jego realizowanie pójdzie mi łatwiej niż dotrzymywanie składanych tylko w duchu obietnic. W końcu za miesiąc będę musiał przygotować podsumowanie tego wyzwania i podzielić się jakimiś dokonaniami. Warto więc, by jakieś w ogóle były… 😉

 

1 thought on “Deklaratywne wyzwanie na listopad: Prolog

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *