Dobra, słuchajcie. Mam 7+ expa jako Java dev, jednak zdecydowana większość tego expa to wielkie, skomplikowane domenowo, legacy korpokobyły, gdzie był zawsze duży podział obowiązków.
Ja, będąc Java devem, robiłem tylko Java kody. I to z reguły Java 8, nawet nie 11 :P Zero devops, zero architektury, zero projektowania rozwiązań, zero nowy sexy buzzwordów, zero ogarniania DB.
Tylko kod Java, a cała reszta była zawsze oddelegowywana do innych specjalistów. Używałem w tym czasie oczywiście przeróżnych Java frameworków, mniej lub bardziej magicznych, jednak zawsze w gotowych projektach, więc nigdy sam niczego od zera nie stawiałem i tylko dokładałem kolejne klocki, często bez możliwości rozmawiania o rozwiązaniach, czy nawet sugerowania, że można lepiej.
Ciężko było o większą odpowiedzialność i zaufanie, bo zawsze w tych firmach jest grono osób, które bardzo pilnują swojego garnuszka i nie chcą się nim dzielić. Jestem całkiem tym zmęczony i chciałbym zacząć na świeżo, z mniejszą szansą na trafienie do korpokobyły z 60-letnimi (to jest ok) zabetonowanymi (to nie jest ok) Władkami :/
W aktualnym projekcie, który jest baaaaardzo powolny, mam sporo czasu. Postanowiłem się porządnie rozwinąć na własną rękę i zrobiłem sobie małą roadmapę/TODO listę. I w tym miejscu wchodzicie wy, pomagając mi ułożyć plan działania.
Znam TDD, koncepty używane w Javie, jej ekosystem, clean code i design patterny itd., ale nie chcę już Javy i przede wszystkim chcę się rozwinąć jako software engineer, a nie polegać na konkretnym narzędziu (tj. język programowania)
-
System design
- zacząłem czytać System Design Interview – An insider's guide by Alex Xu
- kolejne jest Designing Data-Intensive Applications Martin Kleppmann
- coś jeszcze co byście polecali? Podobno spoko jest Grokking The System Design, ale nie wiem czy nie będzie się powielać z poprzednimi zbyt mocno?
-
Algorytmy
- Grokking Algorithms: An Illustrated Guide Aditya Bhargava i myślę że to wystarczy. Interview raczej nie są algoritm-heavy :) ale może jakaś lepsza alternatywa?
-
Architektura/design aplikacji
- Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans
- przyznam, że tutaj średnio wiem co jeszcze byłoby pożądane
-
DevOps/konteneryzacja/cloud
- tutaj zaczynają się schody. Od czego w ogóle zacząć? Docker, Kubernetes, Vagrant, Openshift, miliony dostawców rozwiązań chmurowych. Kompletnie jestem zagubiony :D bardzo chętnie przyjmę wszelkie wskazówki i źródła
-
Co innego?
- Czy przychodzi wam na myśl coś innego, co powinienem ogarnąć? Coś o bazach danych, networkingu, bezpieczeństwie? Miękkie skille?
- Last but no the least, chcę zmienić technologię na Go, ale tutaj sobie radzę i plan działania jest taki, intensywnie realizowany i myślę, że możemy pominąć ten krok, chyba, że ktoś ma protipy:
- The Go Programming Language Brain Kernighan,
- Concurrency in Go Katherine Cox-Buday,
- Effective Go Inanc Gumus
- dużo kodu i pobocznych projektów :)
Plan mam taki, żeby resztę 2023 spędzić na nauce i przygotowywaniu się do potencjalnych interview. Pod koniec roku zacząć aplikować i 2024 rozpocząć w nowej firmie, w której nie będę szambonurkiem bez odpowiedzialności.
Preferuję źródła pisane, bez polskich kołczówprogramowania najlepiej się uczę :)
Dziękuję i liczę na waszą pomoc!