Jak przygotować się do studiowania informatyki?


it, studia / sobota, Lipiec 14th, 2018

Niedawno tysiące uczniów otrzymało swoje wyniki matur. Zaraz potem prawdopodobnie zapłakało nad losem lub poszło się napić. Część z nich zapewne złoży papiery na informatykę (czy warto?), nieco mniejsza część ujrzy swoje nazwisko na liście studentów, a jakiś marny procent zdecyduje się coś z tym zrobić jeszcze przed październikiem. Dzisiejszy wpis jest dla wszystkich tych grup: do rozwagi, do podjęcia decyzji i do przygotowania się.

Studiowanie informatyki: Oczekiwania vs Rzeczywistość

Kiedy kilka lat temu robiłam własny research, znalazłam sporo artykułów na temat studiów (np. Aniamaluje fajnie pisze tutaj o notatkach, a Blue Kangaroo o wszystkim związanym z tematem). Niestety dla mnie większość rad okazała się niepraktyczna, co zapewne wynika z istotnych różnic między studiami ścisłymi (czy w ogóle tylko informatycznymi) a humanistycznymi czy społecznymi.

Miało być dużo do czytania, a tymczasem najdłuższym, niewypełnionym kodem lub równaniami tekstem, jaki przeczytałam w ciągu pierwszych kilku semestrów, było zadanie z modelowania opowiadające o wymyślonej fabryce ciastek. Najdłuższym dokumentem tekstowym, jaki napisałam, była dwustronnicowa dokumentacja programu, którą odebrałam z komentarzem “proszę skrócić o połowę”. Straszyli mnie cały czas sesją, a sesja to była ulga, bo w końcu można się było pouczyć spokojnie w domku zamiast klepać po nocach kolejne projekty.

W skrócie: EVERYTHING I KNEW WAS A LIE!

dziewczyna przechodzi przez ulicę przed uniwersytetem w glasgow
Glasgow

1. Czy trzeba umieć programować?

Nie zaszkodzi. Znam osobę, która zaczynała z zerową wiedzą, nie słysząc nigdy o żadnym języku programowania. Pierwszy semestr spędziła głównie panikując (razem ze mną), że znowu czegoś nie rozumie, ale szybko stała się osobą oddającą maksymalnie punktowane projekty tydzień przed deadlinem (w sensie: bardzo wcześnie). Tak więc: jest niezerowe prawdopodobieństwo, że i tobie się uda, ale na pewno będzie cię to kosztowało więcej stresu.

Ja sama na starcie programowałam w C++ na poziomie matury (czyli prawie wcale). Znałam podstawowe konstrukcje (instrukcje wejścia/wyjścia, pętle, ify) i kilka prostych algorytmów (Euklidesa, insertion sort, sito Eratostenesa – te klimaty), wiedziałam, że klasy istnieją, umiałam wczytywać dane z pliku. Przez pierwszy semestr najtrudniejszy był wstęp do algorytmiki i żałuję, że to z nią wcześniej nie miałam większego kontaktu. Składni bardzo szybko się nauczyłam, ale z szybkim rozwiązywaniem zadań algorytmicznych miałam spory problem.

Jeśli miałabym więc coś polecać, to nauczenia się podstaw wybranego języka (C++, Javy) w stopniu pozwalającym na w miarę swobodne pisanie prostych funkcji, a potem zaczęłabym rozwiązywać różne zadania np. z Codility, Hackerranka czy Leetcode’a. Jest tam sporo materiałów dla początkujących, a moim zdaniem można się w to nieźle wkręcić i szybko polubić wymyślanie coraz ciekawszych rozwiązań. 😉 A nawet jeśli wasze studia nie będą wymagały zbytniego kunsztu algorytmicznego, to umiejętności się nie zmarnują, bo w większości rekrutacji na Junior Developera najpierw dostaniecie do rozwiązania tego typu zadania. Jeśli chodzi zaś o samą algorytmikę, to przydatny może być też jakiś kurs na courserze albo przerobienie materiałów stąd.

W skrócie: bez spiny. Dobrze spróbować napisać coś samemu jeszcze przed październikiem i trochę poczytać (ja np. czytałam ten podręcznik), ale od zera też można startować.

tablica z równaniami studiowanie informatyki
Photo by Roman Mager on Unsplash

2. Co z matmą?

Matma jest, nie da się przed nią uciec. U mnie na uniwerku na pierwszym roku na 3 przedmioty programistyczne przypadło 5 matematycznych, z których wszystkie uznałabym za całkiem w porządku zajęcia, do których zdania wystarczyło regularnie ogarniać materiał, chodzić na ćwiczenia i przerobić stare egzaminy. Uznałabym, gdybym miała czas na te rzeczy w ciągu roku. Tymczasem pozostało mi jedynie ratowanie mojej szansy na zaliczenie w krótkich przerwach między oddawaniem kolejnych zadań z programowania, a to oceniłabym jednak na wyjątkowo trudne.

Jasne, jeśli matma (ta akademicka, której przecięcie z matmą szkolną jest prawie puste) wchodzi ci łatwo albo idziesz na uczelnię, na której wystarczy zarwać kilka nocy z zadankami z całek, żeby zdać, to nie musisz się martwić. A jeśli tak nie jest, to w sumie wakacje są od odpoczynku, więc o ile twoim sposobem na relaks nie jest matma, to też się nie przejmuj. Miej tylko od października na uwadze, że aby dostąpić zaszczytu bycia studentem drugiego roku, musisz tę analizę czy algebrę jednak zdać.

3. Sprzęt

Twój laptop to twój nieodłączny towarzysz przez następne kilka lat (ale nie oszukujmy się – to pewnie nic nowego), więc pewnie zastanawia cię, czy nie przydałby ci się lepszy model. To zależy. Ja uważam, że laptop służący do celów uczelnianych ma być przede wszystkim wygodny czyli:

  • dasz radę nosić go na co dzień w plecaku/torebce,
  • będzie można na nim polegać (ergo nie zacznie ci w środku ważnego zadania kilkugodzinnej aktualizacji)
  • nie będziesz mieć problemów z instalacją potrzebnych środowisk.

Z tych warunków w żaden sposób nie wynika, że ma być to drogi sprzęt. Ja tuż przed rozpoczęciem roku oddałam swojego laptopa do serwisu, więc czułam potrzebę kupienia czegoś na najbliższe kilka miesięcy. Poza tym mój stary laptop miał 15 cali i był dosyć masywny, więc nie widziałam innej opcji niż znaleźć coś mniejszego. Ostatecznie kupiłam na allegro poleasingowy Lenovo ThinkPad X201, bez systemu i z dyskiem SSD. Kosztował mnie całe 500 zł, a po postawieniu na nim Ubuntu chodził wiele razy szybciej niż mój poprzedni sprzęt. Wyglądał jak mały czołg w porównaniu do MacBooków, ale był niezawodny, miał łatwo wymienialną baterię i służył mi dzielnie przez kilka lat.

W skrócie: określcie swoje potrzeby, ale jeśli ma być to laptop głównie do pracy na uczelni, a nie np. do grania czy robienia grafiki, to prawdopodobnie nie potrzebujecie żadnego wypasionego sprzętu.

Ostatnio moje dzieci (czytaj: 18-latkowie, których uczę programowania na kółku w liceum) zapytały mnie, czy MacBook da radę. Prawdę mówiąc, nie wiem, bo nigdy go nie miałam i nie planuję mieć. Wśród młodszych studentów raczej nie widywałam jabłuszek, ale wśród starszych były już całkiem popularne (często jako sprzęt służbowy), więc myślę, że można. Może trzeba będzie częściej pokombinować niż na czymś z poczciwym Linuxem, ale jesteście wannabe-programist(k)ami, right?

4. Materiały papiernicze

Na początku jest dużo matmy, więc na pewno przyda się sporo papieru. Ja lubiłam mieć rozwiązania zadań zebrane w jednym miejscu i podzielone na przedmioty, ale znam takich, co mieli jeden “zeszyt od politechniki” albo „kartki chaosu” i też było im dobrze. Kwestia własnych preferencji, ale na informatyce nie ma raczej materiałów, których trzeba by się uczyć na pamięć, więc organizacja notatek będzie raczej prymitywna. Dobrze mieć gdzie pisać i w razie potrzeby dużo kreślić. Nad tym punktem akurat zawsze ubolewałam, bo jestem papierniczym freakiem i potrafię spędzić w dziale z zeszytami kilka godzin, mając jeszcze energię na oglądanie długopisów.

Nie dla nas jednak piękne studygramy, choć niektórzy próbują:

5. Wykłady

Ponownie: to zależy. U mnie z matmy były ogólnodostępne skrypty, więc nie czułam się zobligowania do dojeżdżania na poranne wykłady (serio, 8:00 na studiach a 8:00 w szkole to są dwie ZUPEŁNIE różne godziny). Ze skryptami jedyny problem był taki, że trzeba je było kiedyś przeczytać. To nie działało niestety tak, że brak wykładu == 90 minut wolnego, bo na samodzielną naukę trzeba potem samemu wygospodarować kiedyś czas. Tak że nawet choćby się miało przysypiać, to o ile materiał prezentowany na wykładzie będzie potem wymagany na egzaminie, to dobrze jest go usłyszeć choć jednym uchem. Przynajmniej wie się mniej więcej, co się dzieje, a to już często bardzo dużo.

6. Praca w trakcie studiów

No po to tu pewnie w większości też przyszliście, nie? Znam wielu, których legendy o kilkunastotysięcznych zarobkach zwabiły do gmachu wydziału informatyki. (Uwaga! Socjalistyczna wstawka) O ile uważam pieniądze za słabą motywację do kończenia studiów, jeśli jest ona jedyną, to na pewno nie za wstydliwą. Żyjemy w kraju, w którym nawet o niskopłatne prace trzeba często walczyć. Płatne staże dla studentów (AKA darmowej siły roboczej w zamian za “rozwój w młodym zespole i wpis do CV”) są rzadkością. Nie widzę absolutnie żadnej hańby w tym, że ktoś chce mieć pracę w branży, w której to rekruterzy dzwonią do ciebie, masz bezpieczeństwo finansowe i prywatną opiekę medyczną. Bardzo bym chciała, aby każdy rynek był rynkiem pracownika, ale jesteśmy od tego bardzo daleko.

Krótko mówiąc: da się i większość znanych mi osób od drugiego/trzeciego roku się jej podejmuje.

ALE moje uproszczone doświadczenie mówi mi, że studia informatyczne dzielą się na dwa typy: takie, które cię uczą i takie, które ci nie przeszkadzają. Na tych pierwszych masz możliwość zdobycia dużej wiedzy i zaczęcia pracy na o wiele wyższym levelu niż typowy junior, ale za to prawdopodobnie nie będziesz mieć na to za wiele czasu. Mam znajomych, którzy zaczęli pracować wcześnie, ale odbiło się to w różny sposób na ich studiach. A jeśli nie na studiach, to na życiu prywatnym. Ty decydujesz.

W drugim typie jest odwrotnie. Masz sporo czasu i możesz się spokojnie rozwijać samodzielnie na boku albo już w firmie. Z drugiej strony musisz się rozwijać samodzielnie, bo inaczej niewiele się nauczysz. Ponownie: ty decydujesz.

uniwersytet w Berlinie
Berlin

7. Praktyczne wskazówki:

  • Gdzie w okolicy wydziału znajduje się najlepszy chińczyk, kebab i najlepsza stołówka? Wybierz mądrze. To czasem będzie twój jedyny powód do życia.
  • Poznaj jak najszybciej choć dwie osoby z kierunku. Programowanie na studiach to często aktywność grupowa. Robienie zadań z matmy to już z kolei prawie impreza.
  • Nie bierz dodatkowych zajęć w pierwszym semestrze. Chyba, że musisz. Polecam jednak najpierw sprawdzić, czy jesteś w stanie przetrwać swoje obowiązkowe zajęcia.
  • Zacznij chodzić na siłownię lub jogę, zacznij biegać, rozciągać się, uprawiać jakiś sport regularnie. Twój kręgosłup ci podziękuje. Twoje nerwy też.

I najważniejsze:

  • Sprawdź, po ilu szklankach piwa dalej jesteś w stanie pisać kompilujący się kod.

Powodzenia. 🙂