Trochę prywaty - link u mnie w sygnaturce, to raz.
Dwa - nie zgodzę się z Riklaunimem, ze potrzebne sa studia informatyczne. By nauczyc sie jezyka? Wybacz, ale znajomi
Javy na studiach maja semestr (nielicznie przypadki dwa).Co to jest? Przejda po konstrukcjach jezyka, cos tam zaimplementuja, pokaza JDBC, AWT/GWT/Swing, moze troche servletow z JSP. Tyle to ja po jakis 3 miechach z ksiazek (niejednej)/tutoriali lyknalem i dalej wiem, ze nie umiem

PS. Skonczylem politologie.
Trzy - z Java jest pewien problem. Otoz domyslnie jest ona uzywana do pisania powaznych rzeczy, a nie stronek-wizytowek, dlatego w tym sensie studia informatyczne moga byc potrzebne, gdyz daja pojecie o dobrych praktykach programistycznych (tez upraszczam, ale nie az tak bardzo). Tam juz nie ma kodu strukturalnego pisanego obiektowo (jak to sie czesto w PHP zdarza), mamy wielokrotne dziedziczenie, diagramy UML, wzorce projektowe i tak dalej. Sama znajomosc jezyka to nie wszystko, chodzi tez o cala 'otoczke', ktorej nauczenie sie w domu jest cokolwiek trudne. UWAGA! Nie mowie, ze niemozliwe, tylko trudne. O wiele latwiej i szybciej sie mozna tego nauczyc pracujac w dobrej firmie i ogladac to wsystko w codziennej praktyce.
Cztery - ksiazki. No to podstawa, ja lubie ksiazki bo moge je zapakowac do plecaka i w drodze do pracy gdzie koduje PHP czytac o Javie

Na poczatek polecam absolutnie tylko i wylacznie:
1. Core Java - 2 tomy (Helion). Niedawno wyszlo nowe wydanie 1 tomu, drugie bedzie niedlugo.
2. Head First Java (Helion)
To sa 2 ksiazki na sam poczatek i wybierz te, ktora bardziej do Ciebie przemawia. Head First ma dla mnie bardzo jednak denerwujaca konwencje (tak wiem, ze to niby jest dobre do nauki), ale 1 tys stron na cos, co mozna zmiescic na 300 jest dla mnie strata papieru. Core Java jest rownie fajne - sygnalizuje mase zagadnien, daje krotkie podsumowanie na koncu artykulikow, ogolnie miodzio.
3. Ksiazka do nauki tego "studiowego" elementu -
Ksiazka. Napisana przystepnie, ma fajne dodatki (podstawy Javy, podstawy UMLa, wprowadzenie do Swinga), a takze uczy tego, czego gdzie indziej nie znajdziesz tak latwo - po kolei listy, stosy, drzewa, grafy i tego typu bajery. Naprawde jak sie to przeczyta to sie widzi roznice w programowaniu i podejsciu do sprawy.
4. Thinking in Java - dla niektorych biblia, dla mnie tez na poczatku byla, ale Eckel ma tendencje do pisania strasznie dlugiego kodu (wszystkie programy sie kompiluja), co utrudnia jego ogarniecie, a czesto tez skupia sie na maksymalnych szczegolach i jest ciezko cos pojac. Jak rozdzial ma 150 stron to na jego koncu nie ma sie pojecia co bylo na poczatku. Generalnie polecam zakupic po jakims czasie, wtedy widze mozemy sobie poglebic i usestymatyzowac.
5. Kiedy ma sie juz podstawy samej Javy to po kolei takie zagadnienia jak - JDBC -> Hibernate, Swing/GWT, Spring, JSP/JSF. Ksiazek i tutoriali masa, tylko wybierac.
I piate - pisac kod!!! To jest najistotniejsze. Samo czytanie nic nie daje. Czesto mialem tak (w TiJ), ze lecialem ze stronami, a potem jak cos postanowilem napisac to nagle wielka buba, bo najprostsze rzeczy nie dzialaja. Zatem pisac, pisac, pisac.
Na koniec - nastepcow Javy jest wielu (pretendetow do tego tytulu). Pretendetem sobie moga byc, zas kwestia jest taka, ze nawet ci nastepcy na Javie beda w znacznej mierze bazowac, wiec bez znajomosci jezyka i tak nic nie wskorasz.
Pzdr
Chlebik