https://visualhunt.com/photo/7601/selected-focus-of-laptop/

Podsumowanie „Daj się poznać 2017”

Cześć! Nie da się ukryć – dawno mnie tu nie było. Niestety to obrazuje, jak istotna jest zewnętrzna motywacja. Bloga zaniedbałem w momencie spełnienia punktu regulaminu konkursu organizowanego przez Maćka Aniserowicza, który mówił o konieczności opublikowania minimum 20 postów w ciągu 10 tygodni. Aktualnie to jest mój 23 wpis, w którym chciałbym podsumować co udało mi się osiągnąć, a czego nie zrealizowałem, w kontekście Sterownika Domowego i nie tylko.

Cała ta przygoda rozpoczęła się jeszcze pod koniec lutego w chwili, gdy zarejestrowałem się w konkursie. Nie była to decyzja spontaniczna i nagła, natomiast dojrzewała od czasu opublikowania informacji o kolejnej edycji DSP 2017. Było zatem trochę czasu na przemyślenie mojego udziału, tematu projektu konkursowego oraz ogólnie o zapoznanie się z tym całym blogowaniem.

Dokładnie 1 marca ukazał się mój pierwszy wpis dotyczący projektu. Jak to bywa na początku wszelkich prac, był to etap określania założeń i robienia planów co do całego systemu. Niestety jak się na końcu okazało, przeszacowałem z moimi możliwościami czasowymi.

Właściwe prace rozpocząłem od poznania platformy Raspberry Pi, o którą oparłem część sprzętową projektu. Powstały dwa wpisy traktujące o elementach peryferyjnych oraz o ich oprogramowaniu w języku Python.

Po tej rozgrzewce zabrałem się za część webową mojego projektu, na której najbardziej mi zależało. Już przed konkursem wiedziałem, że chcę poznać Play Framework, więc w kolejnym poście opisałem moje pierwsze starcie z tą technologią. Poza tym przygotowałem prosty layout strony z wykorzystaniem Bootstrap i przetestowałem działanie routingu w Play.

Niestety po tych działaniach odniosłem swoją pierwszą porażkę – nie udało mi się zintegrować Hibernate z Play, co opisałem w kolejnym wpisie. Po kilku próbach stwierdziłem, że szkoda czasu na grzebanie w konfiguracji i skorzystałem z EBean wspieranego przez framework. Równolegle do tego tematu zapoznawałem się z tematem współpracy Pythona z bazą danych. Po szybkich poszukiwaniach możliwych rozwiązań, zdecydowałem się poznać SQLAlchemy i na jego podstawie zaimplementowałem i sprawdziłem w działaniu model danych.

Python jednak nie zagościł za długo w moich działaniach, powróciłem do rozwijania części webowej projektu, konkretnie do frontendu. Zaplanowałem wstępnie jak mają wyglądać widoki oraz zaimplementowałem pierwsze formularze. Aplikacja powoli nabierała kształtów, jednak to co należało dalej zrobić to przygotować backendową strukturę aplikacji. Powstał kolejny wpis traktujący o tym, jak to wszystko ułożyłem, dzieląc logikę aplikacji na warstwy.

Głównym moim założeniem podczas startu w konkursie było poznawanie nowych technologii. Wcześniej nie miałem do czynienia z wdrażaniem aplikacji w chmurze. Przed dalszym rozwojem projektu chciałem sprawdzić jak to ugryźć. Wybór padł na platformę Heroku i jak się okazało, konieczna była migracja bazy danych z MySQL do PostreSQL. Tym tematem rozpocząłem kolejny miesiąc blogowania.

W kwietniu wróciłem do tematu współpracy aplikacji z bazą danych. Powstała warstwa odpowiedzialna za operacje CRUD, tak jak wspominałem, w oparciu o EBean. Dało mi to możliwość nauki i implementacji obsługi formularzy w Play Framework. Na ten temat powstały dwa wpisy, pierwszy opisujący przykład prostego formularza oraz drugi z bardziej skomplikowanym przypadkiem, wymagającym mapowania ciągu tekstowego na obiekt modelu. Po implementacji obsługi formularzy, kolejnym naturalnym krokiem było dodanie walidacji po stronie użytkownika. To był mój pierwszy kontakt z JavaScriptem w tym projekcie.

Dalsze prace od tego momentu skupiły się właśnie na obsłudze elementu <canvas> z wykorzystaniem JS. Całość opisałem w dwóch częściach: tu i tu. Zdecydowanie uważam, że zrobiłem krok do przodu jeśli chodzi o umiejętności pisania w JS.

Niestety to był ten moment, gdzie trochę zabrakło mi samozaparcia i trochę czasu. Szczerze mówiąc, to nie zrealizowałem nawet połowy tego, co urodziło się w mojej głowie podczas planowania. Powstał wstępny zarys, baza, na podstawie której będę kontynuował projekt Sterownika Domowego. Jak to często bywa, do wielu rzeczy podszedłbym już w tej chwili inaczej, jednak będę kontynuował pracę w tym samym nurcie. Zmiana koncepcji z pewnością wpłynęłaby negatywnie na zakończenie tego przedsięwzięcia, a chciałbym to dociągnąć do końca, wdrażając system w moim mieszkaniu.

Sam projekt konkursowy, jego realizacja oraz to, czego się nauczyłem to tylko połowa korzyści, jakie udało mi się osiągnąć. Przez okres ostatnich trzech miesięcy niewątpliwie przybliżyłem się do środowiska IT, w którym chciałbym się znaleźć. W tym czasie udało mi się uczestniczyć w spotkaniu z serii „Ponad Program” (Wzorce projektowe), w dwóch spotkaniach z cyklu „Akademia JUG” (Java8. Wyrażenia lambda i strumienie oraz Spring/Spring Boot) oraz w warsztatach „Angular 2 pragmatycznie”. O niektórych z tych spotkań udało się sporządzić krótka notatkę na blogu. Z innych wydarzeń, niezwiązanych bezpośrednio z edukacją, w których miałem możliwość być, należy wymienić Inżynierskie Targi Pracy (8-9 marca 2017) oraz Trójmiejskie Targi Pracy (8-9 maja 2017). Te dwie imprezy, które odbyły się na Politechnice Gdańskiej, pozwoliły mi lepiej poznać trójmiejski rynek pracy i zaciągnąć języka, w którym kierunku powinna pójść moja dalsza edukacja.

To w dalszym ciągu nie wszystko, co wyszło mi na plus. Ostatnie 2-3 tygodnie były dość intensywne pod względem zdobywania doświadczeń w procesach rekrutacji. Co prawda nie odbyłem wielu rozmów, ale niektóre z nich okazały się bardzo intensywne, zajmując czas od godziny 17 do 22! Co więcej, zrealizowałem również dwa zadania rekrutacyjne, jedno w języku Python, drugie w Javie. To wszystko pozwoliło mi zdobyć nowe doświadczenia, z którymi będę kiedyś mógł się podzielić tu, na blogu!

[Aktualizacja]
Moje podsumowanie pojawiło się przed oficjalnym zakończeniem konkursu. Na dzień dzisiejszy znana jest już lista uczestników, z których wyłoniona będzie finałowa dwudziestka. Mój blog spełniał wymagania regulaminu, zatem również znalazł się na tej liście. Zauważyłem to po znacznych zmianach w statystykach odwiedzin:) To, że udało mi się spełnić wymogi konkursu, to niewątpliwie dla mnie sukces, tym bardziej, że na tej ostatniej liście znajdują się 184 blogi z 979, które wystartowały w rywalizacji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *