W czym programować by szybko znaleźć pracę

0

Witam,
Mam takie pytanie ponieważ w Javie szukam pracy około pół roku byłem w tym czasie na stażu Angular i mam pytanie za co radzilibyście się zabrać żeby znaleźć pracę. Skończyłem 1 rok studiów i rzuciłem studia. Łatwiej mi będzie znaleźć pracę w Lublinie czy lepiej wyjechać do Warszawy. Znam Javę Spring REST i MVC podstawy Hibernate i trochę Junita, a do tego trochę angular i typescript.I oczywiście radzę sobie z sql. Jakie są wasze doświadczenia. Pozdrawiam

2

W tym co sprawia Ci przyjemność

3

Chodzą słuchy, że dostać się na juniora w Javie to Mount Everest. I ten stack co opisałeś to musisz znać tip top, żeby się przebić.
Ja dostałem w takim stacku pracę jak umiałem:

  • Java 8, 11 w stopniu umożliwiającym płynne pisanie bez zastanawiania się nad składnią etc.
  • Spring: Boot, Data, Security, elementy Cloud
  • Jenkins, Docker
  • Solidna wiedza z systemów linux
  • Wzorce projektowe - nie na pamięć, ale wiedziałem z czym się je i jakie problemy rozwiązują
  • SQL, i znajomość koncepcji ORM czyli jakaś implementacja JPA (Hibernate jest pod spodem w Spring Data)
  • Czysty kod i dobre praktyki: Wszystkie najważniejsze książki R. Martina + Java, efektywne programowanie - to podstawa
  • RabbitMQ - wiedzieć jak się pracuje z kolejkami, po co je stosować i co pomagają rozwiązać
  • Intellij idea, podstawy maven, gradle
  • Testowanie jednostkowe i integracyjne - Junit4 lub 5
  • Git - ale nie pull push, tylko umiejętność faktycznej pracy z tym - rebase, merge, reset, revert, status, log i ogólnie nabrać obycia z gitem to konieczność.
  • Projekt wrzucony na Github - nie żaden żenujący CRUD z czterema metodami, ale solidna aplikacja, złożona najlepiej z kilku mikrosewisów, dopracowana, otestowana, masz się móc nią pochwalić i o niej porozmawiać.

Bez tych umiejętności szczerze wątpię, że Ci się uda, bo ja długo się bujałem mimo już takiej wiedzy jak powyżej oraz wiele więcej z różnych innym pokrewnych technologii jak HTML, CSS, SASS, Angular 8, Typescript, GraphQL, websockets, Redis, Ansible etc.

Najłatwiej to chyba na testera by Ci było, nie wiem.

1

solidna aplikacja, złożona najlepiej z kilku mikrosewisów, dopracowana, otestowana, masz się móc nią pochwalić i o niej porozmawiać.
@NeutrinoSpinZero: Jak to są wymagania na juniora, to jakie są na regulara? o_O

0

@nobody01: no nie wiem, ja Wam tylko napisałem, jaką drogę przebyłem do złapania pracy jako junior. Także mój post jest mega obiektywny, bo szukałem pracy, ale dostałem dopiero wówczas gdy umiałem to co umiem.

0

Latwiej bedzie w Warszawa.

Aby dostac sie na juniora, wystarczy znajomosc javy, OOP, umiejetnosc pisania testow oraz dobre praktyki + podstawy springa i hibernate. Masz jakies swoje projekty? MOzes je tu wrzucic jako code review, bo to ze mowisz ze znasz jave i springa etc. nie wiele mowi. Znajomosc syntaxu jezyka programowania to jest dopiero poczatek.

0

a jak będę zapytany ile bym chciał zarabiać to ile powiedzieć. Za mało powiedzieć też źle??

2

@NeutrinoSpinZero:

Ja dostałem w takim stacku pracę jak umiałem:

Java 8, 11 w stopniu umożliwiającym płynne pisanie bez zastanawiania się nad składnią etc.
Spring: Boot, Data, Security, elementy Cloud
Jenkins, Docker
Solidna wiedza z systemów linux
Wzorce projektowe - nie na pamięć, ale wiedziałem z czym się je i jakie problemy rozwiązują
SQL, i znajomość koncepcji ORM czyli jakaś implementacja JPA (Hibernate jest pod spodem w Spring Data)
Czysty kod i dobre praktyki: Wszystkie najważniejsze książki R. Martina + Java, efektywne programowanie - to podstawa
RabbitMQ - wiedzieć jak się pracuje z kolejkami, po co je stosować i co pomagają rozwiązać
Intellij idea, podstawy maven, gradle
Testowanie jednostkowe i integracyjne - Junit4 lub 5
Git - ale nie pull push, tylko umiejętność faktycznej pracy z tym - rebase, merge, reset, revert, status, log i ogólnie nabrać obycia z gitem to konieczność.
Projekt wrzucony na Github - nie żaden żenujący CRUD z czterema metodami, ale solidna aplikacja, złożona najlepiej z kilku mikrosewisów, dopracowana, otestowana, masz się móc nią pochwalić i o niej porozmawiać.

tytuł juniora to tam nic, ale stawka też? :D psuje_rynek.jpg haha

0

EDIT: chyba odpowiedziałem na usunięty post. No ale niech zostanie.

No przede wszystkim to pokazuje on nieznajomość gita (After unziping change the folder name(delete "-master")). Że robiłeś jakieś zadania skądś (Zadanie3).

Że hardkodujesz ścieżki i zostawiasz nierozwiązane problemy:

 File f=new File(dir+"//ImieNazwiskoOutput.txt"); //I had problem with access to the directory

Że robisz wzorki z komentarzy

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Że źle importujesz w pythonie

from tkinter import *
from collections import *
from sys import *
from datetime import *
from time import *
from random import *
from tkinter.messagebox import *
from threading import *

No a przede wszystkim, że nie ma (lub ciężko znaleźć) jeden porządny, otestowany i rozbudowany projekt, którym mógłbyś się pochwalić. Za to jest masa jakichś playgroundów zostawionych w połowie.

0

Masz taki kod:

@Service
public class ImageService {
	static Image image=new Image();
	List<Integer> imageNumbers;
	public Image returnImage() {
		return image;
	}
	public void incrementCounter() {
		image.incrementImagesCounter();
	}
	public int getImagesCounter() {
		return image.getImagesCounter();
	}
	public List<Integer> generateImagesNumberList(){
		imageNumbers=new ArrayList<Integer>();
		for(Integer i=0;i<getImagesCounter();i++) {
			imageNumbers.add(i,new Integer(i));
		}		
		return imageNumbers;
	}
	

}
  1. Statyczny zainicjalizowany obiekt Image?
  2. Lista numerów obrazów trzymana w zmiennej serwisu? No way. Coś mi się wydaje, że to jakiś idik bazodanowy.
  3. To nie jest właściwie serwis, a zwykły statyczny utils

Btw. prawie nic nie wrzucasz na githuba, rzadko kiedy wrzucisz jakieś strzępki. Weź się za robotę chłopie, jak chcesz coś podziałać w tej branży.

0

juz czytajac readme mozna sie natknac na

To load page firstly you need to select pagination otherwise it will not be loaded

no to za dobrze o Twoich umiejetnosciach nie swiadczy.

0

Dobra wystarczy przyjąłem do wiadomości ale zrozumcie że to pisałem sam i nie miałem koło siebie nikogo kto by powiedział jest w porządku? nie to jest nie w porządku i tamto też do poprawy. Teraz pytanie ile powiedzieć kasy na ewentualnej rozmowie?

0
voltekk napisał(a):

Teraz pytanie ile powiedzieć kasy na ewentualnej rozmowie?

To wszystko zależy, jakie miasto, jaka firma, no i przede wszystkim na ile się cenisz

5

@voltekk: uczciwie: nie chciałbym Cię w zespole na ten moment. Ale to nie znaczy, że jeśli się weźmiesz do pilnej pracy to za 3 miesiące nie zmieniłbym zdania.

Oto moja rada:

  1. Załóż konto na trello i opisz tam projekt, który chcesz zrealizować. Ma to być zajebiście dokładny plan. Zrób sobie stronę do obsługi zasobów muzealnych na przykład.
    Backend w Javie i frontend w Angularze.
    Funkcjonalności:
    • konto użytkownika z podziałami na role, uprawnienia itd. Nie każdy może wszystko i tak dalej. Niech będzie metoda autentykacji jako BasicAuth.
    • Operacje CRUD na encji MuseumObject - czyli obiekt muzealny, który może być obrazem, rzeźbą, albo książką. Podziel to odpowiednio!
    • Możliwość zamówień od innych muzeów w celu wypożyczenia obiektu muzealnego
    • CRUD na fotografii zbioru
    • Zrób statystyki, co mamy w magazynie ile rzeźb, ile obrazów, ile dywanów etc.
    • Elektroniczne zamawianie biletów - i tu już w późniejszej fazie masz pole do popisu!
      Wymaganie biznesowe:
      Możemy zamawiać bilety przez internet. Cena powinna być ustalana przez użytkownika z odpowiednią rolą (Spring Security)
      Nie możemy sprzedać więcej biletów niż możemy! Jedna grupa zwiedzających to max 20 osób, a grup dziennie może wejść max 10.
    • Statystyki zarobków - sprawdź ile muzeum zarabia na biletach
    • mailingowy newsletter dla zarejestrowanych pracowników o spotkaniach, skoleniach etc.

Napisałem Ci gotowy projekt, siadaj, inicjalizuj projekt i do boju chłopie i na Wielkanoc będziesz miał argument dla rekrutacji, a twoja wiedza skoczy w górę niebagatelnie.
Mogę Ci robić review, nie ma problemu. Najpierw naucz się gita, żeby nie robić syfilisu w projekcie, a normalne, rzeczowe commity.
Dodaj TravisCI koniecznie! Poczytaj jak to zrobić i nie merguj nigdy zmiany, która się nie buduje.
Pisz do wszystkiego testy jednostkowe i integracyjne! Pisz integracyjne, bo potem z łatwością zaimplementujesz frontend.

1
voltekk napisał(a):

W czym programować by szybko znaleźć pracę

Skończyłem 1 rok studiów i rzuciłem studia.

a jak będę zapytany ile bym chciał zarabiać to ile powiedzieć

Dobra wystarczy przyjąłem do wiadomości (...) Teraz pytanie ile powiedzieć kasy na ewentualnej rozmowie?

Same te cytaty świadczą o tym, że jesteś średnio zainteresowany jakością tego, co robisz. Sam tytuł wątku wiele mówi.
Inne osoby tłumaczą Ci, że robisz podstawowe błędy, a Ty się bronisz tym, że pisałeś sam i nikt Cię nie naprowadzał. Następnie pytasz o stawkę. Słabo to wygląda.

Moja rada: zwolnij trochę. Naucz się porządnie, od podstaw. Jeśli będziesz przerabiał wszystko po łebkach, to do niczego to nie prowadzi. Pierwsza odpowiedź w tym wątku brzmiała W tym co sprawia Ci przyjemność i to chyba najlepsza rada, jaką mogłeś dostać.

5
NeutrinoSpinZero napisał(a):

Chodzą słuchy, że dostać się na juniora w Javie to Mount Everest. I ten stack co opisałeś to musisz znać tip top, żeby się przebić.
Ja dostałem w takim stacku pracę jak umiałem:

  • Java 8, 11 w stopniu umożliwiającym płynne pisanie bez zastanawiania się nad składnią etc.
  • Spring: Boot, Data, Security, elementy Cloud
  • Jenkins, Docker
  • Solidna wiedza z systemów linux
  • Wzorce projektowe - nie na pamięć, ale wiedziałem z czym się je i jakie problemy rozwiązują
  • SQL, i znajomość koncepcji ORM czyli jakaś implementacja JPA (Hibernate jest pod spodem w Spring Data)
  • Czysty kod i dobre praktyki: Wszystkie najważniejsze książki R. Martina + Java, efektywne programowanie - to podstawa
  • RabbitMQ - wiedzieć jak się pracuje z kolejkami, po co je stosować i co pomagają rozwiązać
  • Intellij idea, podstawy maven, gradle
  • Testowanie jednostkowe i integracyjne - Junit4 lub 5
  • Git - ale nie pull push, tylko umiejętność faktycznej pracy z tym - rebase, merge, reset, revert, status, log i ogólnie nabrać obycia z gitem to konieczność.
  • Projekt wrzucony na Github - nie żaden żenujący CRUD z czterema metodami, ale solidna aplikacja, złożona najlepiej z kilku mikrosewisów, dopracowana, otestowana, masz się móc nią pochwalić i o niej porozmawiać.

Bez tych umiejętności szczerze wątpię, że Ci się uda, bo ja długo się bujałem mimo już takiej wiedzy jak powyżej oraz wiele więcej z różnych innym pokrewnych technologii jak HTML, CSS, SASS, Angular 8, Typescript, GraphQL, websockets, Redis, Ansible etc.

Najłatwiej to chyba na testera by Ci było, nie wiem.

Jak to są wymagania na Juniora w Javie, gdzie początkowe pensje masz chyba z zakresu 2.5k-4k to chyba czas zrobić porządny rozbieg z baranka w ścianę. Za te rzeczy co wypisałeś to połowa Seniorów nie wie. Może jeszcze powinien siedzieć na chacie i dwa lata zakuwać algorytmny z książki Cormena i jeszcze Scali się nauczyć?

Przez takie myślenie co masz w Polsce zaczyna się robić z Java Developerów tanią siłę roboczą od wszystkiego za jak najmniejszy hajs i już widać tego pokłosie.

0

@littleboy66: ale serio, wysyłałem CV nie mając doświadczenia w jako stricte programista, i nie miałem zbyt dobrego odzewu. Może po jakimś roku doświadczenia się to zmieni.

0

Jeżeli to prawda, a nie jest to trolling to niezłe zaniżenie "grade" w stosunku do znajomości technologi/wiedzy, pensji. Staram się to zrozumieć, że dużo chętnych itd, ale moim zdaniem to już przesada. Tym bardziej że do programowania komercyjnego w Polsce potrzeba około 6 miesięcy i lekkiej znajomości Javy/Springa, jak nie wierzysz to zobacz ile firm prosperuje bardzo dobrze, a oferują szkolenia z Java Deva w 6 msc na tzw. "junior/entry lvl"

0

Tym bardziej że do programowania komercyjnego w Polsce potrzeba około 6 miesięcy i lekkiej znajomości Javy/Springa, jak nie wierzysz to zobacz ile firm prosperuje bardzo dobrze, a oferują szkolenia z Java Deva w 6 msc na tzw. "junior/entry lvl"

To potem zobacz ile osób płacze, bo nie ma pracy i jest kilkaset osób na miejsce. Potem biorą się takie wymagania jak ta lista wyżej na juniora.

1

Z tą pracą na juniora (szczególnie w Javie) to jest dość trudny temat. Jak ja szukałem pracy to tak jak pisał @NeutrinoSpinZero miałem praktycznie wszystko może z wyjątkiem Jenkinsa (samo CD/Ci w miarę ogarnialem po udziale w projekcie open source), solidnej znajomości Linuxa (która i tak nie była potrzebna) i projektu z mikroserwisami na GH. Kolejki etc. też rozumiałem od strony teoretycznej. Resztę posiadałem na różnym poziomie - np. z docker'a podstawy typu Dockerfile, compose etc., a i tak początkowo miałem problemy ze znalezieniem pracy. Natomiast po jakimś czasie osoby, które obecnie składają papiery do naszej firmy często nie znają nawet jakichś podstaw Springa, a i tak są rozpatrywane jako potencjalne osoby na staż, bo jest obecnie dość mało osób (paradoksalnie).

0
NeutrinoSpinZero napisał(a):

Ja dostałem w takim stacku pracę jak umiałem:

  • Java 8, 11 w stopniu umożliwiającym płynne pisanie bez zastanawiania się nad składnią etc.
  • Spring: Boot, Data, Security, elementy Cloud
  • Jenkins, Docker
  • Solidna wiedza z systemów linux
  • Wzorce projektowe - nie na pamięć, ale wiedziałem z czym się je i jakie problemy rozwiązują
  • SQL, i znajomość koncepcji ORM czyli jakaś implementacja JPA (Hibernate jest pod spodem w Spring Data)
  • Czysty kod i dobre praktyki: Wszystkie najważniejsze książki R. Martina + Java, efektywne programowanie - to podstawa
  • RabbitMQ - wiedzieć jak się pracuje z kolejkami, po co je stosować i co pomagają rozwiązać
  • Intellij idea, podstawy maven, gradle
  • Testowanie jednostkowe i integracyjne - Junit4 lub 5
  • Git - ale nie pull push, tylko umiejętność faktycznej pracy z tym - rebase, merge, reset, revert, status, log i ogólnie nabrać obycia z gitem to konieczność.
  • Projekt wrzucony na Github - nie żaden żenujący CRUD z czterema metodami, ale solidna aplikacja, złożona najlepiej z kilku mikrosewisów, dopracowana, otestowana, masz się móc nią pochwalić i o niej porozmawiać.

...

NeutrinoSpinZero napisał(a):

@littleboy66: ale serio, wysyłałem CV nie mając doświadczenia w jako stricte programista, i nie miałem zbyt dobrego odzewu. Może po jakimś roku doświadczenia się to zmieni.

Najprawdopodobniej jak wysyłałeś CV to wcale nie umiałeś tych rzeczy, które wypisałeś, tylko tak Ci się zdawało.
Niby skąd u Ciebie "Umiejętność faktycznej pracy" i "obycie" z Git, jak nigdy nie pracowałeś w zespole? To trochę jak pisać, że masz płynny Hiszpański, podczas gdy uczyłeś się go z jakiejś książki i nigdy z nikim nie rozmawiałeś w tym języku.
Podobnie z "Czysty kod" - bardzo fajnie, że coś tam liznąłeś, ale różnica w utrzymaniem czystości kodu w domowym projekcie i dużym zespole jest kolosalna.
To samo tyczy się wzorców projektowych i do pewnego stopnia innych pozycji z Twojej listy.

1

Każdy powyżej ma rację. Nie mówię, że umiem te rzeczy dobrze, nie mówię też, że mam obycie w dużym komercyjnym zespole.
O wzorcach miałem długie dyskusje z kolegą programistą. Przeczytałem Gang of four, ale nie zbyt zrozumiałem, potem przeczytałem Rusz Głową Wzorce projektowe i eureka, jakie to proste i przydatne. Umiem stosować wzorce, nie pcham im wszędzie, tylko dlatego, że umiem, ale wiem kiedy wniosą coś pozytywnego, a kiedy mogą zbytnio i niepotrzebnie zagmatwać.

W domowych projektach celowo symulowałem pracę jak firmie:

  • ticket na trello
  • commit do sforkowanego repo, feature per branch
  • pull request
  • jeśli travis zbudował to to code review
  • ewentualne popraki
  • rebase pull requestu do mastera

Jeśli chodzi o czysty kod, to potrafię taki kod pisać zdecydowanie, ale na np. zasadzie podstawiania liskov z SOLID, zawsze się wykładam, bo nie mogę tego zapamiętać xd

Linux stanowi dla mnie taki punkt gdzie chcę się rozwijać w pierwszej kolejności, ponieważ uważam, że ta umiejętność nie zmiennie przetrwa jeszcze grube lata, a poza tym lubię. Nie wyobrażam sobie programowania bez zarządzania procesami, sterowania systemd, dziennikami systemu, już nie wspominając o narzędziach sieciowych jak: nmap, netstat, curl, netcut etc.

Nie wyobrażam sobie pracy bez znajomości basha - serio. Znam też Pythona więc zamieniam sobie czasem te dwa języki do napisania skryptów, które przeszukują logi, deployują aplikacje czy inne tego typu rzeczy. Mam zbudowaną domową sieć złożoną z 6 VMek, więc też nauczyłem się korzystać z Ansible, żeby nie bawić się z osobna w konfigurację maszyn pod mikroserwisy mojego projektu.

Co do Rabbita i Reddisa, faktycznie nie mam jakiejś wiedzy jak to konfigurować i optymalizować, po prostu walę event na rabbita, inny serwis to konsumuje asynchronicznie i tyle. W reddisie cachuje jakieś dane, które często wyciągane są z bazy danych, a są inmutable.

Kodu w Javie napisałem już tyle, że chyba z zamkniętymi oczami mógłbym pisać. Jeżeli chodzi o bibliotekę standardową to znam dobrze Collections framework, Stream API.
Lubię programowanie reaktywne, bo jest proste i bardzo szybkie, a do tego oszczędza masę błędów typu ArrayOutOfBounds co sprawia, że development jest szybszy. Nie używam RxJava, a wolę zdecydowanie Reactora od Pivotala. Polecam.

Co do baz danych, to znam jednak ten temat dość średnio, bo hibernate nigdy nie używałem czystego, ale JDBC już tak. Ale czysty SQL znam spoko, choć często nie jest lekko, mam braki.

Sam Spring, no to co tu znać. Przerobić uważnie książkę "Spring in Action 5" i się tego Springa zna na tyle, że normalnie się .w nim pisze, do tego jest masa postów na SO, Baeldung jest spoko, czy też dokumentacja.

Jenkinsa nauczy się każdy, kto napisze aplikację w mikroserwisach.
Jak będą drobne zmianki, będzie trzeba wrzucać wszystko scp, ubić proces, restart systemd i tak w koło macieju, aż zadziała, no to szybko się skapniesz, że aż się prosi o automatyzację tego. Skąd Jenkins as a code się wziął u mnie, dlaczego nie klikane Joby?

Jak zrobicie format systemu i nie skopiujecie sobie Jobów, no to zrozumiesz. Wszystko jest teraz w repozytorium i odtworzenie pipeline z Jenkinsfile trwa 10 sekund. Postawienie nowego Jenkinsa z całą konfiguracją, kluczami etc. też robi to playbook, więc też powiem szczerze, że cieszę się, że tego się nauczyłem.

Mam nadzieję, że trochę wyjaśniłem. Jak ktoś mówi, że to za dużo na juniora, to pewnie ma rację, ale ja opisałem tu tylko swoją drogę, jednostkowo, więc proszę nie przykładać mnie do ogółu. Poza tym, może mam okropną twarz i dlatego mnie HRki olewały xd

0

w c++ imo najłatwiej, bo większość korpo Cię przyjmie. Później robisz już co chcesz, bo i tak masz obycie z komercyjnym kodem.

0

Pytanie czy warto sie pchac w c++ w dziejszych czasach ??

0

Masz fajne technologie niszowe typu Clojure, Haskell, Erlang, Ruby,

1 użytkowników online, w tym zalogowanych: 0, gości: 1