Chciałabym poświęcić ten post moim subiektywnym wywodom, dlaczego uważam, że nie warto podejmować studiów podyplomowych „Analiza Danych – Data Science” na AGH. Mimo iż część przedmiotów została starannie poprowadzona przez co wyniosłam ze studiów nową wiedzę, to jednak uważam, że nie było to warte 6 000 zł i poświęcenia wielu weekendów w przeciągu roku.
Jeżeli interesuje Cię moja opinia na temat studiów podyplomowych to zapraszam do tego posta.
Słowem wstępu
Studiowałam podyplomowo kierunek „Analiza Danych – Data Science” na AGH w roku akademickim 2019/2020, czyli w roku, kiedy do wiosny zajęcia odbywały się stacjonarnie, a później zaczęła się pandemia i przenieśliśmy się do zajęć online. Obviously, będę się odnosiła do zajęć z roku na który uczęszczałam, więc jeżeli coś się zmieniło, to sorry, ale na to już nie mam wpływu. W dodatku, jako że pamięć ludzka zawodzi oraz jest procesem wybitnie twórczym, być może nie będę zbyt dokładna w niektórych aspektach, gdzieś się pomylę lub coś przekręcę – z góry za to przepraszam. Moim celem jest przedstawienie ogólnego zarysu studiów oraz jednoznaczne odpowiedzenie na pytanie czy warto. Nie mam zamiaru być ultra dokładna czy też wyciągać każdą pojedynczą ułomność. Nie mam też absolutnie zamiaru nikogo obrażać czy też winić, chciałabym po prostu wyrazić moją subiektywną opinię na ten temat.
Patrząc na stronę studiów, w październiku 2021 studia wyglądają podobnie jak 2 lata temu, czyli ani kwota (6100 zł), ani przedmioty za bardzo się nie zmieniły. Nie mam żadnych informacji na temat kolejnych edycji, ale na moim roku miejsca schodziły jak ciepłe bułeczki, a rekrutacja była zamknięta już po kilku dniach od jej ogłoszenia. Sama byłam tą osobą co czekała na jej otwarcie, ponieważ marzyłam o tych studiach i wiązałam z nimi duże nadzieje. Co zatem poszło nie tak? Zacznijmy od początku…
Sylabus
… czyli od sylabusa dostępnego na stronie kursu. Zarówno lista przedmiotów, jak i sylwetka absolwenta wyglądają dość imponująco:
Lista przedmiotów: 1. Wprowadzenie do analizy danych i data science 2. Statystyka 3. Bazy danych 4. Programowanie w języku Python 5. Ekstrakcja danych ze źródeł internetowych 6. Hurtownie danych 7. Analiza dużych zbiorów danych w środowisku Spark 8. Uczenie maszynowe 9. Eksploracja danych 10. Analiza danych tekstowych 11. Sieci społeczne 12. Analiza danych przestrzennych 13. Wizualizacja dużych zbiorów danych 14. Prawne aspekty analizy danych 15. Seminarium - Projekty dyplomowe 16. Projekt dyplomowy Absolwent będzie posiadał wiedzę i umiejętności z zakresu: Statystyki (przygotowanie danych, stosowanie metod analizy i wnioskowania statystycznego, opracowanie wyników); Baz Danych oraz metody dostępu do danych zgromadzonych w różnorodnych bazach danych (relacyjnych, NoSQL), a także otwartych źródłach internetowych. Nabędzie umiejętność programowania w językach umożliwiające pobieranie danych, ich przetwarzanie oraz analizę takie jak: R, SQL, Python. Będzie potrafił stosować różnorodne zaawansowane metody i technik analizy danych takie jak: uczenie maszynowe, sieci neuronowe, ekspoloracja danych, przetwarzanie dużych zbiorów danych i big data; oraz analizować dane różnego typu: strukturalne, tekstowe – zapisane w języku naturalnym, grafowe – sieci społeczne, czy też dane przestrzenne. W szczególności absolwent studiów „Analiza danych – Data Science” będzie potrafił: • pobierać i łączyć dane z różnych źródeł (zarówno strukturalnych, jak i nieustrukturyzowanych): baz danych (relacyjnych i baz typu NoSQL), hurtowni danych, arkuszy kalkulacyjnych, źródeł internetowych, dokumentów tekstowych itp. • przygotowywać dane i oceniać jakość danych • dobierać odpowiednie metody, techniki i narzędzia analizy danych oraz przeprowadzić analizę danych • graficznie przedstawić zarówno dane jak i wyniki analiz, a także dokonać interpretacji i oceny tych wyników Ważnym uzupełnieniem tych zagadnień będzie wiedza dotycząca prawnych aspektów gromadzenia, przetwarzania i analizy danych.
No no, powiem szczerze – osoba z taką wiedzą to porządny Data Scientist warty na rynku krocie. Czy wystarczy kilkanaście weekendów w przeciągu roku, żeby dowiedzieć się tego wszystkiego i zarabiać miliony monet? No właśnie. Nie wystarczy.
Ta lista to po prostu spis zajęć, które w mniejszym lub większym stopniu lizną przedstawione tematy. Musimy jednak zdać sobie sprawę, że większość z nich to naprawdę obszerne zagadnienia, które same w sobie nadawałyby się na studia podyplomowe. Przykładem są bazy danych, które są na AGH osobną podyplomówką, ale równie dobrze można by stworzyć odrębne studia z samego Uczenia Maszynowego, Big Data lub Sieci Neuronowych.
Zatem zaczynamy naszą przygodę ze studiami z ciężkim do realizacji planem. Zobaczmy co dalej.
Wykładowcy
Niestety albo stety, to, czego się nauczymy zależy w 90% od naszych nauczycieli. I tutaj pojawia się główny problem (polskiego szkolnictwa wyższego) – większość wykładowców to osoby ściśle związane ze światem akademickim, a nie osoby z biznesu pracujące na stanowiskach związanych z analizą danych czy data science. Nie są to osoby mające na co dzień styczność z prawdziwymi problemami biznesowymi. Nie muszę chyba tłumaczyć komukolwiek kto miał szansę i studiować i pracować, jak bardzo teoria mija się z praktyką, i jak bardzo polskie uczelnie są odrealnione od problemów spotykanych poza nimi.
W przypadku studiów podyplomowych dochodzą dodatkowe aspekty – czasu na przekazanie wiedzy jest mało (każdy przedmiot trwa zaledwie kilka godzin), a studenci zazwyczaj są zmęczeni po całym tygodniu pracy. Należałoby zatem tak zorganizować naukę, aby w krótkiej i skutecznej formie przekazać najważniejsze informacje na dany temat. Coś co się przyda w pracy. Coś co z nami zostanie po studiach. Coś co nas wyróżni od nie-absolwentów. Coś co się zawsze używa. Coś co każdy powinien wiedzieć.
Nie mogę narzekać na wszystkich. Muszę podkreślić, że niektórzy wykładowcy byli znakomitymi dydaktykami – byli przygotowani do zajęć, mieli przydatne, praktyczne zadania, i, przede wszystkim, chciało im się uczyć. Zajęcia, które dobrze wspominam to m.in. zajęcia z SQL, wstęp do Pythona, Ekstrakcja danych ze źródeł internetowych, Analiza danych tekstowych, Sieci neuronowe.
Niestety, w innych przypadkach zajęcia były prowadzone TAK ŹLE, że aż szkoda słów. Poniżej wybrałam kilka takich konkretnych kwiatuszków:
Python
Mieliśmy kilka zajęć poświęconych wyłącznie języku programowania Python – część z nich wprowadzała do samego języka (to akurat było spoko), a druga część była wyspecjalizowana w poszczególnych bibliotekach.
Teraz proszę o krótką przerwę na zastanowienie – niech osoby mające jakiekolwiek pojęcie o analizie danych w Pythonie zastanowią się jaką bibliotekę przedstawiłyby osobie początkującej.
Hmmm… ja bym przedstawiła… no nie wiem… może Pandas?
Na AGH jednak Pandasa nie przedstawili.
Serio.
Powtórzę, bo pewnie nie wierzysz w to co czytasz. Na studiach podyplomowych o nazwie „Analiza Danych – Data Science” na Akademii Górniczo-Hutniczej im. Stanisława Staszica w Krakowie odbywało się kilka zajęć poświęconych bibliotekom do przetwarzania danych w Pythonie, ale żadne z nich nie były dedykowane bibliotece Pandas. Za to znalazł się czas na lekcję całkowicie przeznaczoną jakiejś bibliotece do obsługi plików Excela. Serio.
Słowem wyjaśnienia: Pandas jest podstawowym narzędziem do obsługi danych w Pythonie. Wpiszcie sobie „data analysis python library” w googlach dla potwierdzenia.
Statystyka
Mieliśmy aż 2 ćwiczenia ze statystyki (6h), więc aby zużytkować je w jak w najlepszy sposób… uczyliśmy się nowego języka programowania, R! Co z tego, że czasu było mało i moglibyśmy go spożytkować na naukę statystyki, na przykład przerobić najczęstsze rzeczy spotykane w biznesie jak rozkłady, statystyka opisowa, testy A/B. Lepiej pouczyć się nowego języka, przecież to takie oczywiste.
Oprogramowanie
Oprócz statystyki w R i Pythona, na studiach pojawiało się mnóstwo innych programów do analizy. Używaliśmy SPSS Modeler (Clementine), Statistica, Weka, pluginy do Excela, i innych programów, których nazw nie pamiętam. Część z tych programów, na przykład Clementine i Statistica bazują na płatnej licencji, którą dostaliśmy na czas trwania studiów. Jako, że co zajęcia, to inny program, więc zamiast skupiać się na problemie, skupialiśmy się na obsłudze programu.
Czy jest sens uczenia się na każdych zajęciach innego programu?
Nie ma. Większość (poważnych) firm bazuje na Pythonie, który jest darmowy, prosty i elastyczny. Uczenie się innych programów na studiach, w dodatku opartych na płatnej licencji, jest marnowaniem czasu i energii.
Dlaczego nie używaliśmy tylko Pythona?
Usłyszałam argumentacje, że nie jesteśmy wystarczająco zaawansowani w Pythonie i za długo by trwało, gdybyśmy musieli sami pisać kod.
Czy prowadzący mogli przygotować zajęcia tak, aby część kodu była przygotowana?
Mogli. Ale wymagałoby to od nich pracy.
Świetnym przykładem gdzie prowadzący poświęcił trochę swojego czasu na przygotowanie dla nas kodu były zajęcia z sieci neuronowych. Mieliśmy przyszykowany dla nas zestaw notebooków, w których podążaliśmy za kodem, czasem uzupełniając jego braki. Lekcje były prowadzone ŚWIETNIE, czuć było pasję oraz ogrom włożonej pracy, przez co były to jedne z najlepszych godzin spędzonych na AGH (może pomijając juwenalia na miasteczku). Dzięki temu mogliśmy się skupić na działaniu samych sieci, a nie na tym, który guzik kliknąć w programie. W dodatku po zajęciach mieliśmy działający kod, który mogliśmy przerobić jeszcze raz w swoim tempie, użyć do własnych projektów, lub dowolnie przekształcić. Zresztą dzielenie się kodem w notebookach jest typową praktyką kursów online, bo to po prostu świetnie działa i dla nauczyciela i dla studenta.
Poziom detali
Zajęcia z sieci neuronowych były też świetne z innego powodu. Prowadzący rozłożył na czynniki pierwsze algorytm prostej sieci neuronowej i krok po kroku kodowaliśmy go w Pythonie. Takie podejście zapewniło nam porządne fundamenty, a po skończonych zajęciach czułam, że nie był to czas zmarnowany. Wiadomo, temat jest obszerny, ale spędziłam te kilka godzin efektywnie, ucząc się podstaw, które pozwalają na rozszerzenie zagadnienia we własnym zakresie.
Niestety, mało zajęć tak wyglądało, ponieważ większość z nich była albo zbyt ogólna, W OGÓLE nic nie wnosząc, albo przeciwnie, zbyt szczegółowa, przez co ogrom tematu przytłaczał też nie pozostawiając nic w głowie.
Podam jako przykład lekcje z Uczenia Maszynowego, i jakich zagadnień w nich zabrakło:
- podział danych na podzbiór treningowy i testowy
- podstawowy podział modeli na klasyfikację i regresję
- cross-validation i hyperparameter tuning
- jakie miary używać do walidacji modelu
- kiedy trzeba standaryzować dane
Widząc tę listę, pewnie się zastanawiacie co było na tych zajęciach. No właśnie, nic nie było. A może i też było, ale w nieprzyswajalnej formie (w końcu po co dydaktykowi umiejętność przekazywania wiedzy). Ja się na tych zajęciach nie nauczyłam NIC, i pamiętam tylko jakieś bezmózgie klikanie w programie Weka.
Projekt dyplomowy
Powierzchowność przedmiotów można by próbować wytłumaczyć argumentem, że poszczególne zajęcia mają tylko nakreślić zakres danej dziedziny, a zainteresowani mogą je dalej zgłębiać na przykład za pomocą projektu dyplomowego. Przejdźmy zatem do tej ostatniej części.
Projekt dyplomowy wyglądał tak, że każdy student miał sobie wybrać temat, znaleźć dane, zrobić analizę, napisać pracę i ją zaprezentować. Obojętnie co, obojętnie jak, obojętnie gdzie. Spoko, bo każdy mógł zdecydować ile czasu chce poświęcić i jak ambitnie podejść do tematu, oraz jaki obszar go interesuje.
Jedynym problemem było to, że jeżeli już mieliśmy tę ambicję i chcieliśmy dogłębnie wejść w temat, to wszystko i tak zależało od nas samych, bo wsparcie merytoryczne było bliskie zera. W moim przypadku otrzymałam jeden komentarz do pracy – „proszę ponumerować i opisach rysunki”. Nic o metodach analizy, technikach jakie wybrałam, przetwarzaniu danych, modelowaniu jakie zrobiłam.
Podczas prezentacji prac wszystkich studentów nie było stawianych żadnych pytań lub uwag merytorycznych od prowadzących (jeżeli były, to szczątkowe). Parę razy pojawiły się pytania w drugą stronę, czyli od studentów do prowadzących, ale ich odpowiedź nie wychodziła poza ramy merytoryki „to zależy”. Taki tam typowy poziom na uczelni wyższej.
Podsumowując
Nie chcę na końcu stwierdzać, że zmarnowałam każdą cenną minutę (i złotówkę) spędzoną na tych studiach, ponieważ byłaby to nieprawda. Jak już wspominałam, niektóre zajęcia były wartościowe, a prowadzący w ciekawy sposób przekazywali wiedzę i potrafili zbudować fundamenty danej dziedziny. Ja osobiście potraktowałam ten czas trochę jako trampolinę – zajęcia z Pythona zainspirowały mnie do zrobienia dodatkowego kursu online, ambitnie podeszłam do projektu dyplomowego, a nawet wykorzystałam część wiedzy ze studiów do różnych projektów.
Aczkolwiek, oceniając studia jako całość, uważam, że nie są one warte wydanych pieniędzy, oraz, przede wszystkim, straconego czasu. Czasu, który można by spożytkować na dobre kursy online i książki, czy robienie własnych projektów. Fajnie też byłoby się wyspać po tygodniu pracy, co nierzadko byłoby bardziej wartościowe od tego nieszczęsnego weekendu zmarnowanego na uczelni.
Czy to znaczy, że studia są zupełnie bezwartościowe? Pewnie nie. Wydaje mi się, że te studia przyniosą korzyści komuś, kto nie miał dotychczas z analizą danych nic wspólnego. Dla osoby niewiedzącej co to jest SQL, oraz że dane tekstowe można analizować. Taka osoba nauczy się z czym to się je i czy interesuje ją rozwój w tym kierunku. Ale nie zmienia to faktu, że studia są niewiele warte dla osób, które mają z analizą cokolwiek wspólnego.
Są też inne powody studiowania, z którymi nie będę polemizować – papierek do CV (no dobra, z tym bym polemizowała), poznanie nowych osób, wyjście z domu (pozdrawiam z pracy zdalnej). Nieprzychylna ocena z mojej strony oczywiście nie dotyczy tych aspektów.
Na sam koniec, jako iż nie chcę się tylko wymądrzać jak było źle, lista kilku pomysłów na ulepszenie studiów:
- Więcej prowadzących z biznesu.
- Wszystkie zajęcia w Pythonie (w formie, którą opisałam w tekście).
- Kompleksowe podejście do całego programu. Fajnie by było, gdyby każdy kolejny temat budował wiedzę opartą na poprzednich lekcjach. Wyobraźmy sobie, że przez całe studia moglibyśmy mieć 1 zestaw danych – na samym początku wyciągnęlibyśmy dane za pomocą SQLa z bazy danych, potem przetworzyli je w Pandasie, a potem każdy typ danych (tekstowe, przestrzenne itd.) przerabiali na kolejnych zajęciach. To by dopiero były zajebiste studia.
- Większe wsparcie merytoryczne dla projektów dyplomowych. Zamiast 2 promotorów, którzy wspierali po 20 studentów, moglibyśmy wybierać promotora specjalizującego się w danym obszarze, tak, aby rzeczywiście miał czas i chęci na większe wsparcie merytoryczne.
Jeżeli planowaliście pójście na te studia i marzyliście, że zmienią one bieg waszej kariery, to nie martwcie się, nic straconego. Można zostać analitykiem danych lub data scientistem podążając inną ścieżką, którą chciałabym wam przedstawić. Zapraszam na moje konto na Instagramie oraz na kolejne posty, które przedstawią krok po kroku jak zbudować swoją karierę w data, np.:
Funkcje okna w SQL
Nie zaczynaj od pythona
O co pytać na rozmowie o pracę?
Pierwsza umiejętność w pracy IT – język angielski
Nowa pozycja w świecie danych – Analytics Engineer
Macie jakieś doświadczenia z podyplomówkami? Podzielcie się w komentarzach!
Cześć Kasiu, zastanawiam się nad tymi studiami mając na uwadze wyłącznie papierek do CV. W tym roku kończę magisterkę z budownictwa (chociaż z branżą już związany nie jestem) i zastanawiam się czy w przyszłości taki papierek z „dejta sajens” jakoś mi pomoże czy nie ma to znaczenia? Po 5 latach na uczelni wyobrażam sobie jak ta podyplomowówka będzie wyglądać i chciałbym wiedzieć czy warto się w to pakować, czy potencjalni pracodawcy w przyszłości będą laskawiej patrzeć albo czy to otworzy jakieś opcje osobie która nie skończyła kierunku związanego z szeroko pojętym data.
Pozdrawiam!
Moim zdaniem papierek ma znikome znaczenie, jeżeli jesteś w stanie wykazać w CV, że się interesujesz tematem to wystarczy, żeby się dostać na rozmowy, a wiedza techniczna i tak jest sprawdzana na rekrutacjach.
Cześć,
Chciałam Ci podziękować za ten wpis. W branży analityki danych siedzę prawie dekadę, brakuje mi jednak Pythona żeby wskoczyć na wyższy level i, jak zapewne wielu, zaczęłam rozglądać się za stacjonarną podyplomówką, żeby mieć bardziej ustruktutyzowane podejście do tematu i obecność nauczycieli i mentorów. Rozważałam właśnie studia na AGH. Ten post jest bardzo merytoryczny i rozwiał moje wątpliwości, co do tego czy uzyskam to, na czym mi zależy na tym kursie. Widzę, że lepiej skupić się na kursach online, które są tańsze i bardziej skupione na praktyce. Mam nadzieję, że będę wstanie ogarnąć sobie taki ramowy plan i trzymać się go.
Dzięki jeszcze raz i pozdrawiam 🙂