czwartek, 31 grudnia 2020

Niespodziewany zwrot akcji

 Rok 2020 rozpoczynałem z myślą o przebranżowieniu - porzuceniu starej pracy i skupieniu się na nauce Javy, aby w ciągu kilku miesięcy znaleźć staż/praktyki i zacząć się uczyć pisania komercyjnego.

Niestety rzeczywistość okazała się być bardziej skomplikowana. Rynek pracy dla juniorów w programowaniu jest bardzo ciężki – ofert jest mało, a wymagania wyśrubowane.

Byłem po kursie Java Web Developer w Coderslab, robiłem także youtubowe kursy i tutoriale, w tym bardzo fajny JetBrains Hyperskill Academy (polecam), natomiast widziałem dobrze, że przede mną jeszcze ogrom materiału do opanowania.

Pisanie kodu to tylko jeden element do poznania i myślę, że po tych kilkunastu miesiącach wyrabiam sobie pewne nawyki i robię to znacznie lepiej niż na początku. Od czasu gdy uczestniczę w projektach grupowych, jest mi łatwiej orientować się w GitHubie, poznaję nowe funkcje i nabieram pewności w używaniu ich.

Poszedłem na studia, aby w końcu uzyskać wyższe wykształcenie no i... nauczyć się czegoś. Na razie podszkoliłem się w operacjach bitowych w Javie, co większość kursów i podręczników pomija jako mało ciekawe czy praktyczne ;) Zobaczymy co będzie dalej.

Od nowego roku wracam do starej pracy – nie do końca związanej z programowaniem, ale automatyzacja procesów też wydaje się ciekawa. I możliwe, że nauczę się Pythona. No i muszę w końcu zacząć pracować, 11 miesięcy przerwy to trochę za dużo.

środa, 30 grudnia 2020

Testy jako specyfikacja

Prowadzę obecnie dwa projekty zespołowe, w których piszemy kod w trzyosobowych zespołach, starając się podążać za metodą TDD. Pisanie kodu w grupie i dzielenie zadania na mniejsze moduły to wyzwanie samo w sobie, a tutaj jeszcze dodajemy dodatkową komplikację - projekt zostaje rozpisany na etapy, w ramach których przyrasta.

Każdy etap powinien być samodzielny na tyle, aby można go było przetestować. Bo najpierw ustalamy logikę i funkcje, później piszemy dokumentację oraz testy. Testy mają sprawdzać czy działają wszystkie krytyczne funkcje, pola klas itp. Implementacja jest na samym końcu i po prostu ma za zadanie zaświecić testy na zielono. To ciekawy sposób pisania, na pewno wolniejszy niż standardowy, ale podoba mi się fakt, że regularnie zastanawiamy się nad stanem projektu, planujemy rozwój no i - przynajmniej teoretycznie mamy kompletne testy i dokumentację. 

 Sporo commitów w tych projektach to zmiany w testach czy dokumentacji, chodzi o odpowiednią czytelność, a sam kod roboczy no cóż... robimy czasem refaktor, ale ważniejsze jest wdrażanie kolejnych funkcji. O tyle łatwiej z refaktorem, że są odpowiednie testy przygotowane, więc niełatwo coś zepsuć ;)

poniedziałek, 28 grudnia 2020

Na nowej drodze życia

Decyzję o rozpoczęciu intensywnej nauki programowania podjąłem w wieku 35 lat. W jakiś sposób programowanie towarzyszyło mi od zawsze, ale od ponad roku jest jedną z najważniejszych aktywności, jakie wykonuję w czasie wolnym. Tutaj będę opisywał różnego rodzaju wyzwania oraz przygody z tym związane, postaram się także przedstawiać pewne problemy albo rozwiązania programistyczne, na jakie natrafię podczas nauki.

Server socket all over place

 Kilka godzin tutoriali YT później i różnych prób, w końcu udało się zachęcić Server do współpracy :) Nie mogę powiedzieć, że to przełom, bo...