Przejście z PHP na Java

0

Hej, od jakiegoś czasu zastanawiam się nad przejściem na Javę. Zawodowo programuję od niedawna, ale zawsze było to moje hobby. Miałem szczęście trafić Od razu do firmy, gdzie stawia się mocno na jokość kodu i ogólnie pracujemy z dużym oprogramowaniem. Tak więc Docker, Jira, CI nie są mi straszne. Ograniam linuxa, podstawy JS, relacyjne bazy danych ( + zaczynam zabawę z NoSQL). Dość swobodnie czuję się w OOP rozumiem zasady typu "favor composition over inheritance", wszelkie KISS/DRY, SOLID itp. Nie twierdzę, że jestem ekpertem, bo człowiek się uczy całe życie, ale jestem w stanie pracować z wiekszym kodem i go nie zepsuć ;-) Na pewno brakuje mi jeszcze expa, ale ogólnie w pracy zbieram dobre recenzje i szybko się uczę. Znam też przyzwoicie angielski.

Mam wrażenie, że w PHP niestety jest "szklany sufit" jeśli chodiz o zarobki. Myślę, że w ciągu 2 lat dojdę do kwot rzedu 10k na fakturze i potem już raczje będzie ciężko o większe podwyżki. Obserwując rynek ogłoszeń w JAVIE dość łatwo dojść do kwot 10-15k, a stack wcale nie jakiś dużo większy. Teraz zarabiam 6k więc jak sie przekwalifikowywać to jak najszybciej, bo potem już będzie spadek zarobków bolał.

I tu rodzi się pyanie - ile czasu potrzebuje ogarnięta osoba aby przejść z PHP na JAVĘ na tyle by na fakturze mieć te 6-7k (niestety nie mogę sobie pozwolić na staż bo dzieci muszą jeść ;) ). Ciągnie mnie do Javy, bo to taka matka OOP, ale trochę onieśmiela mnie stack technologiczny pojawiajacy się w ogłoszniach - tj. sporo nowych bibliotek do opanowania więc próg wejścia aby zacząć robić "cokolwiek" jest spory. Niby w PHP do połowy tych bibliotek są odpowiedniki, programuję w oparciu o techniki z Javy (OOP uczyłem się głownie z książek/materiałów do Javy) itd, ale jednak trudno zakładać że w tydzień opanuję takiego Springa ;-) Z drugiej strony nie wiem co mają na myśli pracodawcy bo znać dane rozwiazanie można na wielu poziomach - nie wiem jakiej znajomości oczekuję sie np. od juniora, bo być może znając alternatywne rozwiązanie w PHP dość szybko ogarnę rozwiązanie z Javy na tyle aby móc wpisać sobie je w CV.

Tak więc pytanie ile realnie może zająć przejście PHP -> JAVA zakładając, że poświęce na to ~15-20h tygodniowo i celem jest posada juniora z stawką ~6k netto na fakturze (interesuje mnie szczególnie Wrocław lub Poznań być może Trójmiasto, na bank nie Warszawa).

0

Daj spokój z Java. Zanim uruchomisz program to ci wąsy wyrosną. Poza tym Java nie rozni sie od PHP wiec jesli jak mówisz znane ci jest OOP to ile czasu moze ci zajac przejscie na jave ? nie wiem godzine moze dwie , zainstaluj tylko IDE do javy i to wszystko co potrzebujesz. Ale jesli chcesz kodowac w jezyku ktory ma akurat najwyzsze stawki to ci szczerze wspolczuje :)

1

Ojtam ojtam ;-) Przecież nie ma nic złego w szukaniu opcji na lepsze zarobki. Do Javy ciągnie mnie nie tylko dlatego, że lepiej płacą (ale jest to ważny argument), ale także dlatego, że w tym języku pisze się duże opgrogramowanie, co jest (dla mnie) ciekawym wyzwaniem. W PHP oczywiście też można pisać duże rzeczy, ale stawki są nieporównywalnie niższe więc skoro oba języki mi się podobają to czemu miałbym się trzymać kurczowo PHP. (PS rozważam jeszcze Ruby jako alternatywę).

Co do pisania kodu w Javie to ten etap już mam za sobą - umiem napisać prosty programik konsolowy i go skompilować - tak jak piszesz osoba pisząca OOP w PHP taki program napisze bardzo łatwo, bo 2/3 składni jest identyczne i zasady też są podobne (obecnie PHP czerpie garściami z Javy). Ale ogarnąć język to jedno, a ogarnąć biblioteki to co innego - w PHP też przecież składnia języka to1% drogi do celu. Dlatego zastanawiam się czy przekwalifikowanie jest realne.

0

facebook jest duży i napisany w php :) co prawda używają HipHopa ale to nadal nie Java tylko C. Piszac kod piszesz i tak male kawalki, klasy, metody, api nie ma znaczenia czy sie pisze dla duuuzej aplikacji czy zrobisz 20 malych apek. Co innego administracja baza danych z tyloma klientami czy administracja serverami to wtedy skalowanie aplikacji ma znaczenie ale nawet i oni nie moga powiedziec ze wola zarzadzac duzym czy malym systemem. komenda ta sama. Jestes jak pracownik w McDonaldzie, nakladasz tylko mieso do bulki nic wiecej. inni robia inny kwalek bo latwo takie osoby wymienic.

0

20h tygodniowo? Będzie ciężko...

0

Czegoś tu nie rozumiem. Ogarniasz "stawia się mocno na jokość kodu i ogólnie pracujemy z dużym oprogramowaniem. Tak więc Docker, Jira, CI nie są mi straszne. Ograniam linuxa, podstawy JS, relacyjne bazy danych ( + zaczynam zabawę z NoSQL). Dość swobodnie czuję się w OOP rozumiem zasady typu "favor composition over inheritance", wszelkie KISS/DRY, SOLID itp" i chcesz przejść do Javy, gdzie większość ofert to klepanie jakiegoś starego gówna zamiast wybrać jakiś normalny język? Jak pisałeś w PHP to pewnie robiliście pewnie jakieś nie za duże apki czyli ze 2-3 na miesiąc, więc teraz powodzenia trafisz do utrzymywania 10-letniego magazynu. Właśnie dlatego w Javie jest niezła kasa, bo gdyby zarobki były mniejsze to nikt by się nie chciał w tym babrać.

Z drugiej strony chyba za dobry nie jesteś, albo mieszkasz w małym mieście, bo jak patrzę tutaj justjoin.it/all/php to trochę się to rozmywa z Twoim szklanym sufitem. W dodatku uważasz, że Spring jest trudny, a przecież pełno bootcampowców w nim robi.

Obserwując rynek ogłoszeń w JAVIE dość łatwo dojść do kwot 10-15k, a stack wcale nie jakiś dużo większy

Tu bym powiedział nawet, że żeby PHP było używalne to ten stack musi mieć większy.

0

facebook jest duży i napisany w php :) co prawda używają HipHopa ale to nadal nie Java tylko C

JVM jest napisany w C++, więc summa summarum wszystko jest napisane w C++ </ironia>

Facebook jest napisany w PHP Hacku ( https://hacklang.org/ https://hhvm.com/blog/2018/09/12/end-of-php-support-future-of-hack.html https://www.cuelogic.com/blog/how-facebook-is-not-using-php-by-still-using-php ), Javie, C, C++, Erlangu i pewnie szeregu innych języków. Polecam chociażby przejrzeć ich publiczne repozytoria: https://github.com/facebook Raczej nie da to dobrego oglądu na to w czym mielone jest najwięcej danych w Facebooku, ale można się spodziewać, że Java, C i C++ grają tu dużą rolę.

Weźmy pod uwagę Javowy framework do obliczeń rozproszonych: https://hadoop.apache.org/
Na stronie https://dzone.com/articles/how-is-facebook-deploying-big-data jest napisane:

“Facebook runs the world’s largest Hadoop cluster" says Jay Parikh, Vice President Infrastructure Engineering, Facebook.
Basically, Facebook runs the biggest Hadoop cluster that goes beyond 4,000 machines and storing more than hundreds of millions of gigabytes.

Javofobi pewnie będą smutni, że ich dane w Facebooku są mielone głównie przez Javowy framework.

0
masterO napisał(a):

facebook jest duży i napisany w php :) co prawda używają HipHopa ale to nadal nie Java tylko C. Piszac kod piszesz i tak male kawalki, klasy, metody, api nie ma znaczenia czy sie pisze dla duuuzej aplikacji czy zrobisz 20 malych apek. Co innego administracja baza danych z tyloma klientami czy administracja serverami to wtedy skalowanie aplikacji ma znaczenie ale nawet i oni nie moga powiedziec ze wola zarzadzac duzym czy malym systemem. komenda ta sama. Jestes jak pracownik w McDonaldzie, nakladasz tylko mieso do bulki nic wiecej. inni robia inny kwalek bo latwo takie osoby wymienic.

Kurde z mojej perspektywy tak to nie wygląda. Pisałem małe popierdółki, teraz pracuję z dużym kodem i jednak wolę to drugie. W małym kodzie jest bardzo duża powtarzalność - robisz wiele trywialnych rzeczy. W dużym kodzie pracujesz na znacznie większej abstrakcji, trzeba zwracać uwagę na jakość kodu znacznie bardziej niż w małych apkach żeby kolega za rok nie stracił pół dnia na zrozumienie Twojego kodu. Wreszcie dochodzi kwestia skomplikowania, gdzie często trzeba się wgryzać w system. Pracując na małych rzeczach bardzo dużo pisałem, teraz mam współczynnik 10:1, gdzie 10 to analiza kodu, a 1 to pisanie nowego. Mi to po prostu bardziej odpowiada. Lubię poprawiać swój kod, refaktorować, wymyślać nowe schemty rozwiązań, uczyć się nowych rzeczy. Widzę ile nauczyłem się pracując z dużym kodem - teraz gdy wracam do małych apek wszystko wydaje mi się takie trywialne i proste. W Javie mnie pociąga to, że tam są jeszcze większe rozwiązania i jeszcze więcej tej abstrakcji. Niektórzy się śmieją z Javy, że tam nawet najtrywialniejsze rzeczy zaczyna się od pisania interfejsów, fabryk itp. ale mi takie podejście odpowiada.

Pinek napisał(a):

20h tygodniowo? Będzie ciężko...

I tego się właśnie obawiam ;-( Miałem nadzieję, że w pół roku da się dojść do do poziomu aby móc gdzieś aplikować.

Wielki Szewc napisał(a):

Z drugiej strony chyba za dobry nie jesteś, albo mieszkasz w małym mieście, bo jak patrzę tutaj justjoin.it/all/php to trochę się to rozmywa z Twoim szklanym sufitem. W dodatku uważasz, że Spring jest trudny, a przecież pełno bootcampowców w nim robi.

Zdecydowanie nie jestem dobry (jeszcze) ;-) Tak jak pisałem mam małe doświadczenie komercyjne, przez co w pewnych obszarach jest (moim zdaniem) całkiem OK i nie odstaję od bardziej doświadczonych kolegów, ale z drugiej jeszcze brakuje mi w niektórych rzeczach podstaw / doświadczenia. Dla przykładu w pracy nad dużym kodem pracuję zdecydowanie wolniej od ludzi z dużym doświadczeniem bo do tej pory pracowałem na małych popierdółkach. Tak więc nie skarżę się, że mało zarabiam, bo wiem z czego to wynika. Bardziej analizuję to co będzie za rok/dwa. Niestety w PHP poza Warszwą, Krakowem i Wrocławiem oferty +15k to rzadkość, a w opinii kolegów raczej górne widełki z ogłoszeń są nieosiągalne. W mojej firmie dla przykładu są w ogłoszeniach widełki do 12-14k, ale w firmie nikt z devów tyle chyba nie zarabia.

Tak więc ogólnie ja nie narzekam na swoje zarobki, tylko bardziej bije się z myślami w stylu "Java/Ruby/PHP mają podobny stack do opanowania jeśli chce się robić poważne rzeczy, a w PHP jednak stawki są ~25-30% niższe, więc może się teraz szybko przestawić, bo za 2 lata będzie bardziej bolało".

PS co do Springa to nie wiem czy jest trudny czy nie - nigdy w Javie nie robiłem nic poza prostymi skryptami konsolowymi dla zabawy. Podobno Symfony w którym pisze mocno na nim bazuje, więc pewnie by mi przyszła nauka dość naturalnie.

0

Nadal dziwne podejscie, w małym programie mogę robić syf a w dużym to nie ? Jak mozna nad duzym kodem pisac wolniej niz na malym. Nie rozumiem pojecia duzy kod ? przeciez jesli apka ma 100 bibliotek w kazdej po 100 klas to co za roznica nad czym teraz pracujesz jesli odwoloujesz sie do metod z dnaje klasy to one sa juz gotowe i zgodnie z zalozeniem gdzie powinno sie klasy rozszerzac zamiast je zmieniac piszesz woje kolejne. Twoja klasa tez jest mala i masz w niej metody dla innych. to co ma do tego standard pisania kodu ? to czy kolega za rok skuma kod czy nie zalezy od umiejetnosci i od Dokumentacji. To nad tym musisz posiedziec, a nie nad tym czy zrobisz 4 wciecia w kodzie czy 2 albo czy klamra otwerajaca bedzie w tej samej lini co nazwa metody czy nizej :)

Panie co zes pan juz napisal w tym php? a gita czy tam svn uzywales ? jakies frejmoworki cos tez ? na razie wyglada jak przerost tresci nad forma. Nie chce ci sie zmieniac na jave ale szukasz motywacji jakiej czy cos :)

2

Niektórzy się śmieją z Javy, że tam nawet najtrywialniejsze rzeczy zaczyna się od pisania interfejsów, fabryk itp. ale mi takie podejście odpowiada.

Masochista. Jeszcze dodaj, że biczujesz się sam wieczorami bo to przyjemne...

Niestety w PHP poza Warszwą, Krakowem i Wrocławiem oferty +15k to rzadkość, a w opinii kolegów raczej górne widełki z ogłoszeń są nieosiągalne.

Jak w wielu innych technologiach.

W mojej firmie dla przykładu są w ogłoszeniach widełki do 12-14k, ale w firmie nikt z devów tyle chyba nie zarabia.

Zrób zatem analizę dlaczego nikt nie łapie widełek bo to iście podejrzana sprawa. Albo team tak 'mocny'. Albo tak się sprzedajecie. Albo szef robi dobrą wędkę po czym ubija was w zarodku i godzicie się na dużo mniejsze stawki (najczęstszy przypadek)

Tak więc ogólnie ja nie narzekam na swoje zarobki, tylko bardziej bije się z myślami w stylu "Java/Ruby/PHP mają podobny stack do opanowania jeśli chce się robić poważne rzeczy, a w PHP jednak stawki są ~25-30% niższe, więc może się teraz szybko przestawić, bo za 2 lata będzie bardziej bolało".

  • Ruby
  • Poważne rzeczy

Wybierz jedno :D

Bzdury piszesz. Albo przeglądasz oferty tu gdzie nie potrzeba. Zarobki w PHP poszły mocno w górę bo wszyscy albo zdecydowana większość ucieka. Z moich kolegów został cały jeden. I wcale nie planuje zmiany bo jak słusznie zauważył dobrych programistów PHP coraz mniej, a potrzeby nie maleją. Jest sporo systemów w tym kraju (własnych produktów) latających na tym języku i to najnowszych jego wersjach. I mam takie dziwne wrażenie, że tych finansowo dobrych ofert w PHP będzie jeszcze przybywać. Będą jeszcze bardziej starannie wyselekcjonowane. Już teraz da się zaobserwować ten trend, że rekrutacje do małych projektów w śmiesznych firmach to mniejszość (przynajmniej tam gdzie ja na to patrzę).

Martwisz się już teraz zarobkami, a piszesz, że jesteś początkujący. A to nie tak działa. Powinieneś się nimi martwić jak będziesz wiedzieć więcej niż ludzie w okół. Na razie z tego co piszesz na to się nie zapowiada, a już rozważasz, że nie dobijesz do granicy 12-14k i więcej. Nie tędy droga. Z takim podejściem to będziesz skakać z technologii na technologię i będziesz dobry tylko w tym.

Dla jasności. Przeglądam oferty na Nofluffjobs i nie pokrywa się to z Twoim marudzeniem. Są mniej kasowe oferty ale oczywiste, że w nich wymaga się mniej. Przykład Mid PHP Dev
https://nofluffjobs.com/job/mid-php-developer-stowarzyszenie-wiosna-d50r9gxy?criteria=php (7-14k). Jak na stanowisko i wymagania (wiadomo, że Nice to have są istotne przy negocjacjach) moim zdaniem nie ma różnicy - dodaj, że w Javie masz pierdyliard bibliotek, frameworków i innych narzędzi około projektowych, których nauka zajmie sporo czasu.

https://nofluffjobs.com/job/software-engineer-stepstone-services-fbtnx7bz?criteria=php - kolejna oferta ze spoko widełkami jak na wymagania.

PS co do Springa to nie wiem czy jest trudny czy nie - nigdy w Javie nie robiłem nic poza prostymi skryptami konsolowymi dla zabawy. Podobno Symfony w którym pisze mocno na nim bazuje, więc pewnie by mi przyszła nauka dość naturalnie.

Nie tyle trudny co uciążliwy. Trudne to jest wszystko na początku. Później staje się albo ciekawe i pociągające albo nudne i uciążliwe. Dokładnie do tego etapu dobrnąłem w swojej wiosennej karierze. Po czym rzuciłem wszystko i wyjechałem w Bieszczady :P

0

Co do tych 20h tygodniowo to według mnie nie ma opcji, żebyś przez kilka miesięcy, tydzień w tydzień, tyle wyrobił ;) wydaje mi się, że wyjdzie mniej tygodniowo.

0

@masterO: przez dużą apkę rozumiem coś co w większości bazuje na interfejsach, a nie implementacji. Czyli w Php to np. Symfony, Zend, Magento itp. Czyli ogólnie coś co mocno bazuje na OCP i innych zasadach SOLID. Lubię kod napisany w ten sposób i w takim kierunku bym się chciał rozwijać. To nie jest tak, że jestem zupełnie początkujący - z gitem pracowałem jeszcze za czasów jak pisałem hobbystycznie. Umiem pracować z git w grupie wg Git flow, z Symfony pracuję już od kilku lat (choć w większości hobbystycznie, ale kilka rzeczy "do klienta" też poszło). Pracuję z zewnętrznymi API itd. Ogólnie mam spore doświadczenie amatorskie, ale brakuje mi doświadczenia komercyjnego z dużym kodem, a to teraz jest mój cel.

@Hispano-Suiza: co do zarobków to się zgadzam w większości z Tobą, ale zauważ, że oferty które linkujesz to są oferty z 3 miast i są to zazwyczaj "perełki", a w Javie dla przykładu to raczej standardowe stawki. W JS i Rubby też jest sporo dobrych ofert. Na ile rozmawiałem z Javovcami to są dość realne stawki, tj. Javoviec z 5 letnim, dobrym doświadczeniem w większości miast +500k mieszkańców jest w stanie znaleźć pracę za 12-16k. W PHP to raczej już trochę jak złapać Boga za nogi, choć z ogłoszeń wygląda to inaczej. Oczywiście może to być błąd poznawczy bo nadal mówimy tu o próbie ~20 osób.
I żeby oddać sprawiedliwość to dokładnie tego się obawiam co napisałeś: "Na razie z tego co piszesz na to się nie zapowiada, a już rozważasz, że nie dobijesz do granicy 12-14k i więcej. Nie tędy droga. Z takim podejściem to będziesz skakać z technologii na technologię i będziesz dobry tylko w tym." Wiem ile czasu kosztowało ogarnięcie ekosystemu PHP aby móc starać się o pracę z prawdziwym kodem, więc ostrożnie podchodzę do zmiany technologii.
Co do samobiczowania przy pisaniu kodu to co zrobić - po prostu bardzo lubię jak kod jest elegancki i elastyczny. Swój staram się właśni tak pisać (choć jeszcze mi daleko do tego).
Co do firmy gdzie pracuję, to takie są realia w moim mieście w Php. Akurat pracodawca jest bardzo fajny i złego słowa nie powiem. Żeby było śmieszniej, to szukając pracy dostałem 2 oferty i wybrałem obecnego pracodawcę choć oferował 25% niższe wynagrodzenie, ale poszedłem bo na rozmowie obiecano mi prace nad czymś co mnie interesowało i sporo nauki - słowa dotrzymali i na pewno jeszcze trochę popracuję w tej firmie. Realnie naukę nowej technologii mogę zacząć za 6-12 miesięcy (teraz mam inne zobowiązania), więc ewentualnie mówimy tutaj o zmianie pracodawcy za ~2 lata.

Choć ostatecznie powoli dochodzę do wniosku, że może faktycznie lepiej być w topie PHP'ców niż przeciętniakiem w Javie. Ostatecznie można szukać pracy zdalnie w PL czy za granicą.

0

co do zarobków to się zgadzam w większości z Tobą, ale zauważ, że oferty które linkujesz to są oferty z 3 miast i są to zazwyczaj "perełki", a w Javie dla przykładu to raczej standardowe stawki.

https://nofluffjobs.com/jobs/java?criteria=java - popatrz na listing miast. Co widzisz? Top miasta. Bez zaglądania w zarobki. Bo Java to kobyła do dużych projektów, a dużych projektów nie robi się w Sosnowcu.

W JS i Rubby też jest sporo dobrych ofert.

  • JS i Ruby
  • Dobre oferty

Tu musisz znowu wybrać jedno. W JS można się pociąć, powiesić, biczować, chlać wódę, palić cygara, wciągać koks, a i tak nie nadążysz za tym ekosystemem bałaganu i katastrofy. Zajrzałem ostatnio do React co by doszlifować front. Doprawdy nie wiem skąd tyle erekcji wśród ludzi od JS. Chyba, że to tylko wśród moich JSowych kolegów co to nawet webscrapping robią w JS.
Ruby to głównie klepanie co moment czegoś nowego dla klientów z USA co potrzebują czegoś na szybko. To okropna technologia (dla mnie). Oferty są za dobre pieniądze ale co z tego skoro rozwoju tam za dużo nie ma. Dobrych praktyk czy muskania projektu również. Wyrabiasz i następne jak na taśmie w fabryce :-)

W PHP to raczej już trochę jak złapać Boga za nogi, choć z ogłoszeń wygląda to inaczej. Oczywiście może to być błąd poznawczy bo nadal mówimy tu o próbie ~20 osób.

A ja dalej sądzę, że przesadzasz.

więc ewentualnie mówimy tutaj o zmianie pracodawcy za ~2 lata

Za 2 lata to może nastąpić miliard innych zależności i Java upadnie :D

Choć ostatecznie powoli dochodzę do wniosku, że może faktycznie lepiej być w topie PHP'ców niż przeciętniakiem w Javie.

Mądry wniosek. Zważywszy na tłok w Javie. Wszyscy tam pędzą w pogoni za fortuną. Stado baranków, a bycie stadem nie spowoduje, że będziesz wyjątkowy.

Ostatecznie można szukać pracy zdalnie w PL czy za granicą.

Zdalnie masz szeroki wachlarz opcji. Kolega pracuje od 5 lat zdalnie. Realnej pracy ma na 4-6h dziennie, a resztę czasu pożytkuje na granie i tycie. Więc uważaj żeby nie dobić do 130kg wagi przy 174cm wzrostu :D

3

Ogólnie poznanie nowego języka i środowiska to zwykle jest dobry pomysł. Tylko nie rozumiem tej motywacji z dużymi systemami:
dlatego, że w tym języku pisze się duże opgrogramowanie .
Przyznam, że mimo , że jestem javowcem to raczej staram się dużych systemów unikać, głównie dlatego, że wiekszość z nich jest dużych tylko dlatego, że to daje orgazm niektórych architektom. Wystarczy do wszystkiego dorabiać interfejsy, dorzucać do każdej encji DTO, ETO, CTO wrzucić DDD, wszystkie patterny i już z małego FizzBuzz robi się duży system. Co więcej strasznie dużo w nich jest powtarzalnych rzeczy. Uwielbiam jak mam 5 stroniciowy guide jak opisujący jak dorzucić formularz z dwoma polami do systemu - 20 klas. A do tego jeszcze pluginy generujące kod (do Eclipsa :/ ).
Od dłuższego czasu staram się robić małe systemy, nawet nie mówię tu o mikroserwisach. Po prostu YAGNI działa.

1
jarekr000000 napisał(a):

Wystarczy do wszystkiego dorabiać interfejsy, dorzucać do każdej encji DTO, ETO, CTO wrzucić DDD, wszystkie patterny i już z małego FizzBuzz robi się duży system.

@alireza Świetny przykład. FizzBuzz zapewne znasz (jeśli nie -> google). Masz tu wersję Java :-)
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

0
alireza napisał(a):

@masterO: przez dużą apkę rozumiem coś co w większości bazuje na interfejsach, a nie implementacji.

Masz dziwnie spaczone podejście do interfejsów. One są przydatne w paru sprawach, ale nie zastąpią implementacji. Aplikacja bazująca w większości na interfejsach nie dostarczy zbyt wiele wartości.

Czyli ogólnie coś co mocno bazuje na OCP i innych zasadach SOLID.

Do OCP (ani innych zasad SOLID, nawet tej, która ma Interface w nazwie) interfejsów nie trzeba.

1

Do tego co pisał @jarekr000000 dodam, że mnie za każdym razem dziwi dlaczego pracodawcy piszą w ogłoszeniach
"jeśli lubisz wyzwania, duże i skomplikowane systemy to ta oferta jest dla Ciebie".
(w domyślne systemy z mnóstwem zależności, implementacja własnego LISPa wewnątrz, rozkminianie zamiast kodowania)

0

Duże projekty to zwykle wielkie bagno, bo są pozostałości starej architektury, którą trzeba utrzymywać i brakuje czasu na przeoranie tego, a później programista jak chce coś naprawić to błądzi po kodzie i trwa to zamiast 5 minut, to tydzień :P

Dodatkowo zwykle są to aplikacje napisane w Javie, bo kiedyś przy wyborze stwierdzali, że jest obiektowy, czytelny, hermetyczny itp. i niestety nie jest to wina języka lecz architektury, która nie jest przebudowywana i uproszczana, bo biznesowo się nie opłaca itp.

Jeżeli chodzi o naukę Javy to polecam, całkiem fajny język, ale nie musisz zmieniać PHP na Javę :P
Ps. PHP7 to naprawdę fajny język programowania.

0

Kończąc ten wątek. Duże projekty w PHP oznacza co innego niż w Javie ;-) Nie chodzi mi o to aby być trybikiem w maszynie, ale też nie chcę robić zupełnie prostych i powtarzalnych projektów. Może to dziwne, ale lubię przepisywać kod na nowo aby był on bardziej elastyczny i ogólnie lepszy. Lubię stosować standardy typu PSR itp itd. Myślę, że idealne projekty to takie robione w 5-10 osób.
Co do tego, że PHP jest fajnym językiem to nie mam co do tego wątpliwości. PHP 7+ ma bardzo fajne rozwiązania obiektowe (prywatnie uważam, że wiele "chwalonych" języków pod tym względem ustępuje PHP), które są kopią Javy. Wiele osób narzeka w PHP na dynamiczne typowanie (co mnie dziwi bo wiele języków jest typowanych dynamicznie, również te "trendy") - co ciekawe jednak w praktyce developer może go przekształcić w język silnie typowany bo przecież typując wejście i wyjście z klas w połączeniu z "declare_static = 1" mamy praktycznie silne typowanie na życzenie (i w zasadzie w dzisiejszym PHP takie podejście to jest standard). Mamy nowoczesne zarządzanie wyjątkami, fajne i nowoczesne biblioteki, system do zarządzania zależnościami. Wydajnościowo PHP ustępuje w zasadzie tylko językom kompilowanym. W PHP stosuje się obecnie na porządku dziennym wszystkie chyba mechanizmy związane z OOP typu DI itp. Dzisiejsza składnia pozwala pisać kod praktycznie bez komentowania go (już chyba tylko brakuje wyjątków w sygnaturach funkcji i typowanych tablic, ale to drugie akurat i tak w 95% osiąga się kolekcjami).
Ogólnie jak ktoś hejtuje dzisiejszy PHP (a nie to co działo się ~10 lat temu) to raczej nie wie o czym mówi. Nie jest to język idealny, ale pod swoje zastosowania fajny. Tak więc do samego PHP mnie nie trzeba przekonywać. Jedyne co mnie boli to nadal średnie zarobki (ale fakt PHP ma obecnie największą dynamikę wzrostu wynagrodzeń, więc może faktycznie kiedyś zbliży się do czołówki) oraz ciągnąca się łatka "amatorskiego" języka przez co relatywnie trudniej znaleźć pracę w poważnych i ciekawych projektach. Choć może po prostu trzeba się przenieść do Krakowa ;-)
Plusem (z mojej perspektywy) jest zapewne to, że szybciej można stać się "seniorem" bo co już teraz widzę gołym okiem, na rynku nie ma programistów PHP z dużymi skillami.

No nic Javę muszę sobie przemyśleć. Na pewno coś oprócz PHP będę chciał robić na poważnie, ale z Javą to uważam, że albo na 100% albo wcale. Bardziej chyba pomyślę w kierunku JS/Node jako uzupełnienie PHP.

0

Nie zmieszcze się w komentarzu, więc odpowiadam pod swoim postem:
@somekind: Ruby, Python, JS mam tu na myśli. Jakoś im uchodzi to dynamiczne typowanie, a w PHP to nagle wada zgodnie z zasadą, że jak się chce uderzyć psa to kij się zawsze znajdzie. Abyśmy mieli pełną jasność ja też uważam, że dynamiczne typowanie jest wadą i sam odkąd pamiętam na to narzekałem, bo to powodowało konieczność pisania tony bzdurnej dokumentacji funkcji , powodowało głupie błędy, które potem trudno było wyłapać etc. Warto tylko zauważyć,że tak jak pisałem w PHP obecnie jest możliwość wymuszenia typowania metod w klasach (w trybie strict jest blokada automatycznej konwersji nawet). Metody mogą również mieć określony typ zwracany (znów bez automatycznej konwersji typu czy nawet zwrócenia null zamiast obiektu). Więc całkiem spoko na tle "konkurencji".

Wiem, że PHP ma swoje "dziwactwa" i niekonsekwencje, ale bez przesady - od wersji 7 to jest całkiem fajny język biorąc pod uwagę jego zastosowania i do tego chyba najwydajnieszy na tle konkurencji w segmencie small&medium web. Da się w nim pisać brzydko? Pewnie, że się da - a w którym języku się nie da? Jak widać po wielu ciekawych projektach w PHP da się też zrobić całkiem fajne rzeczy zgodnie z najlepszymi praktykami.

Więc ogólnie ja uważam, że PHP obecnie to jest bardzo fajny język - z tych, które próbowałem w nim mi się najlepiej pisze (choć to pewnie wynika z faktu, że uczyłem się technik OOP z materiałów do JAVY, a PHP w wersji 7.x kopiuję Javę na potęgę, zresztą tak samo robią twórcy samych bibliotek. Robi się taka "Java dla ubogich" ;-)

2

Są ludzie, których podnieca dynamiczne typowanie i tacy, których nie kręci wcale. Kierunek w którym ja aktualnie zmierzam wymaga ode mnie znajomości Pythona. Nim spróbowałem usłyszałem ze 100 opinii jaki to wspaniały, przejrzysty, czytelny oh, ah język. W ogóle go nie czuję. Średnio mi pasuje ta jego czytelność, wyrzucanie errorów jest strasznie syfiaste i często nie bardzo wiem o co chodzi, a do tego dynamiczne typowanie mnie zniechęca.
Ruby to podjęzyk. Nie rozumiem Cię bo z tego co piszesz to tak jakbyś chciał koniecznie porzucić to PHP na korzyść Javy z jakichś wymyślonych powodów. To jest straszne kombinowanie z Twojej strony.
Pchasz się do jednego z większych syfów w obecnych czasach i nie mam tu na myśli projektów, a spędu wannabe programistów, których w przeciągu ostatnich dwóch lat naprzyjmowano garściami i teraz rynkowi odbija się to lekka czkawką.
Ja sam rzuciłem swoją ścieżkę związaną z tym ekosystemem z różnych względów i dziś sądzę, że to była bardzo dobra decyzja. Po roku czasu udało mi się pozbyć wielu kiepskich nawyków chociaż dalej mam problemy z przestawieniem się z myślenia w Javie.

Dam CI ostatnią wskazówkę nietechniczną. Nie wiem co Ci odpowiada w programowaniu ale zakładam, że jest to określony typ projektów. Przejrzyj interesujące Cię technologie i poczytaj co w nich się pisze. Zerknij na jakieś projekty czy to na github czy nawet w tutorialach na yt. Obejrzyj kilka lekcji jak ktoś pisze jakikolwiek projekt. Mimo, że programowanie w każdym języku działa tak samo to projekty są naprawdę różne (jeden z powodów dla których rozstałem się z Javą). Dobierz sobie taki zestaw, który da Tobie radość i satysfakcję. I uwierz tym, którzy kopią się w dużych, starych systemach, że to nie jest fajne zajęcie - ale ktoś to musi robić :P

Mój dobry kolega ze studiów rzucił PHP, rzucił pracę na rok. W rok ogarnął NodeJS (dziwak-entuzjasta JS). Nie szedł w korpo projekty i języki bo ten typ projektów wcale go nie interesował. I owszem możesz trafić do fajnej firmy w naprawdę fajne projekty i nowoczesne w Javie. Ale ja znam całe 2 firmy (pamiętam jedną z Wrocławia, druga była/jest w Krakowie), która jest typowym software house i chyba mają dość świeże technologie i co jakiś czas nowe projekty. W takim miejscu na pewno człowiek chciałby pracować. Tylko takich miejsc jest promil przy ilości chętnych.

Ostatni hint ode mnie. Zrób skill w PHP. Dorzuć do tego jakiś framework. Weź udział w co najmniej kilku projektach, a później pomyśl nad zmianą. Język możesz mieć najpiękniejszy. Możesz uczyć się na C# 8 (chyba jeszcze nie ma), a w pracy będziesz używać C# 5 i na nic Twoja zmiana :P

0

W PHP na pewno na jakiś czas zostanę. Tak jak piszesz muszę w czymś przeskoczyć etap "początkującego", a PHP już znam wraz z ekosystemem. Wiem z grubsza co sprawia, że jestem kiepskim programistą i jestem obecnie w miejscu, gdzie zdobywam potrzebne mi skille / uzupełniam braki. Myślę, że to jest miejsce na przynajmniej rok albo i dłużej dla mnie. Kusi mnie to przebranżowienie, ale może faktycznie nie jest to najlepszy pomysł. Myślę też o innych wariantach tj. wejście głębiej w JS (średnio mi się ten język podoba, ale dobrze pasuje do PHP - takie rzeczy jak node, angular, react dobrze znać chociaż na podstawowym poziomie robiąc w webie), albo pójście sam nie wiem jak to określić - takie coś a'la devops, czyli programista ze skillami w CI/CD/automatyzacja testów, AWS itp. Wydaje mi się, że PHP teraz idzie w tą stronę i będzie potrzeba na osoby z szerokim spektrum umiejętności w tych kierunkach, a teraz takich osób w PHP nie ma. To drugie podejście odpowiada mojej naturze i byłoby ciekawe, ale pytanie czy rynek na to będzie.
No nic. Było nie było dzięki za dyskusję. Chyba faktycznie z tą Javą/Ruby to był poroniony pomysł. Musiałbym zrezygnować z tego co już umiem i tracić czas na dojście do tego samego poziomu w innej technologii, a nie jest powiedziane, że tam będzie sporo lepiej. Chyba faktycznie lepiej wyspecjalizować się w samym PHP i zostać tutaj specjalistą wysokiej klasy z szerokim spektrum umiejętności poza samym PHP. Muszę sobie to jeszcze przetrawić przez najbliższe tygodnie i na coś się zdecydować.

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