Witajcie,
Jako, że póki co moje zdolności programistyczne sa mizerne (na poziomie napisania przeglądarki graficznej z jakimiś tam alogrytmami filtrowania obrazu w C#, czy innej prostej aplikacji okienkowej), a swoją przyszłość jakby nie patrzeć chcę związać z IT (aktualnie studiuję IIst na PWR), przyszła pora na wzięcie się za siebie i decyzję.
Doszedłem do wniosku, że Java jest bardziej przyszłościowym i poszukiwanym przez pracodawców językiem niż C#, postanowiłem więc w wolnym czasie (którego mam aktualnie bardzo dużo) zaznajomić się w końcu z tym językiem i nauczyć go na poziomie umożliwiającym podjęcie stażu, potem pracy - oczywiście mam świadomość, ze nie od razu Kraków zbudowano i trochę to potrwa ;) Od czegoś jednak trzeba zacząć, a lepiej zając się w końcu sobą niż trwonić czas ;)
Prosiłbym Was więc o pomoc - wskazanie środowiska programistycznego (NetBeans?) i jakiegoś dobrego, obszernego kursu z przykładami i dużą ilością praktyki. Chętnie kupiłbym jakąś dobrą książkę - zawsze to z papieru łatwiej się czegoś nauczyć ;)Generalnie prosiłbym Was o poprowadzenie mnie właściwą drogą, by poznać Javę. Chęci i czas z mojej strony są. Chodzi o kurs "od zera" - styczność z tym językiem miałem jedynie na laborkach na PolŚl, ze których nie pamiętam już praktycznie nic poza ciągle wieszającym się NetBeansem.
.. chyba, że jednak ciągnąc C#, którego troszkę już poznałem (MS Visual Studio uwielbiam wręcz)? Może warto coś jeszcze innego? Rozeznanie wśród pracodawców mam średnie, szczerze mówiąc.
Pozdr.
Forum > Tematy dowolne > ... toxim postanowił się naumieć Javy ;)
Wysłane 2012-10-15 15:34 , Edytowane 2012-10-15 15:43
Wysłane 2012-10-15 16:01
Porywasz się na technologię (a raczej cały wachlarz technologii), która ma ogromny potencjał ale też jest chyba najbardziej "błędogenna" i niedopracowana. Jak coś jest za darmo to ... wiadomo. Problem polega na tym, że cały świat zajmuje się jednym rozwiązaniem a nie jedna korporacja - jak Microsoft w przypadku .NET'a. Nie ma jednej organizacji, która zebrała by to wszystko do kupy i usystematyzowała. W javie zawsze coś nie działa. Programuję w C#,C++, JEE, PHP Symfony2. Jak mam coś zrobić w javie to szlak mnie trafia ale robię. Uwielbiam rozwiązania M$ i VisualStudio. Jeśli muszę coś zrobić w javie to używam Eclipsa ale jest to narzędzie ciężkie i tak samo dziadowskie jak Java. Sto razy więcej frajdy daje mi programowanie w PHP z frameworkiem Symfony2 i Doctrinem. Jako środowisko używam NetBeans'a. Ty musisz opanować Hibernate'a jeśli chcesz tworzyć aplikacje bazodanowe. Jest on niemal identyczny jak Doctrine.
Nie lubię JAVY (żadnej) i nie będę lubił bo trza się dużo narobić , żeby zrobić cokolwiek a i tak nie będzie działać.
Koniecznie ucz się Javascriptu a raczej JQuery - to jest przyszłość i raczej większość nowoczesnych serwisów korzysta z JQuery (JQuery UI wymiata !). Możliwości są w zasadzie nieograniczone.
Jako źródło polecam
w3schools: [LINK]
4programmers: [LINK]
nieśmiertelny stackoverflow: [LINK]
Thinking in Java : [LINK]
Powodzenia
Wysłane 2012-10-15 16:04
@Toxim
Powiem ci tak: znajdzie się tyle samo zwolenników C#, jak i javy. Także jest popyt na to i na tamto (obserwując oferty pracy).
Netbeansa sobie odpuść, fakt lubił sie wieszać. Ja pracowałem w domu w Eclipse.Co do książki ja korzystałem z "Java - praktyczny kurs, Marcin Lis". Trochę teorii, trochę przykładów także fajnie się czytało i egzamin zaliczyłem bez problemów.
Java ma ten plus, że po nauczeniu się jej możesz programować mobilne aplikacje w Androidzie (nie od razu, ale znacznie łatwiejszy jest start z znajomością Javy).
Wysłane 2012-10-15 16:14
@nickey NetBeans w wersji >7.1 jest dużo bardziej stabilny niż Eclipse a już na pewno mniej pamięciożerny. Eclipse to kombajn - ciężki i zamulający CPU. Natomiast w przypadku Androida polecam studiować OpenGL'a
Wysłane 2012-10-15 16:41 , Edytowane 2012-10-15 17:04
Osobiście nie przestawiałbym się na Javę. Jest to technologia używana głównie przez bezwładne technologicznie korporacje. Wielkie, kobylaste projekty - wyglądające pięknie na papierze, a z punkty widzenia programisty nudne jak flaki z olejem. Nie mówię tu oczywiście o wersji Androidowej, ale ta prócz składni nie ma z normalną Javą wiele wspólnego (nieelementarna nauka języka to nauka bibliotek i wspomagającyh technologii - frameworka, a te na Androida są zupełnie inne).
Pracując w technologiach MS ani ja, ani wielu moich znajomym nie miało nigdy problemów ze znalezieniem pracy. W Warszawie możesz przebierać w ofertach pracy "od jutra".
Moim zdaniem pozostań przy .NET. Doucz się bardziej zaawansowanych rzeczy (typu ASP.NET + MVC, WCF, Entity Framework) , "HTML5" oraz baz danych na przyzwoitym poziomie i na pewno ze znalezieniem dobrze płatnej pracy nie będziesz miał problemów. Po paru latach przekwalifikować się na "konsulanta" jakiegoś systemu ERP lub podobnego i masz robotę "do emerytury".
Wysłane 2012-10-15 17:38 , Edytowane 2012-10-15 17:39
@Lincoln
Nic chyba nie wspomniałem o tym, że JavaScript jest lepsze od Javy. Te dwie technologie w ogóle ciężko porównywać. Prócz nazwy i tego, że obie mają składnię C-pochodną nie mają one ze sobą nic wspólnego.
W obecnych czasach JavaScript trzeba znać, ale nie może to być jedyna technologia. Trzeba znać jeszcze coś "server side" - Java, .NET, PHP, Ruby, Perl, itd + jakiś język programowania baz dancyh T-SQL, PL-SQL, itp. JavaScript z konieczności staje się językiem wyboru do robienia UI, jednak poważne rzeczy (choćby przetwarzanie danych) robi się w poważniejszych technologiach.
W praktyce pracując przy oprogramowaniu mającym UI webowe posługujemy się przecież wieloma technologiami (językami) jednocześnie - w podstawowej wersji np. .NET + C#, T-SQL, JavaScript, HTML, CSS. Do tego takimi czy innymi bibliotekami, które również trzeba znać, np. ASP.NET MVC, Entity Framework, JQuery, JTemplates, NUnit, Knockout JS itp.
Wysłane 2012-10-15 17:51 , Edytowane 2012-10-15 17:55
@Lincoln
W Polsce, w 2012 roku? Gdzie i jako kto?
Nie ma co odróżniać HTML5 i JavaScriptu. Większość usprawnień w HTML5 (nie licząc paru nowych tagów) dotyczy warwsty skryptowej.
----
Do JS polecam tą książkę - [LINK] W programowaniu 99% rzeczy człowiek uczy się sam :) Na studiach, czy szkoleniach to może jakieś elementarne podstawy ewentualnie.
Wysłane 2012-10-15 17:53 , Edytowane 2012-10-15 17:58
Core Java 2 Podstawy już się ściąga w celach poglądowych. Istnieje jakaś książka, która dobrze uczy C# od podstaw (poprowadzi "za rączkę" - chciałbym zacząć od spraw podstawowych - żeby uporządkować, usystematyzować to co już wiem), aczkolwiek z uwzględnieniem nowszysch technologii - jak np. WPF? Najchętniej po polsku - angielskiego nie znam na tyle, by wyłapać jakieś techniczne niuanse.
Chwilę temu odpaliłem po dłuuuugim czasie przerwy MS Visual Studio - i od razu poczułem się "w domu". Na najbliższy czas zaplanowałem sobie poznać podstawy Javy, środowisko NetBeans, stworzyć przy użyciu tych technologii to, co lekko i przyjemnie stworzyłem w C# jako projekt inżynierski. Po czym porównać to, jak mi się korzysta z obu tych języków i wybrać ten docelowy, który posłuży mi do właściwej nauki programowania (bo przede wszystkim o to chodzi - żeby nauczyć się programować "na porządnie", ładnie, czytelnie, a nie tak jak potrafię do tej pory, czyli "byle zaliczyć na uczelni"). Gdy już się nauczę porządnie jednego języka, przejście na inny nie będzie takim problemem - póki co mam ogromne braki w podstawach i pisanie programów polega na kombinowaniu, aż wszystko zadziała - a wiadomo, że nie tędy droga.
Pozdr.
Wysłane 2012-10-15 17:58 , Edytowane 2012-10-15 18:01
@Lincoln@szmalik
Java do JavaScript ma się jak kot do kotary. Nie mylcie tych dwóch - zupełnie różnych - technologii / języków.
@kowgli
Wiesz, nastawiając się na C# i .NET, łączysz się na dobre i na złe z M$. A większość poważnych graczy w branży jednak stara się trzymać bliżej serwerów opartych o system Linux, w związku z czym Java daje więcej możliwości. Nie chcę wdawać się w dyskusję o wyższości jednego języka nad innym, bo to tak, jakby rozmawiać o Androidzie i iOS.
@toxim
Pamiętaj, że składnia języka to mniej istotna część programowania. Najważniejsze jest odpowiednie przygotowanie merytoryczne związane z abstrakcyjnymi elementami, które w programowaniu występują. Jest cała gama pojęć, wzorców projektowych, niezmienników, z którymi spotkasz się - nie ważne w jakim języku programujesz. Mówię o takich rzeczach jak kolekcje( Set vs Lista, kontenery asocjacyjne - Map), wątki i synchronizacja, operacje na strumieniach (InputStream / OutputStream), pojęcia związane z obiektowością, obsługa błędów - wyjątki.
Wybór IDE to kwestia indywidualna - najlepiej sam zobacz oba, zapoznaj się z ułatwieniami, skrótami klawiaturowymi i sam zdecyduj który jest dla Ciebie wygodniejszy.
Piszesz że jesteś w trakcie studiów - może pociągnij jakiś projekt w Javie. Może masz jakieś zajęcia np. z współbieżności - zawsze możesz połączyć zaliczenie z implementacjami w Java.
Jeżeli chodzi o edukację - to zależy co Cię interesuje. Najlepiej chyba byłoby zapoznać się z ogólnymi zasadami w języku. Poznać pojęcia związane z obiektowością (interfejsy, klasy abstrakcyjne, modyfikatory widoczności), kontrole sterowania (if, pętle, switch itp) i obsługę wyjątków (checked vs unchecked, blok try catch finally). W międzyczasie ponawania API (np. klasy związane z modyfikacją Stringów - StringBuilder/StringBuffer i inne), IO (strumienie danych), wątki.
Jak będziesz się w miarę swobodnie czuł - można przejść do etapu Webówki - jakiś tutorial Java EE i jedziesz :D
Wysłane 2012-10-15 17:59
@toxim
To jest dosyć dobra książka [LINK]. Po jej przeczytaniu ma się przynajmniej podstawowe pojęcie o najważniejszych elementach frameworka. Książki po polsku sobie daruj. Polskie tłumaczenia po pierwsze są opóźnione (zazwyczaj wydanie do tyłu), po drugie często bardzo kiepskiej jakości. W tym zawodzie czyta się po angielsku, kiedy masz się tego nauczyć jak nie na studiach?
Wysłane 2012-10-15 18:05 , Edytowane 2012-10-15 18:14
@endriu_l
Na tej samej zasadzie nastawiając się na Javę łączysz się na dobre i złe z Oraclem. Nie widzę różnicy.
Co masz na myśli pod pojęciem "poważnych graczy"? Pracuję przy projektach za dziesiątki milionów euro w technologiach MS, w skali polskiej ciężko znaleźć poważniejsze.
Wysłane 2012-10-15 18:10
@Lincoln
Ale toxim chce zostać programistą, nie webmasterem. Zresztą nie za bardzo rozumiem, co to znaczy webmaster? Chcesz robić strony-wizytówki dla pizerii i warsztatów samochodowych?
W projektach webowych większych od skali mikro takie pojęcie nie występuje. 10% pracy jest dla grafików (w projektach gdzie ma to znaczenie), 90% dla web developerów. Żeby być web developerem musisz znać również technologie server-side.
Wysłane 2012-10-15 18:32 , Edytowane 2012-10-15 18:35
@kowgli No właśnie nie. Masz różne implementacje maszyny virtualnej [LINK] , możesz wziąć udział w ustanawianiu standardów [LINK] , Java jako platforma jest open source - projekt OpenJDK [LINK] .
Poważni gracze, na przykład Google, Twitter [LINK] , Facebook, wiele banków i organizacji rządowych.
Nie mówię że nie korzysta się z .NET, po prostu przy Javie nie jesteś związany z M$.
Wysłane 2012-10-15 18:59
@toxim
ja osobiście jako środowisko wolę NetBeansa. stabilniejszy (nie wiesza mi się wcale), mniej mułowaty i jakoś bardziej user friendly. jednakże we wszystkich firmach, poza jedną, gdzie pracowałem używało się Eclipse, choć ilość rozszerzeń i dodatków jakie można tam wgrać sprawia, że 2 środowiska na Eclipse mogą być bardzo różne. jednak lepiej właśnie to IDE poznawać i ćwiczyć pod kątem przyszłego zatrudnienia.
i kowgli dobrze pisze. doucz się o framworkach i ulepszaczach do .NETa i jedziesz. np DevExpress ostatnio robi karierę, sporo ogłoszeń z tym jest. poza tym cały WPF i jego rozszerzenia.
Wysłane 2012-10-15 19:31
@endriu_l
Akurat .NET w dużej części też jest otwarty (np. CLR i C# są standardami ECMA i ISO)
Również istnieją alternatywne maszyny wirtualne, choćby rozwijane od lat MONO.
Wiele wewnętrznych bibliotek (choćby ASP.NET MVC) jest Open Source. Polecam spojrzeć na CodePlex [LINK], czyli całą platformę Open Source'ową stworzoną przez MS.
Wysłane 2012-10-15 19:33 , Edytowane 2012-10-15 19:35
@szarlih
Osobiście WPF'a bym sobie darował. To jest praktycznie martwa technologia. Na szybko można wszystko zrobić w Windows Forms. Bardziej nowoczesne rzeczy, to już tylko HTML5. Nie twierdzę, że jest to lepsza technologia od WPF (HTML mimo, że jest rozwijany od lat, przez politykę i ogromne grono zainterewanych, jest ciągle hamowany w rozwoju i nowe roziązania są wdrażane niezywkle wolno), ale ma ogromną zaletą multi platformowośći i jest o wiele bardziej popularna.
Kto jest online: 0 użytkowników, 296 gości