Podsumowanie pierwszego miesiąca – Make it till you make it
Podsumowanie drugiego miesiąca – Jest poważnie!

Kiedy kończyłem poprzedni wpis, o drugim miesiącu kursu, właśnie wchodziliśmy w cykl zajęć o współbieżności w ramach bloku Programowanie II – poziom podstawowy. Zasadniczo każdy dzień w kursowej salce wprowadzał nowe pojęcia, nowe biblioteki i nowe koncepcje. Tym samym kurs mocno przyspieszył, zintensyfikował się i – co nie dziwi – wymógł na uczestnikach dużo więcej pracy poza godzinami zajęć. Gdy piszę te słowa jest już sierpień – ociągałem się ze stworzeniem tego wpisu z tej prostej przyczyny, że czasowo jestem w wiecznym niedoczasie, w pół, no czasami nawet na dwa kroki za zdarzeniami dnia dzisiejszego. Jestem też już, co trzeba uczciwie przed sobą przyznać, mocno zmęczony.

Cykl pięciodniowych, intensywnych dni w rytmie – praca, kurs, praca, kurs – to srogi zajob. Serio. Zwłaszcza teraz, gdy za oknem wysokie temperatury i jakby niższa motywacja do cięższej pracy.

Dlatego to wszystko przypomina gonitwę za króliczkiem – niby już go masz, już wiesz, o co chodzi, już przerabiasz materiał na bieżąco, ale wystarczy spojrzenie w tył, krótka powtórka z wzorców projektowych, a ty już na nowo musisz zacząć gonić.

Ale do rzeczy. Oto, co działo się w ostatnim, trzecim, miesiącu kursu:

Współbieżność – czyli coś, co można by jeszcze do niedawna nazwać swoistą nowinką w świecie dev, ale przy obecnym zalaniu świata programistycznego tuzinami technologii każdego miesiąca wydaje się już mocno przestarzałym terminem. A jest z nami zasadniczo od 2007-2008 roku, kiedy masowe upowszechnienie procesorów wielordzeniowych w naturalny sposób wymusiło od programistów rozbicia zadań w synchroniczne bloki. Programowanie współbieżne to dziś kluczowe zagadnienie wydajności aplikacji. Zasadniczo trudno dziś spotkać program, którego architektura nie zakładałby współbieżności (no, może poza hardcorowym legacy code).

Sieci – kilka zajęć poświęciliśmy zrozumieniu sieci, ale punkt wyjścia okazał się naprawdę świetny. Otóż całą wiedzę zdobytą na zajęciach ze współbieżności od razu wykorzystaliśmy do postawienia prostego serwera i klienta, który komunikował się ze sobą na określonym porcie. Finalnie zbudowaliśmy prostą grę, która pozwoliła grać po lokalnej sieci w kółko i krzyżyk. Oprócz tego masa teorii, naprawdę masa teorii – dobrze jest wiedzieć, jak dokładnie wygląda proces przesyłu danych w sieci.

Bazy danych SQL i NoSQL – relacyjne i nierelacyjne bazy danych. Ten temat bardzo mi przypasował. Lubię operować na danych, lubię nimi manipulować i coś czuję, że droga w tę stronę może być bardzo ciekawa. Rozpoczęliśmy od MySQL, którego obsługiwaliśmy Workbenchem, komendami z terminalu i – finalnie – przez JDBC w Javie. Ten blok wprowadził sporo nowych standardowych klas Javy – teraz tylko popracować nad opanowaniem ich metod. W ramach zajęć o nierelacyjnych bazach danych usiedliśmy nad MongoDB. Strukturę i pods chwyta się w lot

JDBC i Hibernate – kontynuacja poprzedniego bloku. Główny aspekt zajęć z Hibernate’m to poprawne modelowanie i manipulowanie encji bazodanowych na klasy Javy. Sporo pracy w domu, mnóstwo wyklepanego kodu i kolejny tuzin klas Javy do spamiętania. Na ten blok trafił się trochę słabszy trener – doskonale obyty z materiałem – ale znowu o dość słabych umiejętnościach przekazywania wiedzy.

W ten sposób przeleciał trzeci miesiąc. Do końca kursu ostały się ledwie dwa miesiące! Ale ten czas goni! Obecnie przerabiamy – w wielkim skrócie, bo zaledwie na czterech zajęciach – podstawowe technologie front-end’owe, co by po prostu wiedzieć, co tam się dzieje. Jest, rzecz jasna święta trójca Front Endu – HTML, CSS i JavaScript – ale jest też Angular i kapkę React’a. Pobieżnie to wszystko robimy bardzo, ale sam Typescript wydaje się kapitalnym językiem.

W czwartym miesiącu – co ekscytuje nas mocno – wchodzi wreszcie Spring! Zasadniczo od jutra odpalamy już pierwszą aplikację na Spring Boocie! Będę raportował 😉