Cześć, słowem wstępu, czy tam tl:dr, mam nieco ponad pół roku doświadczenia w Javie i zastanawiam się w jakim kierunku się doszkalać w wolnym czasie.
Co potrafię?
-dobrze znam podstawy samego języka, trochę gorzej z niektórymi nowościami z JDK8, niektóre umiem a na innych jestem na etapie: "wiem, że mogę to zrobić lepiej z pomocą JDK8 i stacka", temat concurrency jest mi jednak obcy, tutaj ogarniam może podstawy podstaw
-nieźle ogarniam teoretyczne zasady Clean Code, jednak czasami, pod presją czasu chociażby, zdarza mi się napisać jakąś chorą ifologię, zamiast zastosować się do lepszych rozwiązań. Jeżeli jest czas to przed pushowaniem kodu wracam do niego i refaktoruję co niektóre babole.
-na podstawowym poziomie rozumiem zagadnienia niższego poziomu, model pamięci, GC
-potrafię zrobić podstawowe rzeczy w Springu, jakieś REST API, jakiś CRUD z zabezpieczeniami (Security)
-pracowałem z relacyjnymi i nierelacyjnymi bazami danych
-posiadam podstawową (teoretyczną i praktyczną) wiedzę na temat SOA i mikroserwisów
-co do narzędzi, podstawowa obsługa Mavena, Jenkinsa, GITa, terminala Linuxowego
-z pokrewnych technologii, HTML/CSS/JS, trochę Angulara
Jak widać wspólne mianowniki tego wszystkiego to "podstawowy", "nieźle", o żadnym temacie z powyższych nie mogę powiedzieć że faktycznie coś dobrze umiem. Zastanawiam się więc, co przede wszystkim podszkolić najpierw? Załóżmy że za pół roku będę chciał zmienić pracę, co potencjalny pracodawca będzie chciał zobaczyć w moim repo? O co głównie będę pytany na rozmowie? Po głowie chodził mi np. pomysł stworzenia większego serwisu Internetowego opartego o mikroserwisy, z przodu Angular, z tyłu SpringBoot, wszystko oczywiście pokryte testami i pisane / projektowane wg. zasad Wujka Boba, no i oczywiście z CI/CD. Obawiam się jednak, że może to być porwanie się z motyką na słońce i lepiej byłoby zacząć od czegoś bardziej realnego.