Java - web vs android

0

Cześć

Od dość długiego czasu zajmuje się androidem, natomiast ostatnio bawiłem się sporo technologiami webowymi javy (jsf i spring mvc).
Niedługo chciałbym podjąć pracę - oba kierunku jarają mnie tak samo. Teraz w zasadzie rzecz sprowadza się do pytania:

Gdzie są lepsze zarobki i szanse na rozwój (która technologia jest bardziej przyszłościowa)?

0

Gdzie są lepsze zarobki i szanse na rozwój (która technologia jest bardziej przyszłościowa)?

Tam gdzie cię bardziej jara.

Niedługo chciałbym podjąć pracę - oba kierunku jarają mnie tak samo.

Pozostaje losować :)

0

Z jednej strony wszystko co nowe uderza jako web, z drugiej - kogokolwiek się nie zapytasz - każdy dział "mobilków" chętnie przytuli nowe osoby. Tu i tu na brak pracy nie będziesz narzekał

7

web + reszta javowych projektów:

  • bardziej ustabilizowany rynek
  • stabilne narzędzia, IDE i frameworki do testów
  • więcej ofert pracy
  • w większości lepsze zarobki
  • jest mniej projektów w najnowszych technologiach, ale są (głównie w mniejszych firmach lub tych, które utrzymują swoje własne produkty)
  • często można trafić na przestarzały kod, gdzie nie ma najnowszych rozwiązań (głównie w korporacjach)
  • można trafić na 15-letni lub 25-letni legacy code, który nie zawsze jest zadbany

android:

  • mniej ustabilizowany rynek
  • mniej ofert, ale pojawia się coraz więcej
  • mniej stabilne narzędzia i frameworki do testów, choć Android Studio jest już w wersji 1.0 i testy automatyczne też da się pisać
  • zdarzają się oferty z dobrymi zarobkami, jest ich coraz więcej i będzie coraz więcej, bo rynek się rozwija
  • cały czas pracujesz z najnowszymi technologiami
  • możesz wchodzić w interakcję ze sprzętem (sensory, czujniki, kamera) oraz różnymi połączeniami sieciowymi (WiFi, Bluetooth, 3G)
  • najstarszy legacy code zazwyczaj ma góra 2 lub 3 lata (w teorii maksymalnie może mieć 8, ale to się chyba rzadko zdarza)
  • projekty muszą być dostosowane do najnowszych standardów i technologii, bo inaczej wypadną z rynku i ludzie przestaną tego używać

Gdzie są lepsze zarobki i szanse na rozwój (która technologia jest bardziej przyszłościowa)?

Moim zdaniem obie. Wybierz to, co Ci się bardziej podoba.
Tak naprawdę po opanowaniu Javy na jakimś sensownym poziomie możesz pisać spokojnie aplikacje mobilne, webowe i inne w tym języku. Wystarczy, że douczysz się danego frameworka. Najważniejsze jest to, gdzie trafisz i z kim będziesz pracował. To jest chyba nawet ważniejsze, niż sama technologia. Jeśli wylądujesz wśród ogarniętych ludzi, którzy chcą się rozwijać, to też się rozwiniesz bez względu na to, co konkretnie będziesz robił.

1
wiciu napisał(a):

web + reszta javowych projektów:
[...] Najważniejsze jest to, gdzie trafisz i z kim będziesz pracował. To jest chyba nawet ważniejsze, niż sama technologia. Jeśli wylądujesz wśród ogarniętych ludzi, którzy chcą się rozwijać, to też się rozwiniesz bez względu na to, co konkretnie będziesz robił.

+100. Podpisuję się pod tym rękami i nogami.

0

IMHO w Javie w Polsce można więcej zarabiać, choć wg statystyk średnia jest wyższa w Androidze. Tzn jeśli zamierzasz być średniakiem, to idź w stronę Androida. W UK i Niemczech programiści Androida też średnio zarabiają lepiej niż webowi, więc jak zamierzasz emigrować to możesz spokojnie iść w tym kierunku.

0

Tu masz zestawienie i aplikacje mobilne są na szczycie:
user image
Ale jeśli przejrzysz oferty tu: Praca to zobaczysz, że zarobki programistów Android prawie nigdy nie przekraczają 10k PLN, a programistów Javy web, czy Ruby czasami tak.

Co do UK, to masz to zestawienie ogólne:
http://www.itjobswatch.co.uk/ , dla Javy średnia to: £50,000 a tu średnia dla Androida też 50kGBP http://www.itjobswatch.co.uk/jobs/uk/android%20developer.do a tu dla Springa też 50kGBP http://www.itjobswatch.co.uk/jobs/uk/spring.do
Czyli wychodzi, że nie miałem racji - w UK nie ważne co wybierzesz, będziesz tyle samo zarabiać.
Dla Niemiec nie mam takich danych, ale z własnego doświadczenia wiem, że jest bardzo duże ssanie na programistów Android i pewnie łatwiej jest dostać dobrą robotę bez super doświadczenia niż w Javie web, gdzie jest większa konkurencja innych programistów. (co nie znaczy, że jest tam źle, bo jest odpowiednio większy wybór ofert, stąd też łatwiej o dobrą pracę w mniejszym mieście)

1

Siedze w web. Chce sie w wolnym czasie pobawic androidem.

Mozecie cos polecic do nauki?

0

Nie chce zakladac nowego tematu.

Pracuje w Java Web Backend. Spring, Hibernate, JPA, Rest, Jersey, Gradle itp. czuje sie z tym komfortowo. Po roku pracy troche sie nudzę. Bo ostatnio malo nowych rzeczy. Rozwazam zmiane pracy, ale... poki co...
Czy mozecie mi cos polecic do nauki, na boku?
Chciałem trochę messagingu, wiecej concurrency itp. ale bez realnych problemow nie czuje by mi szla taka nauka.

JS? Scala? Android? RxJava?

0

poradzicie towarzysze?

0

Skoro siedzisz w Javie a chcesz rozwinąć pewne umiejętności które posiadasz i jednocześnie nauczyć się nowego języka to Scala będzie naturalnym wyborem. Przy okazji skup się też na nauce paradygmatu funkcyjnego, nie bądź jednym z tych którzy przeszli na Scale i używają jej jak Javy bo to marnowanie potencjału języka.

http://stackoverflow.com/questions/4477809/why-is-scala-good-for-concurrency

0

No ciagnie mnie do Scali.
Kupilem sobie ksiazke Functional Programming in Scala , zaczalem czytac i zapowiada sie ciekawie.

0

Rób wszystkie ćwiczenia, nie tylko czytaj, na tym opiera się ta książka. Część nie jest prosta, ale nie zniechęcaj się ;)

0

To w sumie zapytam.

FP jest spoko ale w sumie srednio wyobrazam sobie miec czysto FP produkcyjny kod, a raczej mix. Czy myslisz podobnie?

Ale rozumiem, ze i tak warto poznac.

1

Nikt nikokomu nie każe stosować czystego FP w produkcyjnym czy też biznesowym kodzie. Nie popadajmy w skrajność (niestety my, ludzie mamy do tego tendencje). Rzecz w tym że nauka FP znacznie poprawi Twoje zdolność programowania w ogóle. Kiedyś przerobiłem małą książeczkę o programowaniu funkcyjnym i znacznie zmieniła moje podejście do programowania. Zacząłem częściej stosować delegaty (C#) i pewne podejścia typowe dla programowania funkcyjnego. Czy porzuciłem całkowicie podejście obiektowo-proceduralne? Nie, bo było by to błędem w mojej pracy. Wiem natomiast i muszę przyznać że gdyby nie ta lektura to dziś pewne część mojego kodu wyglądała by gorzej. Znacznie poprawiły się moje umiejętności programowania i dostosowania konkretnych technik w zależności od problemu. Zacząłem też znacznie więcej rozumieć (np. kiedyś używałem wyrażeń lambda i metod anonimowych nie rozumiejąc tak naprawdę jak to się dzieje że robią to co robią). Reasumując nauka FP wyjdzie Ci zdecydowanie na plus, jednocześnie nie będzie oznaczała konieczności przejścia na czysty FP (no chyba że zabierzesz się za naukę Haskell'a albo podobnego) bo zwyczajnie nie zawsze jest on najlepszym rozwiązaniem.

EDIT: A co do mixu- kiedy już poznasz FP sam zaczniesz używać taki "mix" i dostrzeżesz tego piękno ;)

0

Thx. To tak jak myslalem. :)
Ale chcialem mimo wszystko sprostowac. Lubie w javie guave i wersje 8 i pewne ficzury zdecydownie polepszaja kod. Scali troche zdazylem liznac i tez stwierdzilem, ze FP uczyni mnie lepszym programista i nauczy pewne problemy rozwiazywac inaczej.

Czytajac wstep tej ksiazki to wydaje sie przystepna, ale dalej pewnie bedzie trudniej ;)

0

Odświeżam trochę temat. Jestem studentem, nie widzę prawie w ogóle ofert na programistę Androida(Krk), może jakiś słaby okres. Co do JavaEE Spring, Hibernate itp. jest ich masa, znajdzie się też dużo dla studentów.
Zastanawiam się trochę czy Wasze posty są dalej aktualne(te z 2015). Czy warto rozwijać się w Androidzie, jeśli chodzi o zarobki?
Co do programowania, miałem styczność z webem(Spring, Hibernate) ale tylko po to, żeby wiedzieć co to jest. Wolę pracę w aplikacjach mobilnych.
Nie ukrywam, że zarobki mają też duże znaczenie, więc czy warto iść w tym kierunku? Czy może lepiej robić sobie coś po godzinach, a realne pieniądze zarabiać gdzie indziej?

1
Krwawy Terrorysta napisał(a):

Odświeżam trochę temat. Jestem studentem, nie widzę prawie w ogóle ofert na programistę Androida(Krk), może jakiś słaby okres. Co do JavaEE Spring, Hibernate itp. jest ich masa, znajdzie się też dużo dla studentów.
Zastanawiam się trochę czy Wasze posty są dalej aktualne(te z 2015). Czy warto rozwijać się w Androidzie, jeśli chodzi o zarobki?
Co do programowania, miałem styczność z webem(Spring, Hibernate) ale tylko po to, żeby wiedzieć co to jest. Wolę pracę w aplikacjach mobilnych.
Nie ukrywam, że zarobki mają też duże znaczenie, więc czy warto iść w tym kierunku? Czy może lepiej robić sobie coś po godzinach, a realne pieniądze zarabiać gdzie indziej?

Widziałem oferty związane z Androidem w Krakowie. Nie będę ich tutaj wypisywał. Poszukaj lepiej ;). Jest ich mniej, niż np. dla back-end developerów, ale są. Rób to, na co masz teraz ochotę. Uważam, że w jednym i drugim kierunku można znaleźć dobrze płatną i ciekawą ofertę. Zawsze możesz popracować trochę jako mobile developer, trochę jako web developer, a potem jako ktoś jeszcze inny w innym języku, niż java. Nie wydajesz na siebie wyroku. Będziesz miał wtedy bardziej wszechstronne doświadczenie i wcale nie jest powiedziane, że przy ewentualnej zmianie pracy na inną rolę spadnie Ci wynagrodzenie. Sam pracowałem trochę z Androidem, trochę z aplikacjami webowymi (miałem nawet bardzo krótką przygodę z apkami na desktopa) i nie widzę problemu w nauce nowych rzeczy. Przy takim podejściu nie masz klapek na oczach, masz pojęcie o różnych technologiach i dzięki temu jesteś o krok do przodu przed innymi. Poza tym, pytałeś w czym warto się rozwijać. Wg mnie najważniejsze rzeczy, w których należy się rozwijać, to podstawy - Core Java, Clean Code, TDD, język angielski, umiejętność komunikacji i pracy w zespole. Frameworki i technologie przychodzą, odchodzą i ciągle się zmieniają, a pewne fundamenty nie.

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