Jak zwiększyć swoją atrakcyjność na rynku pracy jako programista Java?

0

Cześć :),

wiem, wiem, były podobne tematy, ale chciałbym poznać wasze opinie – gdzie lepiej zapytać, jak nie tutaj, wśród tylu doświadczonych developerów? Dobra, przejdźmy do rzeczy.

Pracuję jako Java developer i mam już ponad 5 lat doświadczenia. Niestety, ostatnio rynek zweryfikował mnie i mój zespół. Od tygodnia wysyłam CV na stanowiska związane z Javą, ale odzew jest bardzo mały, albo praktycznie żaden. Mam pewne doświadczenie z procesami CI/CD, ale nie zajmowałem się frontendem. Na rozmowie kwalifikacyjnej nie byłem już od ponad dwóch lat, więc zdaję sobie sprawę, że czasem trzeba dłużej czekać na odpowiedź od rekrutera.

Stąd moje pytanie: jeśli teraz będę miał przerwę (oby nie! ), jak mogę zwiększyć swoją atrakcyjność na rynku? Czy lepiej iść w stronę fullstacka (Java + Angular), czy może zgłębić tematy chmurowe, k8? Z tego, co widzę, jest zdecydowanie więcej ofert na fullstacka niż na samego Java developera.

Dzięki za wszelkie opinie!

6
QA napisał(a):

Czy lepiej iść w stronę fullstacka (Java + Angular), czy może zgłębić tematy chmurowe, k8?

Obie te ścieżki pewnie pomogą. Niemniej, różnica jest taka że w przypadku Angulara będziesz potem musiał faktycznie coś robić na frontendzie, a w przypadku chmury/k8s najczęściej weryfikacja jest podczas rozmowy kwalifikacyjnej a potem już jako dev nie masz z tym styczności.

Na rozmowie kwalifikacyjnej nie byłem już od ponad dwóch lat

To jest IMO największa przeszkoda - pochodź sobie na parę rozmów do firm w których docelowo byś nie chciał pracować, żeby nabrać doświadczenia w przechodzeniu rozmów. Przypomnij sobie:

  • swoją ścieżkę kariery, jak o niej opowiadać (po angielsku ofc),
  • jakie największe usprawnienia zrobiłeś (konkretnie Ty, a nie Twój zespół),
  • jakie pytania zadać na rozmowie kwalifikacyjnej (są różne zestawy pytań na rozmowie wstępnej z HR vs na rozmowie docelowej z konkretnym zespołem)
  • 100 java/hibernate/spring interview questions
  • jakie są obecnie stawki rynkowe i ile chcesz zarabiać w nowym miejscu
0

Up. Też się nad tym zastanawiam. Miałem nawet zrobić scrapper z just join it z zestawieniem gdzie jest lepszy hajs + ilość ofert pracy, żeby podjąć decyzję.
Pewnie projekt się opóźni, bo dzisiaj wskoczyło dużo dodatkowej pracy, ale plan wydaje się sensowny.

3

Ja nie widzę przyszłości w Javie w ogóle. Bootcampy i polskie uczelnie zrobili co swoje a za granicą wszystkie wakaty zapełnione kolegami z indii. Teraz wiadomo, że każdy będzie uciekał z tego bagna i takie tematy jak angular/react, CI/CD i cloudy to będzie top 3 destynacji.

1

@QA Jeżeli nie dostajesz odzewu, to jedyną rzeczą, która to powoduje jest twoje CV. Ciężko powiedzieć, czy powodem jest twoje faktyczne doświadczenie i umiejętności, sposób ich przedstawienia w CV, czy np. forma graficzna tego dokumentu.

Bootcampy i polskie uczelnie zrobili co swoje a za granicą wszystkie wakaty zapełnione kolegami z indii. Teraz wiadomo, że każdy będzie uciekał z tego bagna i takie tematy jak angular/react, CI/CD i cloudy to będzie top 3 destynacji.

Frontend z tego co widzę jest jeszcze większym bagnem jeśli chodzi o pracę. Devops (CI/CD, cloud, konteneryzacja itd.) to rozszerzenie umiejętności programowania w Java, a nie coś, co je zastąpi.

3

calm down, dopiero tydzień wysyłasz CV, Pracy się trochę szuka w tych czasach, mnie parę msc zajęło zanim znalazłem taką, która by mi odpowiadała projektem i stawką

0

Kotlin. Po Javie to pestka. Stosunkowo jeszcze mało w tym szamba, w którym Java już tonie. A dzisiaj dzwoniła do mnie rekruterka z dwoma ofertami jedna od Accenture do 180PLN a druga odN-iX - tajne wynagrodzenie..

1728402771934.jpeg

0

Też do mnie dzwonią z ofertami z Kotlinem. Podejrzewam, że moze to są ze dwie te same od różnych agencji - podejrzanie wygląda taki wystrzał szukajacych HRowców z jednak nie superpopularnej technologii.

Poza tym sam język i standardowy stack javowy nie wystarczył - w jednej ofercie chcieli kogoś z doświadczeniem z AWS, a na doświadczenie z GCP kręcili głową 🙁

BTW pisałem rok w kotlinie i bardzo przyjemny język.

3

Odpowiem żartobliwie- idź w legacy;) W springu itp. wszyscy chętnie siedzą, a nieraz spotykałem się, że na słowa EJB, Java EE młodzi uciekali, więc robi się z tego powoli nisza;)

0
  • 1 lub 2 tyg. to się czeka na odpowiedź.
  • Kilka CV wysłałem 4 tyg temu a w tym tyg. byłem dopiero na pierwszym leetcode.

Zacznij leetcode'ować chłopie bo nie przejdziesz przez pierwszą bramkę w wielu firmach.
Wysyłaj CV do każdej firmy jaką widzisz na LN lub nofluffie.
Popytaj znajomych może któryś ciebie przepchnie (to się nazywa polecenie i jak np. pan "Joel z Polski" zauważa często kończy się nepotyzmem :P)

Sam proces rekrtuacji się wydłużył, teraz to 4 tyg. minimum - więc przestój będziesz miał tak czy siak, nawet jak bardzo obniżysz stawkę nic to nie da. Także trzymaj stawkę, CVkuj, pamiętaj obecny rynek pracy jest jak Tinder...

1

Ja kiedyś przeczytałem taki artykuł, że trzeba CV skropić perfumem, podobno zapach może przywoływać pozytywne wspomnienia podczas czytania tego cv.
Ale nie wyjdzie to przy wysyłaniu przez internet, można za to wysłać darmowego pendriva, który przejmie kontrole nad komputerem i potem się wpisze w kalendarzu osoby hr swoją rekrutację i po prostu potem hr osoba wejdzie na wideo konferencję i cię sprawdzi.

Przez tą głupią informację zawsze skrapiam perfumem wszystkie listy czy koperty jak daję na wesele :>

3

Nie zwiększysz atrakcyjności bo jest kryzys na rynku programowania! To co jedyne możesz zrobić to dopracować CV z kimś z HR ale i tak odzew będziesz miał marny bo:

  • masz tylko 5 lat doświadczenia czyli jesteś początkującym/średnim midem a firmy szukają seniora 7-8 lat minimum, najlepiej 10 lat stażu
  • jest olbrzymia konkurencja, na 1 miejsce na mida/seniora przychodzi 100 jak nie 150-200 CV w miesiąc
  • każdy, dosłownie każdy zakuwa pod rozmowy więc niczym się nie wyróżnisz bo kazdy jest obcykany

Tak więc nawet jak dopracujesz CV to odzew może być marny, bo to wina kryzysu a nie kiepskiego CV. Ludzie z naprawdę dobrym CV są bezrobotni nawet pół roku bo taki teraz rynek.

To co powinieneś robić to

  • dopracować CV jak tylko sie da i upewnic się, że posiada wszelkie potrzebne formułki RODO itd.
  • katuj 200-300 leetcode tylko nie trać czas na zadania easy - katuj od razu medium. Hardów też raczej nie dają w zwykłej firmie tylko FAANGach, wiec też nie ma sensu, tylko medium
  • nie trać czasu na rekrutacje gdzie dają ci zadanie domowe na "4 godziny" - w praktyce każdy je robi i 20 godzin by było odpicowane a potem często nikt się do ciebie nie odezwie... bierz tylko rekrutacje z live-codingiem na miejscu
  • obkuj porządnie teorie - zwłaszcza system design. Jak działa pod spodem spring, hibernate. Odnośnie Javy sporo firm pyta dokładnie o działanie garbage collectorów czy performance JVMki.
  • poza klasyczną wiedzą z Javy (kolekcje, generyki, lambdy, streamy) warto poświęcić sporo czasu na współbieżność - teoria i praktyka, poklepać kod, zwłaszcza jak na codzień tego nie kodzisz.
  • Patterny w środowisku mikroserwisowym, sagi, orchestratory, choreography
  • warto wiedzieć cokolwiek o tym jak działa np: kafka, jakaś baza noSQL, elasticsearch czy jakiś cloud typu AWS (podstawowe serwisy dla deva - ECS, EKS, SNS, lambdy, S3, SQS, cloudwatch itd)
3

A co robiłeś przez te 5 lat? Klepałeś bez pomysłu ciągle te samą aplikację w pojedynkę czy jednak inwestowałeś jaoś w rozwój kompetencji?

<szyderamodeon>

Bo wiesz odzew na wysłane CV to pewnie 10% sukcesu, jeszcze trzeba przejść pozytywnie jeden lub więcej etapów rekrutacji a firmy mają aktualnie z czego wybierać i crud java developerzy, mistrzowie omijania rzeczy istotych a dyskutujących o błachych, wirtuozi zwracania uwagi w pull requestach an wydzielanie każdego mozliwego stringa do stałej jednocześnie nie widząc, że dany fragment stwarza wysokie ryzyko rzucenia NPE, specjaliści od robienia na odwal się bo każdy robi na odwal się, amatorzy tańca towarzyskiego, kolarstwa i posiadówek w saunie, mają generalnie słabe perspektywy na dostanie zatrudnienia a na dostanie się do firmy która czegoś wymaga tak by więcej nie popełniać błędów z przeszłości jeszcze mniejsze xD

</szyderamodeoff>

🤪

5

Mam swoją odpowiedź na pytanie z wątku.
Na podstawie danych z wczoraj z JJIT dla "remote java" statystyki wyglądaja tak:

Docker=43
**
Kubernetes=37
Docker/Kubernetes=1
Docker / Kubernetes=1
**
AWS=28
Amazon AWS=5
AWS / Azure=1
AWS/Azure/GCP=1
AWS Components=1
**
Angular=22
Angular 16+=1
Angular 2+=1
**
AngularJS=4

Dodatkowo na ~740 ofert unikalnych(ta sama oferta różne miasta) było 158.
Jedna oferta pracy średnio miała 6.54 required skills - więc są podstawy do uznawania zarówno do tego, ze mamy inflację wartości umiejętności jak i to, że wrzuca się wszystko czego potrzeba na rózne role.

Dane jakby ktoś chciał się pobawić w załączniku data.zip. Wyciagnałem je jako respone ze stronki bo nie chciało mi się bawić 😀

BDW, odpowiedź oczywiście brzmi olać javę i zostać devopsem XD

Osobiście smuci mnie to bo byłem przez kilka lat inżynierem sieciowym i nie chciałem wskoczyć w devopserkę jak większość moich kolegów, druga smutna sprawa to niska pozycja GCP (mam kilka certów i cos dłubałem); za to cieszy wysoka pozycja Kotlina.

Wyniki mojego majstrowania:
{Java=129, Spring=48, Docker=43, SQL=43, Spring Boot=38, Kubernetes=37, AWS=28, Git=28, Hibernate=22, Angular=22, React=20, Kafka=19, Kotlin=19, NoSQL=17, PostgreSQL=15, Microservices=14, TypeScript=13, REST=13, JUnit=12, JavaScript=12, English=12, REST API=11, Maven=9, Agile=8, API=8, MySQL=7, Oracle=7, CI/CD=7, Python=7, SOAP=7, Scala=7, MongoDB=6, HTML=6, Jenkins=6, Cloud=6, Apache Kafka=5, Linux=5, RabbitMQ=5, Azure=5, Amazon AWS=5, Elasticsearch=5, TDD=5, Java 11=4, AngularJS=4, PostreSQL=4, GraphQL=4, JEE=4, Mockito=4, GCP=4, Go=4, CQRS=4, Java EE=4, JPA=4, PL/SQL=4, CSS=4, JSF=3, JavaScript (jQuery)=3, BDD=3, Spark=3, JVM=3, Camunda=3, Clean Code=3, JMS=3, ReactJS=3, Node.js=3, SDLC=3, DevOps=3, Web Services=3, Databases=3, RESTful API=2, hybris=2, Solidity=2, Terraform=2, MsSQL=2, CI=2, BPMN=2, OOP=2, Java 17=2, .Net=2, JSON=2, Azure DevOps=2, Spring Cloud=2, Relacyjne Bazy Danych=2, GitLab=2, Hibernate 5+=2, Serverless=2, Unix=2, Niemiecki=2, Selenium=2, Vue.js=2, DDD=2, Blockchain=2, Angielski=2, Spring 5+=2, Jira=2, Oracle DB=2, Spring Framework=2, Fireblocks=2, GStreamer=1, Amazon Web Services=1, MVVM=1, RabbitMQ/AMQ=1, Front-End=1, Python/Shell scripting=1, ActiveMQ Artemis=1, kubernates=1, Flutter=1, Kafka Streams=1, Docekr=1, AI=1, JAX-WS=1, Apache=1, Liquibase=1, Communication Skills=1, MS SQL=1, Spring WebFlux=1, Spring 5=1, C#=1, Event-Driven Architecture=1, Oracle SQL=1, CI\CD=1, Powershell=1, SVN=1, Apache Tomcat=1, Solid=1, Java SE=1, Confluence=1, Web scraping=1, Swagger=1, Axon=1, Docker / Kubernetes=1, Cassandra/ScyllaDB=1, junit5=1, Java 11/17=1, Unit Testing=1, Java 8-21=1, Java 14+=1, Spring MVC=1, Architecture=1, IBM MQ=1, AEM=1, HTTP=1, Selenium WebDriver=1, Reactive tools=1, UML=1, SIP=1, Microsevices=1, Design Patterns=1, Cassandra=1, ORM=1, Jasmine=1, OpenShift=1, Bootstrap=1, Docker/Kubernetes=1, Guidewire=1, CSS 3=1, C++=1, Solace=1, JBoss=1, Bash=1, TDD/BDD=1, Kafka CLI=1, AWS / Azure=1, Backend=1, Java 17+=1, Relational Databases=1, React Native=1, AWS/Azure/GCP=1, MuleSoft=1, Leadership=1, JavaScript/TypeScript=1, Programming=1, .NET C#=1, Keycloak=1, Hexagonal Architecture=1, Cryptography=1, Team Leadership=1, Java 8+=1, Cucumber=1, Spring Boot/Cloud=1, Airflow=1, Angular 16+=1, Software Architecture=1, Containers=1, German=1, Next.js=1, Gosu=1, Flink=1, glassfish=1, Software Development=1, Core Java=1, Elastic=1, ESB=1, Kotlin 1.9+=1, PHP=1, Java/Go/Python=1, Android Studio=1, SOA=1, cicd=1, Microservice Architecture=1, SIP / RTP=1, Algorithms=1, AWS Components=1, Teamwork=1, ETL=1, Postman=1, Selenide=1, Test Containers=1, Groovy=1, Microsoft Azure=1, Payara Server=1, Microsoft Azure Cloud=1, MQ=1, APIs=1, Jakarta EE=1, Apache Sling=1, Observability tools=1, Analityczne Myślenie=1, game=1, SRE=1, HTTP/HTTPS=1, Windows=1, Microsoft SQL=1, SOLID Principles=1, NgRx=1, Angular 2+=1, OSGI=1, Redis=1, J2EE=1, Data=1, Management=1, Jakarta EE, JPA, JSF=1, FIX=1, Bat=1, HTML/CSS=1, HTML5=1, Gradle=1, DevOps tools=1}

3

BDW, odpowiedź oczywiście brzmi olać javę i zostać devopsem XD

Wniosek jest nieprawdziwy. W moim przekonaniu, poszukiwani są nie tyle DevOpsi pełnej krwi, co programiści (czegoś), z możliwie mocnymi skillami Docker/Kubernetes/Cloud. Czyli gość, który nie tylko pierdyknie tego CRUD'a w Springu (taki nasz smutny obraz...), ale zadba o to, żeby ten crud się zbudował, zapakował do kontenera i opublikował w jakimś tam klastrze. Albo poradził sobie z napisaniem jakiegoś docker compose, który odpali kontener z tym crudem + jakiegoś AWSowego localstacka i zapuści na tym testy.

1

Wydaje mi się, że na tym forum przeceniany jest leetcode a niedoceniany system design. Może to specyfika środowiska javovego, ale na rozmowie na seniora raczej spodziewałbym się zaprojektowania kolejnego klona instagrama/tiktoka a nie klepania pętli i operacji na stringach. Albo może jednego i drugiego skoro obecnie rozmowy rekrutacyjne to taki sirius biznes.

0

W odpowiedzi na pytanie @Still pewnie część ofert na programistę javę nie ma w wymaganiach javy, albo rzeczywiście się gdzieś walnąłem.
Kodzik tutaj (java, bo miało być coś większego, ale nie miałem czasu, a teraz juz mi się nie chce 😄 ).gov.zip

0

W moim przekonaniu, poszukiwani są nie tyle DevOpsi pełnej krwi, co programiści (czegoś), z możliwie mocnymi skillami Docker/Kubernetes/Cloud

Ogólnie zauważam coraz bardziej trend "role compression" czyli programista niech będzie opsem, frontendowiec niech będzie też grafikiem, QA niech też ogarnia UX, a analityk fajnie jakby data science znał. Po co płacić za 2 stanowiska, jak można za jedno.

1

@kelog Ja to widzę inaczej:
Full stack, to nie jest oszczędzanie na stanowiskach, ale oszczędzanie czasu i w sumie zrobienie sobie takiego backendu, jaki z punktu widzenia FE będzie dobry.
DevOps, to jednak z założenia "kultura", a nie stanowisko. Tak jak 10 lat temu trzeba było się nauczyć Git'a, bo to niby nie programowanie, ale jednak narzędzie, tak dzisiaj trzeba mieć jakieś pojęcie o Docker, czy Kubernetes, bo to również narzędzia wykorzystywane przy developmencie. Pisząc jakąś aplikację korzystającą z bazy danych nikt rozsądny nie będzie instalował Postgresa na swojej maszynie, jeżeli wystarczy wpisać w terminalu docker run postgres i mieć to uruchomione w 3 minuty. Jak na produkcji aplikacja zacznie walić błędami, to też warto wiedzieć o pod'ach, jak zobaczyć logi, jak debugować.
O QA się nie wypowiadam, bo od lat żadnego nie widziałem, chyba że mowa o programistach, którzy faktycznie zajmują się głównie testami automatycznymi.

1

@korokczan odpowiem postem bo się w komentarzu nie miejści.

Offtop "idealny proces rekrutacji programistów" wg. 99xmarcin:

Dostajesz 10 issue z czego wybierasz 1 lub 2 z projektów OpenSource non-profit.
Wykonujesz PRa, mergujesz i ta da - jesteś zatrudniany.

Żeby nie zarzucać projektów open source śmieciem taki projekt musi wyrazić na to zgodę, oraz pierwsze code review wykonuje firma.
Takie podejście:

  • nie marnuje czasu programistów (mogą oni wykorzystać te PRy jako część swojego portfolio;
  • robimy coś dobrego dla świata np. łatamy dziury bezpieczeństwa);
  • symuluje prawdziwe warunki pracy;
  • sprawdza umiejętności komunikacji, opisu PRa, dyskusji i dopytywania o szczegóły.
  • PR w żaden sposób nie odnosi się do firmy, można używać nicków jednorazowych (chodzi o zapewnienie prywatności w rekrtuacji, jedynie rekrtuer wie że o ten PR chodziło).

Obecne podejścia:

  • marnują brain power programistów
  • nie pozostawiają publicznego śladu (to że rozwaliłeś leetcode hard w jednej firmie nie ma znaczenia w innej)

Wady (żeby być bezstronnym):

  • Możliwość nadużycia przez janusza biznesu (będziesz dodawał PRy do jego projektu "open source")
  • Możliwość oszustwa (podobnie jak przy zadaniach domowych; można kogoś zatrudnić do wykonania pracy) - konieczne extra sprawdzenie podczas pierwszego code review.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.