Java w co warto inwestować czas?

Java w co warto inwestować czas?
tomas1704
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

Kończę pisać pracę inż. i spodobało mi się pisanie w Java. Tak się zastanawiam w co warto inwestować czas aby rozpocząć pracę zarobkową jako programista tego języka. Gdzie można najwięcej zarobić i dlaczego?
Które frameworki opanować i na czym się skupić najbardziej?
Czy opłaca się nauka JavaFX, ME?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 10 godzin
0

JavaME umiera, JavaFX zmienia właśnie swoją postać (Oracle wywala JavaFX Script). Jeśli chcesz pisać aplikacje na komórki w Javie to wybierz Androida.

Jeśli chcesz pisać aplikacje webowe to z frameworków do tworzenia GUI polecam Apache Wicket (do indeksowalnych stron; wersja 1.5 niedługo oficjalnie wychodzi, polecam olać poprzednie wersje), Google Web Toolkit (jeżeli nie zależy ci na indeksowalności). Przy pisaniu aplikacji webowych musisz dostać się do bazy - polecam więc naukę JPA (najlepiej także JPA2). Do wstrzykiwania zależności polecam Google Guice.

Jeśli jesteś ambitny to możesz np nauczyć się programowania pod Google App Engine (skoro zaczynasz z Javą i nie znasz Javowych ORMów albo może i nie znasz SQLa to nie zrazisz się Datastorem Googla). Albo, lepiej, nauczyć się języka Scala i pisać aplikacje we frameworku Lift (liftweb.net). Tyle, że przynajmniej w Polsce ciężko znaleźć w tym pracę.

Generalnie ekosystem Javy to tysiące frameworków, ciężko wybrać te które się najbardziej przydadzą czy pomogą w znalezieniu pracy. Ogólnie jak pójdziesz do roboty to i tak firma będzie używać kilku otwartych frameworków + kilka swoich. Musisz orientować się w technikach pisania programów w ogólności, pisząc programy w nowoczesnych frameworkach prędzej nabierzesz takich umiejętności.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
lipkerson
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
0

A JSF?


Another jam from the world for the jam from the voices of the world......
Wibowit
Apache Wicket został stworzony właśnie dlatego, że JSF był przestarzały i mało elastyczny. Twórcy tworzyli jakiś komercyjny portal, a gdzieś w połowie tworzenia projektu klient zażyczył sobie zmiany, niewielkie z punktu widzenia użytkownika (kilka dodatkowych pól w formularzu, kilka dodatkowych drobnych funkcjonalności), ale wymagające sporego przebudowania kodu. Konstrukcja Apache Wicket, który stosuje zagnieżdżone komponenty (po których można dziedziczyć tak jak po klasach w Javie), a nie kontrolery, powoduje że zmiany są lokalne i wymagają niewielkiego wysiłku.
tomas1704
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

Wielkie dzięki za odpowiedz pomysł z androidami oraz aplikacjami webowymi bardzo mi się podoba. Co do JPA to już trochę o tym wiem i opanowałem cześć hibernate bez adnotacji i tworzenia zawiłych relacji, potrafię połączyć się z daną bazą i operować na rekordach analogicznie JDBC.
A jak z praca w tym kierunku - aplikacje na telefon/ aplikacje webowe?
Ponad to z twojej wypowiedzi wnioskuję że dobry programista to taki który zna i potrafi zastosować wiele frameworków tak?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 10 godzin
0

Dobry to taki, który szybko potrafi się zorientować we frameworku i optymalnie go wykorzystywać.

Ogólnie praca na Androida jak i JavęEE jest i nawet jest jej sporo. Zarejestruj się na infopraca.pl i czekaj na emaile z ofertami pracy :P

Z szeroko używanych frameworków to jeszcze np Spring, ale myślę, że już go dobrze znasz. Poza tym dziesiątki projektów Apache, w firmie C****** gdzie pracowałem, wykorzystywano co najmniej kilka projektów Apache. Jest ich tyle, że bardzo często któryś się przydaje.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
tomas1704
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

Wreszcie jakiś kierunek w którym można podążać ;]
A powiedz od czego zacząć najlepiej + ksiazki/tutki i dokumentacja ofc jeśli możesz? ;]

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 10 godzin
0

Sam generalnie uczę się z neta, bo zwykle programuję w nowinkach, które są niedojrzałe i szybko się rozwijają. W Wickecie rzeźbiłem jeszcze gdy nie był popularny w Polsce, teraz np rzeźbię w OpenCLu (to jest w ogóle niedojrzałe, szczególnie w wydaniu AMD, na którym pracuję).

Spokojnie jednak możesz znaleźć jakąś książkę teraz dla Wicketa, JPA2, Springa etc po angielsku. Szukaj w Google, na stronach wydawnictw, czy też na stronach samych frameworków.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
tomas1704
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

Może inaczej zapytam. Co powinienem najpierw opanować abym mógł podjąć stosunkowo szybko prace i później rozwijać się dalej?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 10 godzin
0

Wydaje mi się, że Android to dużo mniej skomplikowana i rozbudowana platforma niż JavaEE. Więc jeśli chcesz szybko znaleźć pracę to chyba Android jest lepszym rozwiązaniem. Żeby jako-tako pisać duże aplikacje webowe w Javie to wg mnie trzeba poświęcić ze dwa lata i to solidnie. Aplikacje na telefony są z reguły małe, więc nie ma ryzyka jak w JavaEE, że trafisz do projektu-krowy mającego 10 lat. Z drugiej strony jeśli ma się duże doświadczenie i szczęście to w JavieEE można zarobić grubą kasę - ale to tylko nieliczni. Generalnie nie mam więc jakiejś ostatecznej super-propozycji.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
remigio
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 8 lat
  • Postów:357
0

Ja bym tu jeszcze dodał że nie samą Dżawą programista żyje...proponowałbym też jakąś bazę (może oracle? )

0

No ale taki Junior Java Developer chyba nie musi mieć całej JaveEE w głowie ?

Wibowit
A jak można mieć całą JavęEE w głowie? :P Jasne, że nie może mieć całej, ale musi znać chociaż pobieżnie kilka frameworków.
__krzysiek85
  • Rejestracja:ponad 18 lat
  • Ostatnio:ponad 9 lat
  • Postów:1019
0

Mam 4 lata doświadczenia w programowaniu w Javie, 2 lata w pracy zarobkowej i powiem tak:
Nie ma co się nastawiać na konkretny framework webowy. Na początku też myślałem "nauczę się frameworka X i będę w tym robił przez najbliższych kilka lat". Prawda jest natomiast inna - to nie od developera zależy wybór frameworka. Inna sprawa, że dochodzę do wniosku, że programowanie w jednej technologii byłoby nudne.
W firmie, w której pracuję jest wiele różnych projektów wykonanych w różnych technologiach.
Jednego dnia używam Tapestry, drugiego Seama, a trzeciego Fleksa.

Oczywiście na początku należy zapoznać się z jednym, czy dwoma frameworkami oraz rozpoznać rynek (czym charakteryzują się najpopularniejsze frameworki). Istotniejsze jest jednak coś innego - nauka porządnego pisania backendu przy użyciu takich technologii, jak EJB, Spring, JPA, Hibernate oraz poznanie "dodatków" typu log4j, maven, junit (włącznie z mockowaniem), jakiegoś IDE (eclipse/netbeans/idea).
Znajomość SQLa też zwykla jest bardzo ważna (niektóre firmy zatrudniają jednak oddzielnych specjalistów od baz danych). Najpopularniejszymi bazami są Oracle i MS SQL.


Registered Linux user #456405 | SCJP 6 | SCWCD 5 | SCBCD 5
edytowany 3x, ostatnio: __krzysiek85
VG
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 8 lat
  • Postów:79
0

Podepnę się pod temat z pytaniem.
Czy znajomością samej Javy SE wykorzystywaną przy pisaniu własnych aplikacji desktopowych wzbudzę jakiekolwiek zainteresowanie na rynku pracy, czy raczej takim zakresem umiejętności w tym języku nic nie osiągnę? Co prawda na razie jestem zawodowo związany z PHP, ale o ile przy ostatnim szukaniu pracy Javy praktycznie nie miałem w CV (znałem tylko totalne podstawy), teraz chciałbym ją dodawać jako atut, tyle, że nie wiem, czy to faktycznie jest atutem w obecnej formie.
Czasami rozważam zainteresować się EE, tyle, że na własne potrzeby jest to dla mnie dublowanie technologii (do tworzenia aplikacji webowych mam PHP). Więc dopóki taki rozwój nie jest niezbędny zawodowo, Javę preferuję używać do tego, do czego jej na start potrzebowałem, czyli desktop.


edytowany 1x, ostatnio: VGT
0

Czesta pomylka - Java EE to niekoniecznie aplikacje webowe, to o wiele wiele wiecej.

0

To co jest jeszcze takiego w Javie EE? Jako ignorant wiem tylko o aplikacjach webowych.

0

Czyli wiesz tylko o servletach, jsp, tomcacie i tonie frameworkow na tym budowanych. A EJB (rozproszone komponenty), JTA (rozproszone transakcje, zarzadzane przez kontener), od wersji 6 bardzo zaawansowane wstrzykiwanie zaleznosci z CDI, JPA (O/RM), JCA (integracja innych systemow aby umialy wspoldzialac np w transakcjach JTA), JMS (asynchroniczne i skalowalne przetwarzanie wiadomosci), itd.
Dla przykladu, my aktualnie uzywamy Javy EE 6 a aplikacja jest napisana w Swingu i rozprowadzana za pomoca Java Web Start. Nie mamy ani jednego servleta, zadnego frameworku webowego, a jednak wydaje nam sie ze EE ma sens. Ostro korzystamy z EJB, JTA, JPA, CDI, Web Servicow.

EE to moloch, ale da sie ja opanowac - to skonczona liczba stron specyfikacji, raptem pare tysiecy w sumie dla wszystkich technologii ;d Co jest niemal nieskonczone to frameworki ktore korzystaja z jej czesci, spinaja, ulatwiaja, utrudniaja, zmieniaja, spawaja, udziwniaja...

0

W co warto inwestowac: moim zdaniem w to co Cie interesuje. Widzisz kariere jako programista aplikacji klasy enterprise - ucz sie EE, widzisz sie jako programiste modile - idz w Androida. Nie wszystko na raz; ale jak nabedziesz troche oglady i doswiadczenia to w miare szybko lykniej zasady i nauczysz sie innych frameworkow i bibliotek.
Nie zapomnij, jak juz ktos wspomnial, ze nie tylko Java jest na swiecie. Jest wiele innych ciekawych rozwijajacych sie technologii i jezykow, chociazby na JVM, ktore moim skromnym zdaniem wypra Jave predzej czy pozniej. Java jako jezyk to padlina (ponownie, moja opinia).

szypxx
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

W takim razie na jakie aplikacje będzie popyt w przyszłości - powiedzmy najbliższe 10 lat ? (Ułatwi wybranie języka)
Na pewno apl. na urządzenia mobilne - ale jakie jeszcze.

0

A kto to moze wiedziec?
Co do mobilnych to z tego podobno trudno wyzyc, czytalem jakis czas temu raport ze tylko niewielki odsetek programistow piszacych na iGadgety (ok 5%) moze sie utrzymac tylko z tej dzialanosci. Na androida prawie wszystko za darmo albo marne grosze (nie moge zacytowac, nie pamietam gdzie to czytalem).

szypxx
Nikt trendów nie potrafi dziś przewidzieć ?
szypxx
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

W ramach off top'u< jeśli można...
Ja np. czasem myślę o J2ME (jak ogarnę bardziej Javę) - dlaczego ?
A no dlatego że komórkę masz zawsze przy sobie (prawie zawsze).
Jeśli potrzeba używać aplikacji "gdzieś" gdzie nie ma, albo nie można mieć kompa, albo nie chce ci się taskać kompa(lapka) - masz komórkę., tableta.
Oczywiście to nie jest pomysł dla zawodowego programisty bo on nie pisze programów dla siebie - przeważnie. Ale jest to ciekawa opcja.

edytowany 1x, ostatnio: szypxx
tomas1704
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

Nie chcę zarabiać kokosów bynajmniej nie na początku. Chcę tylko wiedzieć w co inwestować abym mógł podjąć pracę zarobkową i utrzymać siebie i dziewczynę. Oczywiście w miarę upływu czasu chciał bym podnosić nasz standard życia dlatego pytam co w tym języku jest najważniejsze (bazowe) a czego z czasem się doszkalać aby zarobki rosły proporcjonalnie do zdobywanej wiedzy. Oczywiście to tylko takie hipotetyczne pytanie wiadomo że nie da się wszystkiego przeliczyć na kasę choćby hibernate += 500 zl do pensji, EJB += 600zl... itd. Ale jeśli mam w pewnym sensie kontakt z ludźmi takimi jak wy którzy od x lat pracują w zawodzie to na pewno macie jakiś pogląd na to.

0

Ja bym jednak chyba zainwestowal w dziewczyne ktora umie sama o siebie zadbac i dokladac sie do domowego budzetu. Ale to tylko moje zdanie...

tomas1704
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
0

To swoją drogą lol...

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)