15 października 2010

Być wszechstronnym multikoderem...

Rozpoczął się dla mnie bardzo pracowity semestr. Każdy poprzedni też był wymagający, niemniej jednak ten nr 9 ma w sobie to coś, co prawdziwe informatyczne tygrysy lubią najbardziej :) Programowanie, programowanie, programowanie! To nie jest tak, że w poprzednich latach programowaliśmy mało. Raczej chodzi o to, że programowaliśmy zazwyczaj w bardzo typowy - imperatywny sposób. Co prawda na pierwszym roku mieliśmy nawet odrobinę programowania w logice za pomocą prologa, lecz wówczas jakoś nie zachwycił mnie ten język.

Jak do tej pory mogę powiedzieć, że w stopniu dobrym lub bardzo dobrym opanowałem języki C/C++/C#/Java. Zdarza/zdarzyło mi się "od potrzeby" pisać coś w Asemblerze/Fortranie/Pascalu/Delphi/Perlu/JavaScripcie/PHP/Matlabie/Bashu. Fajnie, nieprawdaż?

No właśnie nie...

Języki z drugiej grupy znam naprawdę pobieżnie. Obecnie nawet nie wiem, czy chciałbym je wpisywać do CV. Co z tego, że wypisałbym sobie tam 14 języków programowania, skoro można by mnie było zagiąć pytaniem o podstawy większości z nich (inna sprawa, że pracodawca zazwyczaj nie szuka multikodera, lecz osoby która potrafiła zgłębić pewien (być może nawet i wąski) zakres wiedzy, jednak na poziomie eksperckim). W moim przypadku programy, które pisałem w językach z grupy drugiej pisałem głównie na podstawie analogii do znanych mi języków z grupy pierwszej. Zazwyczaj to wystarczało. Więc mówienie, że znam np. Fortrana/Pythona/Asemblera było by po prostu przesadą.

Ktoś mógłby powiedzieć:

"No dobra noisy, no ale przecież nie jest źle, a nawet jest całkiem nieźle! Powiedziałeś, że w dobrym stopniu opanowałeś aż 4 języki".

Mógłbym przyznać temu argumentowi rację, ale jako "programista z zamiłowania", nie potrafię! Pierwszą rzeczą jaką mam sobie do zarzucenia jest to, że co prawda może to i są 4 języki, ale tak naprawdę wszystkie wywodzą się od C, wszystkie mają podobną składnie i zasady. Gdy zacząłem pracować i musiałem nagle zmodyfikować jakiś skrypt np. napisany w pythonie, to naprawdę męczyłem się z tym niemiłosiernie. Prawda jest taka, że wszechstronny programista (tzn. taki który nie sra w gacie, kiedy musi nagle napisać coś w języku, o którym być może nawet nie słyszał) nie musi znać wszystkich najpopularniejszych języków programowania, lecz jednak dobrze by było aby:

- potrafił programować w językach różnego stylu/składni (np. nie tylko w tych językach z "wąsami")
- potrafił programować w językach różnych paradygmatów programowania.

Nie mogę z czystym sumieniem stwierdzić, że spełniam pierwsze kryterium.. a co dopiero miałbym się rozwodzić na temat drugiego...

Jednak jak wspomniałem na początku tego wpisu... ten semestr będzie miał w sobie duuużo programowania. To właśnie w tym semestrze przyszło mi się zapisać na kurs "Języki i paradygmaty programowania". Prawda jest taka, że tego kursu nie było (sic!) w naszym 5-letnim programie studiów magisterskich. Na szczęście jednak, na PWR można brać przedmioty z innych kierónków/lat/wydziałów :)

W ramach tego kursu będziemy pisać w takich językach jak: Python, Erlang, OCaml, Haskell. W technologiach webowych z kolei realizuję inny, wybrany przez nas projekt w ramach innego kursu w tym semestrze. Kurs "Sztuczna inteligencja" to z kolei kolejna szansa by łaskawym okiem spojrzeć na Prologa. No i oczywiście pozostaje jeszcze praca, która ciągle zapewne będzie rozpieszczać mnie za pomocą C, C++, Javy i JavyScript :)

Zastanawia mnie jeszcze tylko jedno... czy mi się w głowie to wszystko nie zacznie mieszać, jeżeli będę się tego wszystkiego uczył na raz w takim tempie? Czy ktoś z was próbował uczyć się równolegle niejako od podstaw dwóch (lub więcej) różnych od siebie, kompletnie nie znanych języków programowania? Będę wdzięczny za jakiś feedback z Waszej strony... ciekaw jestem, jak kształtowała się wasza wszechstronność.
Related Posts Plugin for WordPress, Blogger...

1 komentarz:

  1. Multikoderze, zmien sobie format daty na polski. Teraz masz US w naglowku postow.

    OdpowiedzUsuń