Koniec… i początek

Kolejny niechlubny rekord został pobity – blog nie był aktualizowany przez blisko rok. Wydarzyło się w tym czasie (licząc jednostkowo) całkiem niedużo, mianowicie 25 czerwca 2013 roku udało mi się ukończyć ukochane przeze mnie studia. Jest to dla mnie jednak całkiem wyjątkowe zdarzenie. Od lipca czuję się wolnym człowiekiem – moich myśli nie zaprzątają bzdury związane z pracą dyplomową czy rejestracją na nowy semestr. W końcu tak naprawdę zacząłem zajmować się rzeczami, które lubię i o których marzyłem i robię to w sposób całkowicie nieskrępowany. Znajomi? Zawsze chętnie! Spotkania branżowe? Staram się nie odpuszczać (o ile PKP mnie nie pokonuje :)). Piłka nożna? Oglądam bez wyrzutów sumienia! Gra na gitarze? W końcu próbuję coś brzdąkać. Programowanie naprawdę użytecznych i fanych rzeczy? O taaaak.

Wnikliwy czytelnik zapewne pomyśli: „opier…asz się brachu, a co z pracą?”. Ano pracuję i to nad bardzo ciekawym doświadczeniem informatycznym, o którym szerzej już w następnej notce, która powstanie w ciągu kilku dni.

Na sam koniec pozostaje kwestia bloga. Bardzo chcę blogować i mam po prostu nadzieję, że teraz to się uda. Mam bardzo dużo zaległych postów, które nazwałbym retrospekcyjnymi, bo dotyczą wydarzeń z przeszłości. Mogą się okazać one mało interesujące dla większości czytelników, ale bardzo ich potrzebuję, żeby mieć gdzieś zanotowane przemyślenia na temat spraw ważnych dla mnie. Po kilku (w porywach do 8!) notkach osobistych wrócę do czystej technologii. Oby się udało!

Na zakończenie dziękuję wszystkim, którzy sprzątając po Google Readerze nie usunęli mojego bloga ze swojego czytnika :).

Przedostatni semestr studiów

Post jest częścią serii retrospekcja (patrz tutaj), która służy mi do uwiecznienia wydarzeń, które miały miejsce w przeszłości. Notki te mogą okazać się mało interesujące dla Czytelnika, ale obiecuję, że po zakończeniu serii nastąpią soczyste, techniczne wywody.

Nihil novi sub sole

Studia magisterskie nie zaczęły się zbyt dobrze. Semestr drugi i zarazem przedostatni tej całej męczarni również nie rozpieszczał. Założenie na ten czas było jednak proste – zrobić wszystkie przedmioty tak, aby na ostatni semestr została już tylko praca magisterska.

Chcąc nie chcąc program studiów ponownie zmusił mnie do wzięcia przedmiotów dotyczących uczenia maszynowego… i tym razem całkiem się to opłacało. Rozpoznawanie obrazów i metody odkrywania wiedzy to dwa przedmioty o niezbyt zrozumiałych nazwach, które doskonale uporządkowały wiedzę, którą z trudem zdobywałem na semestrze pierwszym. Oczywiście nie obyło się bez bombardowania mojej biednej głowy matematycznymi formułami, dowodami i wywodami, ale tak po prawdzie to da się to wszystko zrozumieć „na chłopski” rozum – intuicyjnie znaczy się. Podsumowując zyski i straty te dwa przedmioty zaliczyłbym na plus – może niezbyt wyraźny i pewny, ale jednak plus.

Dalej było niestety sporo gorzej. Z przedmiotem o pięknej nazwie programowanie równoległe i rozproszone wiązałem spore nadzieje, ponieważ tematy współbieżności, równoległości i wszelkiego rozproszenia są mi bliskie i bardzo je lubię. Niestety srogo się zawiodłem, ponieważ przedmiot ten tylko w nazwie jest fajny. Dalej są już prowadzący, którzy ograniczają się do czytania slajdów na temat przestarzałych technologii, ewentualnie takich, których nikt nigdy nie widział. Nastawiałem się na „grube rozkminy” na tematy typu CSP vs. model aktorów, a otrzymałem siekę na temat ewolucji procesorów, europejskich klastrów i różnic w wątkach pthreads i javowych. WTF? Prowadzący zawiedli. Na całej linii, ech.

Pomimo kiepskiej opinii zmusiłem się do wzięcia przedmiotu o (znów) ładnej nazwie – analiza i projektowanie systemów informatycznych. Bo dużo ECTS-ów za to dawali. To był błąd, zdecydowanie największy błąd podczas toku studiowania, wyłączając oczywiście wybór wydziału :P. Wykład tego przedmiotu ma dwa oblicza – ciekawe, dotyczące agile i scruma (1/3 całości) oraz fatalnie beznadziejne – dotyczące metod „łoterfalowych” – przypadki użycia i rysowanie diagramów UML na potęgę (a propos tego ścierwa to polecam spojrzeć tu). To jeszcze byłoby do łyknięcia, gdyby nie projekt. Projekt polega na stworzeniu małego produktu zwinnymi metodykami, gdzie każdy w teamie po kolei realizuje inną rolę z zespołu scrumowego^C^C^C^C To oczywiście tylko moja fantazja, tak naprawdę projekt polega na napisaniu dokumentacji do pewnego produktu, najlepiej takiej, która ma 100+ stron, w zasadzie im więcej tym lepiej. I diagramy, dużo diagramów. Inteligentny sposób spędzania czasu, nie ma co, naprawdę. Co ciekawe, to jeszcze nie byłoby najgorsze, gdyby nie to, że do projektu trafiła mi się najbardziej stępiona dzida wydziału, którego imienia nie pomnę. Chamstwo, niekompetencja, niesprawiedliwość. Tak opisałbym metody prowadzenia zajęć przez tego człowieka. Ech, starczy tego używania sobie – po prostu było źle, naprawdę bardzo źle.

Praca magisterska

Semestr drugi poświęciłem na wymyślaniu i badaniu potencjalnego tematu pracy magisterskiej. To przysporzyło mi sporo stresów ponieważ wymyśliłem sobie (no dobra, niezupełnie sam), że chciałbym napisać co nieco o połączeniu współbieżności i bezpieczeństwa, co w praktyce okazało się cholernie trudne. Przez cały semestr czytałem „pejpersy” na temat błędów, niezawodności, bezpieczeństwa i samej współbieżności. Samej pracy nie powstał natomiast ani jeden akapit. Co z tego wyszło? O tym dokładniej niebawem.

Studia magisterskie…i co z tym blogiem?

Tak długiej przerwie w pisaniu na blogu chyba jeszcze nie miałem – nie udało się nic napisać w semestrze ani w czasie wakacji, nawet tradycyjny wpis o szkole się wymknął… Cóż, winnego daleko szukać nie będę, bo jestem nim ja. Taki stan rzeczy wcale mi się nie podoba, a wprost przeciwnie – powoduje wyrzuty sumienia i poczucie zmarnowanego potencjału… Czemu więc?

Brodzenie po kolana w g…

Uczciwie zastanowiłem się nad tą kwestią i odpowiedź jest bardzo prozaiczna. Żeby pisać na blogu trzeba to lubić, trzeba mieć o czym pisać, trzeba czuć entuzjazm do tematów, które się porusza… i to tyle. Bywały chwile, w których nie miałem z tym problemu jak choćby spora liczba wpisów o dotnecie czy też seria o osdevie. Oba tematy w tamtych czasach były mi bliskie, elektryzowały mnie na swój sposób – chętnie dzieliłem się nabytą wiedzą i nie miałem z tym problemów. Wspomniane przypadki łącz też jeszcze jedna rzecz – szczyt ich rozwoju przypadał na okres kiedy nie musiałem chodzić do szkoły.

Miniony, pierwszy semestr studiów magisterskich bardzo dotkliwie przypomniał mi jak studia przyczyniają się do mojego wypalenia. Ciężko odnaleźć w sobie entuzjazm i chęć do zajmowania się czymkolwiek jeśli kilka godzin spędza się na uczelni walcząc z jakimś „inżynierskim oprogramowaniem wysokiej klasy”, którego główną funkcjonalnością jest wyświetlania okienka z napisem Exception in thread „main” java.lang.NullPointerException, prawie dwie godziny na podróży do i z uczelni, wieczór na robieniu projektów, a noc na przygotowaniach do kolokwium. Studia magisterskie to nic więcej, jak tylko nieudana powtórka ze studiów inżynierskich – nieudana, bo jeszcze bardziej bez pomysłu. Przez ostatnie dwa miesiące widziałem wszystkie wschody słońca i wcale nie dlatego, że jestem taki romantyczny… Po prostu zajmowałem się bezmyślnym przetwarzaniem programów „inżynierskich”, formułek pseudomatematycznych, algorytmów których zastosowania jeszcze nikt nie odkrył i całej maści innego gówna. Osoba wymyślająca plan studiów powinna za karę resztę swojego życia spędzić na programowaniu w Javie, publicznie na rynku Starego Miasta… (resztę tej perwersyjnej fantazji bez opisu). Czy naprawdę ostatnim nierozwiązanym problemem informatyki jest to jak sklasyfikować wszystko za pomocą jakże porywających klasyfikatorów? Czy umiejętność odtworzenia algorytmu przekształcania automatu niedeterministycznego do deterministycznego naprawdę się może do czegoś przydać? Czy problemy grafowe ograniczają się do DFS-a i BFS-a? Retorycznych pytań tego typu mógłbym zadać jeszcze wiele… ale po co się denerwować? Wrzucanie wszystkich przedmiotów do jednego worka podpisanego „tragicznie złe” byłoby oczywiście niesprawiedliwe, bo w tym bagnie znalazłoby się po jednym przedmiocie z grupy „znośny”, „przeciętny” i „całkiem dobry”, ale niestety giną one w grubej warstwie gnoju.

Co dalej?

Są ludzie, nawet całkiem dużo, którzy lepiej radzą sobie ze studiami. Lepiej, to znaczy mniej się nimi interesują. Nie denerwuje ich niski poziom wykładów – po prostu na nie nie przychodzą. Nie starają się znaleźć wartości dodanej – uczą się w ostatniej chwili z gotowców. W końcu – nie zależy im na wynikach i mają dzięki temu lżejsze i pewnie ciekawsze życie. Mi to się niestety nie udaje. Mam głęboko zakorzenioną sumienność i jeśli już za coś się zabrałem (a tak właśnie zrobiłem) chcę to skończyć możliwie jak najlepiej.

Dobra wieść jest taka, że to jeszcze tylko bieżący i następny semestr i już koniec. Definitywnie. Na całe szczęście semestry te są maksymalnie odciążone, więc będę miał nieco więcej czasu dla siebie i oczywiście dla pracy magisterskiej. Kolejna praca dyplomowa to zdecydowanie najjaśniejszy punkt na tym zachmurzonym niebie studiów – to po prostu dobra zabawa i wielka satysfakcja z odkrywania czegoś nowego. Mam nadzieję, że uda mi się odnieść sukces co najmniej dorównujący pracy inżynierskiej. Co po studiach? Mam nadzieję, że uda mi się pokierować swoją karierą tak jak ja tego chce i nie dam się wkręcić w robienie czegoś czego nie chce tak jak ma to miejsce na studiach. Wtedy tematy na bloga na pewno pojawią się same, a wraz z nimi chęci :)

Ok, koniec już narzekania. Następny post mam nadzieję przed lutym!

inż. Łukasz

Tak oto upłynął mi semestr siódmy, całkowicie inny od pozostałych. Można powiedzieć, że nawet przyjemny i interesujący. W końcu udało mi się otrzymać 3 nowe litery i kropkę przed nazwiskiem, a to dla mnie całkiem miłe osiągnięcie :).

Semestr

Na ten semestr został mi już tylko jeden przedmiot – algorytmy heurystyczne. Niewiele mogę jednak o nim napisać, gdyż (niestety?) nie bardzo się do niego przykładałem z powodu zaangażowania w pracę inżynierską. Ot przedstawienie, podsumowanie wiedzy o metoda metaheurystycznych i trochę obrzydliwej matematyki. Na plus można zaliczyć fakt, że udało mi się przy okazji poznać nowy język – R, potrzebny do realizacji projektu.

Na oddzielny akapit zasługuje seminarium dyplomowe, na którym każdy uczestnik miał okazję opowiedzieć o swojej pracy dyplomowej. Inicjatywa całkiem fajna, bo rozwijającą. Ogromna różnorodność tematów pozwala doszkolić się z innych, niż własna, dziedzin. Przyczepić można się tylko do dwóch rzeczy. Przede wszystkim każdy uczestnik miał tylko 20 minut na prezentację, co jest śmiesznie małą ilością czasu. Ciężko w 1/3 godziny przedstawić efekt wielu dni pracy, ale widocznie „tak musi być”. Druga sprawa to jakość przygotowanego przez uczestników materiału – często co najmniej „słaba”. Niemniej jednak, takich inicjatyw powinno być więcej. Niech nie tylko wykładowcy mają prawo głosu :).

Praca inżynierska

Zdecydowaną większość semestru spędziłem na pracy nad dyplomem. Poważny risercz, dużo pisania – zajmowało to kupę czasu i co ważniejsze chęci i siły. Z tego też powodu zaniedbałem całkowicie bloga. Po spędzeniu kilku godzin dziennie na pisaniu, perspektywa tworzenia (dobrowolnie) notki na bloga powodowała u mnie niemal odruch wymiotny. W każdym razie, efekt mojej pracy jest (przynajmniej dla mnie) więcej niż zadowalający. Kompletny, funkcjonalny moduł jądra oraz około 90 całkiem treściwych stron pt. „Nowoczesne mechanizmy bezpieczeństwa w systemie Linux” są zwieńczeniem niemal roku pracy. Co jednak najważniejsze praca została oceniona na bardzo dobry z wyróżnieniem czyli nie tylko mi się podobała :).

Studia, studia… i po studiach

Udana obrona – studia ukończone na bardzo dobry z wyróżnieniem zakończyły inżynierski etap mojej edukacji. Nie mam ochoty ich podsumowywać, gdyż myślę, że byłoby to nierzetelne. Prawdziwy obraz moich studiów tworzą komentarze do poszczególnych semestrów, do których linki można znaleźć poniżej:

Odpowiem jednak przy okazji na proste pytanie: czy żałuję? Nie, nie żałuję. Tych 7 semestrów poszerzyło moje horyzonty w wielu kwestiach i nauczyło wytrwałości. Mogło być jednak znacznie lepiej. Szkoda zmarnowanego potencjału.
Co teraz? Odpowiedź jest prosta – czas na studia magisterskie – znowu na kochanym Wydziale :). Myślałem oczywiście o zmianie miejsca, ale najnormalniej w świecie – nie chce mi się.
PS. Blog dorobił się dwóch nowych działów Projekty i Publikacje. Zobaczcie koniecznie!

Jak (wg mnie) uczyć się na studiach?

Sześć semestrów studiowania już za mną – to znaczy, że jestem już za połową. Dużo kolokwiów i egzaminów udało mi się już zaliczyć, zarywając przy tym jeszcze więcej nocy. To wszystko znaczy, że pewne doświadczenie w studiowaniu już mam i wydaje mi się, że już niewiele rzeczy jest w stanie mnie na studiach zaskoczyć ;). Wiem, że zagląda tu sporo studenckiej braci, dlatego postanowiłem dać kilka porad młodszym rangą od siebie :).

Semestry początkowe, czyli kurowa wszystkich nauk

Na chyba każdej uczelni technicznej pierwsze semestry składają się głównie z matematyki. Algebra, analiza, logika, statystyka – to standard. Semestry te są też podobno najtrudniejsze i na nich odpada najwięcej osób. Na mojej kochanej Uczelni z matematyki dawano nieobowiązkowe zestawy zadań, które później robione były na ćwiczeniach. Jak się okazało, najskuteczniejszym podejściem do sprawy było po prostu robienie ich samodzielnie wcześniej. Owszem, zabierało to dużo czasu: dzień przed ćwiczeniami widywałem wschody słońca, przy piwku i zeszycie z całeczkami; owszem było to nudne, a czasem wręcz niesamowicie irytowało; ale owszem – dawało to wybitne wyniki: dzień przed kolokwium wystarczyło przejrzeć wykonaną wcześniej pracę, a samo kolokwium wydawało się dziecinnie proste. Do matematyki podejście jest więc proste: ćwiczyć, ćwiczyć i jeszcze raz klepać schematy – a zaliczenie przyjdzie bez problemu.

Warto jeszcze wspomnieć dwa słowa o wykładach i ćwiczeniach. Na wykładach bardzo często dyktowana jest książka (z dokładnością do takich samych przykładów). Można więc pokusić się o absencje, jednak wtedy trzeba taką książkę załatwić, albo wziąć od kogoś notatki. Ja mimo wszystko uczęszczałem na wykłady, głównie dlatego że najmilej czyta mi się swoje własne pismo i żartobliwe rysunki :P. Co do ćwiczeń, to warto chodzić – głównie po to, żeby zweryfikować swoje rozwiązania i załapać punkty za aktywność.

Semestry dalsze, czyli pozostałe dobrodziejstwa inwentarza

Pozostałe przedmioty na studiach (pamiętajmy, że ciągle mówimy o informatyce) można podzielić na takie, które wymagają wiedzy (np. architektura komputerów, systemy operacyjne, grafika komputerowa) i takie które wymagają klepania schematów (np. teoria obwodów, teoria informacji, automatyka, optymalizacja). Co do drugiej (gorszej, nota bene) kategorii strategia jest taka sama jak dla matematyki – trzeba się po prostu tych schematów nauczyć, a później na kolokwium/egzaminie wyklepać. Tutaj niebywale przydaje się bank kolokwiów i egzaminów z ostatnich lat do poćwiczenia. Poza tym, nie trzeba chyba wspominać, że wiele zadań się po prostu powtarza :). Nauka schematów jest żmudna, ale nie jest trudna, dlatego też chodzenie na wykłady z przedmiotów „schematycznych” jest raczej zbędne – chyba że ktoś naprawdę lubi patrzeć jak się oblicza kolejną całkę na tablicy.

Dosyć już jednak narzekania, przejdźmy do przedmiotów wymagających wiedzy, czyli bardziej złożonej materii. W trakcie 6 semestrów nauki udało mi się wypróbować dwie strategie – opiszę więc każdą z nich.

Noc przed, zasada indukcji, od zera do bohatera

Strategia ta jest bardzo prosta. Zakłada ona, że da się wszystkiego nauczyć na egzamin/kolokwium w nocy przed takowym. Zwykle nie ma wtedy mowy o spaniu, trzeba mieć dużo samozaparcia i wytrwale siedzieć i czytać. Strategia ta działa i jest praktykowana przez wiele osób – z sukcesami. Ma ona jeden szkopuł – niestety trzeba mieć pewną, podstawową wiedzę wyniesioną z wykładów (albo z książek, tudzież doświadczenia). Dla przykładu uczenie się algorytmów „od zera” w 8 godzin jest zbyt męczące psychicznie = niemożliwe. Z drugiej strony, mi z podstawami sztucznej inteligencji się udało – z zerową wiedzą wyniesioną z wykładu ;). Skuteczność tej metody zależy więc od materii i osobistych predyspozycji.

Zastanówmy się teraz nad czymś takim: „a co jeśli jednego dnia mam n kolokwiów?” (n > 1). Słynna zasada indukcji studenta mówi, że jeśli student jest w stanie nauczyć się do n kolokwiów w nocy przed, to jest też w stanie nauczyć się do n+1 kolokwiów. Dlatego jeśli jesteś w stanie przygotować się do kolosa na noc przed, to z dwoma, trzema… też nie będziesz miał problemów :). Tutaj jednak warto wiedzieć o zasadzie Pareto. Noc może nie starczyć, aby nauczyć się na 100%, jednak pewien (poniekąd 20%) wkład w każdy z n podproblemów da nam wysoki (poniekad 80%) wynik.

Co natomiast robić, jeśli na wykładach nie pojawialiśmy się w ogóle, a kolokwium/egzamin zbliża się nieubłaganie? Cóż, innego wyjścia nie ma, jak tylko kuć wytrwale nie przez jedną, a np. przez trzy kolejne noce. „Od zera do bohatera” w 3 dni wydaje się być osiągalne, niezależnie od poziomu skomplikowania materii. Może to być jednak wyjątkowo wyczerpujące i niemiłe. Spróbowałem raz – udało się, ale rzeczywiście było niemiło.

Systematyczność

Systematyczność – tego słowa nienawidzą wszyscy uczniowe. Nauczyciele nieustannie, od lat powtarzają – ucz się systematycznie, a wyniki przyjdą same. Po 5 semestrach wykorzystywania zasady „noc przed”, na 6 semestrze postanowiłem spróbować (eksperymentalnie) uczyć się systematycznie każdego przedmiotu. Nie ze wszystkimi się udało, bo niektóre były zbyt ohydne, ale jednak z większością tak :). Efekty? Znakomite. Wyniki oscylujące w okolicy 100% były normą. Koszt? Ogromny. Wymagało to wytrwałego chodzenia na wykłady i codziennej powtórki (około dwugodzinnej) tego, co udało mi się tam nauczyć. Dostrzegłem też pewien pozytywny efekt uboczny: w końcu czułem, że do przedmiotów, które lubie przykładam się w stopniu zadawalającym.

Aurea mediocritas

„Jak więc żyć, drogi Łukaszu?” słyszę pytania z tłumu. Już stoicy znali na nie odpowiedź: złoty środek. Dla przedmiotów ze schematami należy uczyć się schematów – najlepiej tak, aby mechanicznie je odtwarzać, gdy ktoś o nie pyta. Dla nudnych, nieciekawych przedmiotów wymagających wiedzy warto stosować taktykę „olewczą”, czyli uczyć się na noc przed. Do przedmiotów interesujących i lubianych najlepiej uczyć się systematycznie.

W ten sposób pielęgnujemy swoje pasje i zainteresowania i zaliczamy kolejne przedmioty, utrzymując przy tym stan frustracji na rozsądnym poziomie.

Disclaimer

Przedstawione powyżej metody działały dla mnie znakomicie. Nie tylko pozwalały gładko zaliczać kolejne przedmioty, ale również dawały dobre wyniki (jeśli mierzyć je wysokością oceny). Warto jednak pamiętać, że nie każdy ma taki sam styl nauki. Niektórzy nie są wstanie przesiedzieć nocy nad książką, innym wystarczy tylko chwilowe spojrzenie na coś i już to potrafią. Do tego, moje doświadczenia opieram wyłącznie na moich studiach, które mogą być specyficzne, ze względu na kierunek czy wydział/uczelnię. Należy więc wypracować indywidualny tryb pracy, a powyższe metody potraktować jako pewną możliwość. Sukcesu więc nie gwarantuję, jednak z całego serca życzę :).