Co must have a co dobrze zeby było w stacku wspólczesnego Java developera poziom mid/senior ? (Poza Java i Springiem czy SQL)
Chyba nie aż tak "znajomość" a,b,c ze stacku, jak głębokość tej znajomości, umiejętność rozwiązywania problemów itd... swoboda poruszania się.
- JPA/Hibernate
- Docker
- Kubernetes
- AWS
- Gradle
- GraphQL
- Microservices patterns
- REST
Poza konkretnymi technologiami to must have jest DRY, KISS, SOLID, wzorce (chociaż najpopularniejsze, niekoniecznie wszystkie 24 GOF), bo co z tego jak umiesz w chmurę i kontenery, jak Twój kod wygląda jak kupa.
Jak dla mnie najważniejszą umiejętnością w skillsecie każdego programisty jest umiejętność pisania testów, wzorce, loose-coupling, i inne takie.
Sama technologia jest mniej istotna, bo i tak pracując gdzieś 6-9 miesięcy się jej nauczysz. Umiejętności wyżej - już nie (bo to wymaga lat nauki).
@Riddle: Wzorcami produktu nie stwożysz jasne nie nauczysz sie szybko pisania "ładnie". Ale też nie będziesz w stanie wyestymować produktu w danej technologii ani tym bardziej przewidzieć problemów w wyborze. A tym bardziej zaprojektować systemu. Bo będziesz miał braki w toolsecie i jego możliwościach.
Połowa świata industry to jeden wielki crap gdzie w kodzie ciężko o jakiekolwiek wzorce. Tymczasem jednak to wszystko działa.
Osoba która zna tylko "umiejętność pisania testów, wzorce, loose-coupling" potrzebuje prowadzenia za rączkę najczęściej.
Schadoow napisał(a):
@Riddle: Wzorcami produktu nie stwożysz jasne nie nauczysz sie szybko pisania "ładnie". Ale też nie będziesz w stanie wyestymować produktu w danej technologii ani tym bardziej przewidzieć problemów w wyborze.
Będziesz.
Nigdy nie napisałem nic w Scali, ale myślisz że miałbym jakiś problem z tym żeby estymować i zaplanować pracę na taki projekt?
Schadoow napisał(a):
Osoba która zna tylko "umiejętność pisania testów, wzorce, loose-coupling" potrzebuje prowadzenia za rączkę najczęściej.
No nie wiem gdzie :|
Nic poza algorytmami jak startujesz do amerykańskiego korpo lub Startup'u... Większość i tak będzie "in-house made" i "custom".
Ostatnio pracuję z tak przerobionym OpenAPI że nigdy nie jestem pewien czy należy podążać za oficjalną dokumentacją czy może czytać kod przeróbek...
Powiedz, że to bait, że :
- nie zarejestrowałeś się na forum 2 lata temu
- raczyłeś wpisać w google swoje turbo generyczne pytanie
- podpytałeś chat gpt
- przejrzałeś szeroko dostępne w sieci zbiory pytań rekrutacyjnych na mid/senior java developera
i po prostu na koniec postanowiłeś zapytać tutaj w nadziei, że ktoś napisze coś o czym się jeszcze nie dowiedziałeś (‡ಠ╭╮ಠ)
@Riddle: I rozumiem, że podpisałbyś w umowie, że fizycznie odpowiadasz za tą wycenę ? W sensie ze jak bedzie pomyłka to dokładasz z własnej kieszeni ?
Riddle napisał(a):
Sama technologia jest mniej istotna, bo i tak pracując gdzieś 6-9 miesięcy się jej nauczysz.
Pytanie czy wolisz przechodzić rozmowy kwalifikacyjne, czy się na nie oburzać xd (tak, wiem, Ty takie rozmowy od razu odrzucasz, ale nie każdy jest Tobą).
Schadoow napisał(a):
@Riddle: I rozumiem, że podpisałbyś w umowie, że fizycznie odpowiadasz za tą wycenę ? W sensie ze jak bedzie pomyłka to dokładasz z własnej kieszeni ?
Myślę że tak.
Java 11 i 17 opanowana
JPA/Hibernate + SQL
NoSQL np Mongo, Cassandra, DynamoDB
Elasticsearch
Spring, REST
Docker, K8S, konteneryzacja (dobra znajomość basha)
AWS(SNS/SQS, ECS, EC2, S3, Lambdy i inne)
Cachowanie (np Redis)
Kafka/Kinesis/RabbitMQ/SQS (nie są wymienne, ale z jednym z tych na pewno będziesz mieć styczność)
- lata stażu
no i algorytmy pod rozmowę
Nie byłbym taki pewny, że musisz umieć akurat AWS, a nie cokolwiek innego...
Riddle napisał(a):
Nigdy nie napisałem nic w Scali, ale myślisz że miałbym jakiś problem z tym żeby estymować i zaplanować pracę na taki projekt?
Myślę, że nigdy nie napisałeś nic w Delphi, ale gdybyś miał estymować pracę na taki projekt to byś poległ. Nie pisałeś też nic na iOS i tam też byś poległ. Nie pisałeś też nic w C++ na Arduino i tam też byś niczego nie zaplanował.
Nie wyestymowałbyś nie tylko projektu ale nawet uruchomienia środowiska.
gajusz800 napisał(a):
Riddle napisał(a):
Nigdy nie napisałem nic w Scali, ale myślisz że miałbym jakiś problem z tym żeby estymować i zaplanować pracę na taki projekt?
Myślę, że nigdy nie napisałeś nic w Delphi, ale gdybyś miał estymować pracę na taki projekt to byś poległ. Nie pisałeś też nic na iOS i tam też byś poległ. Nie pisałeś też nic w C++ na Arduino i tam też byś niczego nie zaplanował.
W każdej z tych rzeczy się mylisz.
Dodatkowo, Delphi to był pierwszy język w którym zacząłem pisać.
Chodzi o to że jak wejdziesz w jakąś dziedzinę odpowiednio głęboko, to nie musisz znać dokładnych szczegółów (takich jak np język) żeby móc coś wyestymować.
No szczerze to chciałbym to zobaczyć, jak estymujesz rzeczy, gdzie nie masz pojęcia o istniejących ograniczeniach chociażby. Z Delphi to był tylko strzał bo chodzi o coś, z czym nie miałeś do czynienia.
Co do języka masz rację, problem w tym że nie wystarczy znać składnię języka bo specyfika platformy może się diametralnie różnić, mogą istnieć pewne ograniczenia, których nie jesteś świadom i to nie jest wiedza uniwersalna.
gajusz800 napisał(a):
Co do języka masz rację, problem w tym że nie wystarczy znać składnię języka bo specyfika platformy może się diametralnie różnić, mogą istnieć pewne ograniczenia, których nie jesteś świadom i to nie jest wiedza uniwersalna.
Jasne.
Aczkolwiek te specyfiki nie różnią się od siebie jakoś diametralnie. Deploy na AWS nie różni się jakoś specjalnie od deploy'u na Azure. Podobnie z frameworka i i innymi takimi.
Ale deploy na iOS albo na embedded owszem się różni. Metodyki, wzorce, ograniczenia platformy które mogą wymuszać pewne kompromisy dotyczące dobrych praktyk itd. Także ogólnie nie zawsze będziesz w stanie wszystko przewidzieć
gajusz800 napisał(a):
Ale deploy na iOS albo na embedded owszem się różni. Metodyki, wzorce, ograniczenia platformy które mogą wymuszać pewne kompromisy dotyczące dobrych praktyk itd. Także ogólnie nie zawsze będziesz w stanie wszystko przewidzieć
Im platformy są bardziej oddalone od siebie to będzie trudne. Zgadzam się że co do takiego deploy'a na iOS to raczej bym się wstrzymał. Ale jeśli chodzi o aplikację webową, czyli coś co umiem bardzo dobrze, to nie miałbym problemu.
No tak, ale tutaj poruszasz się ciągle w obrębie tego, co już znasz. Jaki to jest język programowania to kwestia drugorzędna bo i tak wszystko działa analogicznie, a resztę można doczytać w dokumentacji.
gajusz800 napisał(a):
No tak, ale tutaj poruszasz się ciągle w obrębie tego, co już znasz. Jaki to jest język programowania to kwestia drugorzędna bo i tak wszystko działa analogicznie, a resztę można doczytać w dokumentacji.
No przecież dokładnie to napisałem wyzej :|