16 lutego 2010

Jak zacząć naukę Javy

Wielokrotnie zdarzało mi się słyszeć pytanie - "jak najlepiej zacząć naukę Javy"? Co zwykłem odpowiadać w takiej sytuacji? Coś w stylu "yyy... uuuu... może od... Thinking in Java?"

Właściwie to nie wiem co polecić. O "Thinking in Java" mówiłem tylko i wyłącznie dlatego, że jest to jedyne konkretne źródło jakie znam; choć sam tej książki nie czytałem - zbyt rozlazła jak dla mnie. A skąd ja sam się uczyłem? Yyyy... uuuu... sam nie wiem jak to było. Trochę tu, trochę tam.

A co wy odpowiadacie na takie pytanie? Zapewne każdy z was od czasu do czasu takie pytanie gdzieś słyszy. Jak najlepiej zacząć naukę Javy?

15 komentarzy:

Koziołek pisze...

Należy zaczynać od pomysłu. Język jest narzędziem, ale żeby je opanować trzeba mieć pomysł na jego wykorzystanie.
Moja nauka Javy na uczelni opierała się o wykorzystanie wiedzy z metod numerycznych na zasadzie "zróbcie to w Javie". Po zapoznaniu się z podstawami (składania i JavaDoc) już samodzielnie zacząłem zgłębiać zagadnienia związane z OOP.

kamil zych pisze...

No cóż, generalnie nie spotkałem się z książką opisującą Jave od podstaw. Wszystkie zakładały, że czytelnik zapoznał się z jakimś językiem. Zacząłem od Head First Java (niestety jej polskie tłumaczenie jest stare i traktuje o Javie 1.4). Bardzo dobrą książką dla mnie okazała się być "Java. Podstawy." (autorzy: Horstmann, Cornell) - głównie ze względu na bardzo dużą ilość porównań do C++, z którym miałem wcześniej do czynienia - no i polskie tłumaczenie (wyd. Helion) traktuje o Java 6, więc jesteśmy na bieżąco :)

Naukę totalnych podstaw można zacząć od javabat.com - zbioru zadań do wykonania - nie trzeba mieć nawet IDE (a wręcz nie powinno się mieć - za dużo podpowiada na początkowym etapie nauki).

Dariusz [LocK] Łuksza pisze...

W takim wypadku wiele zależy od tego "skąd" dana osoba "pochodzi" tj. czy miała już styczność z programowaniem, czy też chce zacząć od Java'y.

W drugim przypadku polecił bym raczej zacząć od jakiegoś prostszego języka (pacal, php, perl, python) tylko po to żeby głównie załapać "co to jest" programowanie, zrozumieć pętle, zmienne, zakres zmiennych, funkcje i rekurencje do tego można potem dołożyć mały kurs obiektowości.

Jeżeli natomiast ktoś jest zaprawiony w bojach (i kumaty) to polecał bym znalezienie pierwszego lepszego kursu java'y w necie, zaznajomienie się z ogólną składnią i gramatyką, a potem klepanie własnych małych programików i zgłębianie wiedzy w dokumentacji ;)

jcoffee pisze...

Thinking in Java jest tutaj http://www.linuxtopia.org/online_books/programming_books/thinking_in_java Bruce Eckel pisze bardzo nie wygodnie. Amerykanin, który świetnie zna Javę i się przemądrza. Takie odnoszę wrażenie. Rodział i około 300 stron pisania o tym jak wspaniała jest Java. Książkę tą polecam przed snem. Można bardzo szybko zasnąć. Jak pisze @Kamil Head First to są słabe lektury. Dobre dla początkujących. Eckel za bardzo skupia się na szczegółach. Po czym w dalszej części książki pisze, że są one mało wykorzystywane - to świetnie... Ja polecam książki O'Reilly oraz Apress.

Pozdrawiam :)

Unknown pisze...

Pierwsze zaczął bym od nauki C++ "SYMFONIA C++" autora Jerzego Grębosza, a następnie prawdopodobnie zaczął bym od przeczytania "Java Podstawy Wydanie VIII"

Jacek pisze...

A ja bam zaczął od czegoś nowszego jak C# (.NET). Jeśli .NET się nie spodoba, zawsze można przesiąść się na Jave :P

Tomasz Dziurko pisze...

Ja zacząłem od dwutomowej serii Core Java, a potem już po trochę doczytywałem i douczałem się z różnych miejsc, głównie Thinking in Java i Head First Java. No ale wiadomo, że poza czytaniem trzeba pisać, pisać, pisać. Najlepiej coś dla siebie, bo wtedy człowiek ma najlepszą motywację :)
Shameless plug :) : opis jak wyglądała nauka Javy u mnie

Unknown pisze...

a ja właśnie jestem w trakcie nauki javy i na początku miałem duży dylemat którą książkę wybrać - Thinking... czy Java.Podstawy. Zdecydowałem się jednak na tą drugą i potem dokupiłem drugi tom Java.Techniki Zaawansowane... Ale dalej nie wiem czy to był dobry (lepszy) wybór w stosunku do Thinking...

Mariusz Lipiński pisze...

Co do "Symfonii C++" to rzeczywiście dla początkującego programisty jest to dobra pozycja. Właściwie to jest to pierwsza książka z której uczyłem się programować.

Pamiętam że zaczynałem od Basica jeszcze w podstawówce, potem był Pascal i właśnie C++ z "Symfonią C++".

Z Javą poznałem się na studiach, jak już dosyć dobrze wiedziałem o co w programowaniu chodzi, więc może dlatego nie potrzebowałem żadnej specjalnej książki a wiedza przyszła dość łatwo, sama.

Co do Ciebie Jacku C i twojego .NETa, to... kiedyś dorośniesz do Javy :)

Paweł Ryznar pisze...

hmm, ale odpowiedź powinna też zależeć od tego co ktoś chce robić [web czy desktop], prawda?

Rafal Magda pisze...

Javy uczyłem sięjako drugiego języka po C. Nauczyłem się... z totoriali na stronie Javy: http://java.sun.com/docs/books/tutorial/ .

Anonimowy pisze...

Ja zacząłem od Thinking ..., przegryzłem się przez całą książkę, i nikomu nie życzę więcej takich doświadczeń. Polecam Head First Java potem Java Core - podstawowy + zaawansowany, oczywiście z przerabianiem przykładów.

Mariusz Lipiński pisze...

Czy odpowiedź powinna zależeć od tego czy chcemy robić WWW czy "Desktop"? Hmmm... moje zdanie jest takie, że początek nauki jest od tego niezależny. Język zawsze taki sam a i pojęcie wypada mieć i o tym i o tym, więc warto liznąć wszystkiego. Zwłaszcza jeśli ktoś nastawia się na "Desktop" to powinien liznąć też co nieco WWW. Z moich doświadczeń wynika, że w Javie to jednak robi się głównie interfejsy WWW (albo jakieś B2B) a stosunkowo najmniej aplikacji "tradycyjnych". Szansa, że WWW będzie nas omijać jest moim zdaniem niewielka.

Anonimowy pisze...

Ja zacząłem od Thinking in Java ;-)

Anonimowy pisze...

Też jestem za opcją Symfonia c++ a potem jak się załapie OOP można zacząć Java Core od Horstman'a albo Thinking in Java Eckel'a.
Ale jak tu znaleźć książkę z zadaniami, ćwiczeniami? Cos w stylu książek z ćwiczeniami C, C++ Deiannoy'a ?