Moja historia (dlaczego poszedłem na doktorat)
Zacznijmy od tego, że w mojej opinii w 99% przypadków, pójście na doktorat to strata czasu. Po pierwsze, kursy jakie są tam proponowane, w bardzo małym stopniu rozszerzają to co powinniśmy już wiedzieć mając tytuł magistra. Po drugie, stypendium (które jest wypłacane każdemu) nie wystarcza nawet na wynajem kawalerki (przynajmniej w 2019-2024 we Wrocławiu tak było). Zmusza to doktorantów do podejmowania pracy na pełnym etacie w sektorze prywatnym lub do siedzenia na garnuszku rodziców kolejne 4 lata (a może i więcej lat). Po trzecie, sam tytuł doktora oprócz tego, że możemy znaleźć zatrudnienie za minimalną krajową na uczelniach, nic nie daje.
Dobra, skoro już wiecie, że według mnie to jest bezsensu, to powiem Wam, dlaczego ja się na to zdecydowałem. Zacznijmy tę historię od początku. Gdy byłem w liceum, Wydział Podstawowych Problemów Techniki na Politechnice Wrocławskiej organizował akcje zachęcania studentów. Jako, że byłem w klasie mat-inf, to wybrano naszą klasę do tej akcji. Przez cały semestr, raz w tygodniu opowiadano nam o informatyce i agitowano o wyższości WPPT nad innymi wydziałami wykładającymi informatykę. Miałem wtedy niesamowite szczęście wylosować profesora Jacka Cichonia. Profesor w niesamowicie ciekawy sposób opowiadał nam o algorytmice, pokazując jakieś proste problemy i ich różne rozwiązania. Jedne były tak wolne, że nigdy byśmy się nie doczekali wyniku, inne były tak szybkie, że wynik pojawiał się na ekranie laptopa w mniej niż sekundę. Już po pierwszych zajęciach wiedziałem, że chce studiować informatykę algorytmiczną na WPPT. Wiedziałem, że łatwo nie będzie. W Liceum nauczyli mnie programować w języku C (same programowanie wykładano bardzo słabo) oraz implementować kilka znanych algorytmów. Wiedziałem, że to za mało. Na własną rękę uczyłem się programowania w C i w C++ oraz zgłębiałem algorytmy i struktury danych czytając “Wprowadzenie do algorytmów”.
Studia przebiegały bardzo dobrze, było czasami ciężko, ale spokojnie dawało się zdać. Miałem dużą frajdę z poznawania kolejnych rzeczy. Co ciekawe okazało się, że umiejętności z programowania, które sam przyswoiłem, były wystarczające aby bez problemu robić wszystkie zadania z C/C++/JAVA na pierwszych dwóch semestrach. Z tego względu, że kursy dotyczące programowania skupiały się na rzeczach, które już umiałem, to utrudniałem sobie listy zadań implementując lepsze algorytmy i kolejne optymalizacje, tak aby program działał szybciej niż prowadzący przewidywał w zadaniu. Mój wykładowca podstaw programowania obiektowego – doktor Wojciech Macyna widząc moją zajawkę do bawienia się algorytmami i programowaniem, zaprosił mnie do badań nad indeksowaniem baz danych na dyskach SSD. Przez cały semestr razem głowiliśmy się, jak stworzyć dobrą strukturę danych, która wykorzysta potencjał drzemiący w SSDkach. W końcu nam się udało, badania zakończyliśmy z powodzeniem, projektując strukturę FA-Tree (wraz z implementacją w C, którą przepisałem na doktoracie do C++). Prowadzenie badań naukowych tak mi się spodobało, że już wtedy wiedziałem, że chcę ukończyć studia trzeciego stopnia.
I to tyle, to cała moja historia doktoratu. Czy zdecydowałbym się kolejny raz na wybranie tej ścieżki? Ciężko powiedzieć, czas pokaże, czy PhD się do czegoś przyda.
Moje zainteresowania naukowe
Flash-aware Clustered Index for Mobile Databases
Partially Indexing on Flash Memory
Flash-Aware Storage of the Column Oriented Databases
Bulk Loading of the Secondary Index in LSM-Based Stores for Flash Memory
Multi-core Adaptive Merging of the Secondary Index for LSM-Based Stores
Adaptive merging on phase change memory
Moje zajęcia
Jako student szkoły doktorskiej, później asystent dydaktyczno-badawczy prowadziłem laboratoria z następujących przedmiotów:
- Programowanie obiektowe (C++/JAVA)
- Architektura komputerów (C)
- Programowanie współbieżne (C/ADA/GO)
Jeśli kiedyś studiowaliście informatykę lub pochodne kierunki na PWR, to wiecie, że laboratoria zazwyczaj sprowadzają się do oddawania wcześniej zrobionych w domu list zadań. Uważam to za całkowicie zmarnowany potencjał tych zajęć, w końcu laboratoria w założeniu powinny rozszerzać wykład o kolejną porcję wiedzy, tym razem, PRAKTYCZNĄ. Z tego powodu, u mnie na laboratoriach zawsze prócz oddawania list, próbowaliśmy się czegoś nowego nauczyć, często były to elementy programowania potrzebne w procesie zdobywania pracy, wymagane przez korporacje na rozmowach rekrutacyjnych.
Nie będę tutaj rozpisywał czego dokładnie uczyłem w ramach laboratoriów, jeśli chcesz się czegoś nauczyć, wejdź na mojego bloga, gdzie sukcesywnie dodaję nowe kursy (kursy są odblokowywane po stworzeniu całego kursu).
Poniżej zamieszczam przekopiowane z polwro opinie o moich zajęciach: