czwartek, listopada 04, 2010

Czeladnika do zawodu programisty przyuczę

O tym, że uczelnie techniczne w Polsce oderwane są od rzeczywistości wiadomo od dawna. Skostniałe kumoterskie układy, narzędzia i technologie pamiętające czasy króla Ćwieczka, program nauczania dostosowany do posiadanych naukowców zamiast do wymaganej na rynku pracy wiedzy. Doskonałym przykładem tej patologii są studia informatyczne - programistyczne. Studenci marnują swoje żywota starając się zrozumieć algorytmikę opartą o grafy, całkując oraz wykonując modele cyfrowych zapalników.
Patrząc z perspektywy mojego kilkuletniego doświadczenia, wiedza ta (pomimo tego, że ciekawa) nigdy nie była przeze mnie użyta. Ileż w końcu jest aplikacji w których można to zastosować? Jedna lub dwie i one są już napisane i używane. Nikt nie poszukuje kolejnego systemu przetwarzania audio, jest kilka płatnych, kilka darmowych, a używane są co najwyżej do wycinania kawałków dźwięków na dzwonki do komórek (jeśli aż tyle).
Zdarzało mi się pracować, ze świeżo upieczonymi studentami, zdarzało mi się też pracować z doświadczonymi pracownikami pozbawionymi podstawowej wiedzy. Metoda prowadzenia zajęć z programowania w językach wysokiego poziomu wypełnia studentów fałszywym przeczuciem, że problemy z którymi się borykają są nowe i całkowicie unikatowe. Nikt nie stara się nawet poruszać kwestii wbudowanych w kompilator albo system operacyjny bibliotek - nauka oparta jest o rozwiązywanie znanych i starych problemów. Przykładem zagadnienia gdzie ta metodologia przynosi największe straty to operacje na napisach (ciągach liter) - prześledźmy to  na przykładzie bardzo popularnej biblioteki strings (albo array) w porównaniu do najpopularniejszych problemów. Podstawą jest długość napisu (to wie każdy, bo każdy to widział), podmiana jednego ciągu na inny (tu już kusi wymyślić koło na nowo), złączenie tablicy w napis przy pomocy jakiegoś separatora (np. przecinka) - tutaj już pełna samowolka, o takich rzeczach jak uzupełnianie znakiem do długości, zamiana małych na duże litery, policzenie słów i tak dalej. Tysiące programistów na świecie opracowuje właśnie własne procedury, do rozwiązywania takiego typu problemów, nikomu nie przyjdzie do głowy sprawdzić czy, a nóż-widelec, ktoś to zrobił wcześniej, może nawet (o zgrozo!) jest to wbudowane w kompilator.
Jeśli absolwent ma szczęście trafić zaraz po studiach do środowiska które w dość szybki (a często i brutalny) sposób uświadomi mu jego braki oraz niedociągnięcia - jeśli tego szczęścia nie ma, trafi do firmy wypełnionej takimi samymi jak on, grupowo będą legitymizować swoje błędy tracąc czas oraz pieniądze inwestora na odtwarzanie dawno zoptymalizowanych i rozwiązanych problemów - tylko dlatego, że wszyscy uczestnicy tej gry pozbawieni zostali praktycznej wiedzy, którą miał im dostarczyć uniwersytet. Uniwersytet wypełniony teoretykami nie ma zaś możliwości przekazania studentom wiedzy praktycznej, gdyż najzwyczajniej jej nie posiada. Programowanie  można porównać do produkcji skrzypiec: można spędzić kilka ładnych lat ucząc się zjawiska rezonansów, wyliczając idealne grubości oraz długości strun, poznając historię ludwisarskiego fachu. Czy może to skutkować tym, że tak wyedukowany człowiek wyprodukuje dobre skrzypce? Nie, w żadnym wypadku, najwyżej będzie to pudełko ze sznurkami. By móc rzeźbić w czymkolwiek, trzeba ten materiał poczuć, drewno musi leżeć w dłoni, trzeba poznać jego twardość plastykę i zachowanie pod uciskiem, trzeba wielu lat praktyki aby produkować dobre skrzypce, jednak nikt nie wpada na pomysł studiowania tego, gdyż wiedza taka byłaby zupełnie zbyteczna i płacenie za takie studia to całkowity idiotyzm.
W dzisiejszych czasach prawie całkowicie zaniknął proces przyuczania do zawodu w praktyce. Nie było szkół dla kowali, szewców, ludwisarzy czy też piekarzy - czeladnik pomagając przy pracy, patrząc na ręce nabierał wiedzy, tak by w końcu sam mógł uczyć. Czemu nikt nie prowadzi czeladniczych praktyk programistycznych? Komitywa firm z uczelniami mogłaby skutkować produkcją studentów, którzy po wyjściu z uczelni byliby już zaznajomieni z rynkiem, zżyci z jego oczekiwaniami i przystosowani do nauki przez praktykę, nie baliby się przy tym nauki nowych rzeczy, byłby to naturalny sposób dla nich na rozwijanie swoich umiejętności. Firmy w takim układzie miałyby ewidentny zysk - filtrację najlepszych oraz ewidentny wpływ na to w jakim kierunku szkoleni są studenci, uczelnie wzbogaciłyby znacząco swoją ofertę edukacyjną, takie studia nie byłyby tanie, jednakże ich unikatowy charakter gwarantowałby praktycznie zatrudnienie w branży po ukończeniu. Ścisła współpraca doprawiłaby majonez teorii szczyptą (albo i garścią) pieprzu praktyki - tak potrzebnej w tym dość specyficznym zawodzie.

1 komentarz:

z1mEk pisze...

Ja się zgadzam.

Prześlij komentarz