Optymistycznie nastroił mnie do niej fakt iż jej autorzy są współautorami lekkiej i przyjemniej (jednocześnie bardzo pouczającej) książeczki Head First Design Patterns - którą to na marginesie szczerze polecam. Jej komiksowa forma i humor osadzony w latach '50 może wydawać się dziecinna ale po przeczytaniu wstępu wszystko stanie się jasne - jeden z autorów zajmuje się neuropsychologią i kognitywistyką więc dobrze wiej jak powinno się uczyć dorosłych ludzi.
Z dorosłymi idzie ciężej niż z dziećmi bo zazwyczaj myślą samodzielnie - a czasem nawet krytycznie.
No ale wracając do SCJP... Do samej książki nic nie mam - autorzy starali się jak mogli aby czerstwy temat przedstawić w miarę przystępny sposób. Pozytywne są komentarze typu: "my jako autorzy mamy na ten temat inne zdanie, ale na potrzeby egzaminu musisz robić tak i tak". Każdy z 10 rozdziałów obejmuje pewne zagadnienie - na dosyć podstawowym poziomie, ale mimo tego czasem można dowiedzieć się czegoś nowego. Na zakończenie każdego z rozdziałów mamy pytania sprawdzające, które z założenia odpowiadają tym z właściwego egzaminu. Utrzymane są głównie w konwencji: masz tu kawałek "super-profesjonalnego" kodu, skompiluj w jednej półkuli mózgu i ew. uruchom w drugiej; możesz też jęknąć w razie wyjątku. Problem merytoryczny jest zwykle banalny a wręcz wypaczony, natomiast cały ciężar trudności leży po stronie składni upstrzonej kuriozalnymi identyfikatorami i perfidnych zagrywek służących odwróceniu uwagi.
Zacząłem się zastanawiać dla kogo i po co jest ten egzamin... Doszedłem do wniosku, że możesz być na niego zbyt stary gdy masz niektóre z poniższych objawów:
- Zastanawiasz się gdzie są pogrubienia slow kluczowych - a nie ma...:P będziemy bawić się w sado-maso
- Zastanawiasz się gdzie jest cholerny kompilator i podkreślenia błędów?!? - a nie ma...:P i nie będzie...:P już wiesz na czym ma polegać cała ta żałosna zabawa...
- Zaczynasz się czuć jak student I roku na jakimś bezsensownym egzaminie z twierdzeń i ich dowodów
- #$%^& idę pograć sobie na PS3
- Zastanawiasz się gdzie jest dekiel który napisał ten kod? Tak się przecież nie programuje nawet w PHP w gimnazjum! Niech bym go tylko dostał w swoje ręce.
- Zwolnic go natychmiast i zanotować nazwisko na liście ludzi, z którymi nigdy nie chcesz współpracować
- Co to w ogóle za odpowiedź "G) Compilation fails"? To po cholerę komitujesz mi do poważnego testu niekompilujący się kod baranie jeden! W chyba każdej firmie dostałbyś po premii (a w pożądaj poleciałbyś na pysk) za choćby parę takich smrodków!
- Tijaaa znowu pytanie z serii "wlałeś benzynę przez rurę wydechową. Co się stanie? Samochód pojedzie ale skręci w drzewo. Samochód nie odpali. Samochód wybuchnie." Nie wydurniaj się człowieku. No wlej tą benzynę jak biały człowiek do baku i nie zawracaj mi głowy zgadywanką co się stanie jak dodatkowo założsysz gacie przez głowę.
- Zaczynasz rozumieć pojęcie "Code made in India"
- Gryzie Cię poczucie tracenia czasu
- Obawiasz się, ze jeszcze jeden rozdział i nabawisz się autyzmu
- Zaczynasz żałować, ze nie masz tego autyzmu - wspaniałego schorzenia, które pozwala skupiać się godzinami na nieistotnych pierdołach i ignorować szerszy kontekst
- Boisz się, ze nabyty autyzm mogą odziedziczyć Twoje dzieci (ku chwale wujka Suna)
- Motyla noga! Gdybym był wzrokowcem a nie słuchowcem to może przynajmniej widziałbym te brakujące średniczki i nawiasiki:/
- Dowiadujesz się, ze o wiele ważniejsze od projektowania i rozmyślania nad architekturą jest znajomość kolejności operatorów (nawiasy są dla cieniasów)
- Dowiadujesz się, że enkapsulacja to jednak prywatne pola i publiczne gettery/settery
- Dowiadujesz się, że w programowaniu współbieżnym najważniejsze jest kretyńskie zaprojektowanie wątków oraz to aby całość jakimś cudem się skompilowała. Teoria współbieżności jest dla dinozaurów programujących w ADA.
- Zastanawiasz się jak mogłeś przez 6 lat programować w języku, którego jak się okazuje w ogóle nie znasz
//=====================
Jest tez druga strona medalu: możesz być zbyt młody na SCJP... Jeżeli dopiero zaczynasz przygodę z Javą to olej certyfikaty ciepłym moczem parabolicznym. Ciesz się życiem i programowaniem. Programowanie wcale nie musi być nudnym zajęciem polegającym na wyszukiwaniu literówek i analizowaniu jakiegoś gównianego kodu (no dobra, czasem jest). W tej zabawie chodzi na prawdę o coś zupełnie innego!
A jeżeli chcesz zwiększyć swojego skilla to przeczytaj sobie dwie doskonale książki:
- Efektywne programowanie w języku Java autorstwa samego Joshua Bloch - projektanta i autora dużej części klas biblioteki standardowej Java; książka o której to sam James Gosling powiedział, ze gdyby została napisane wcześniej to inaczej zaprojektowałby Javę;)
- Java. Potrzaski zestaw 50 na prawdę realistycznych i ważnych haczyków na które należy uważać (nie ma tam syfu typu brak średnika)
Jeżeli jeszcze Ci mało, to proszę:
- More Java pitfalls - druga część potrzasków
- interesuje cię programowanie współbieżne? bardzo dobra pozycja: Java. Współbieżność dla praktyków
Ucz się z tych pozycji, ale powtarzam: nie trać czasu na certyfikat! To w żaden sposób nie zrobi z Ciebie lepszego człowieka (ani programisty).
Później przyjdzie czas na ważniejsze zagadnienia: projektowanie (wzorce projektowe), architektura, analiza itd... Nie zapominaj też o takich "szczegółach" jak dogadywanie się z ludźmi (koledzy z teamu, klient). A średniki poprawia Eclipse;P
8 komentarzy:
Generalnie masz racje, ale...
Są też pewne plusy tego całego zamieszania. Po pierwsze jak czytasz o wątkach, zawiłościach hashCode i equals, jak pierwszy raz uczysz sie wyrażen regularnych,których zawsze unikałeś, nie mogles zapamietac obslugi IO w Javie, to poniewaz bedziesz zdawac to na egzaminie uczysz sie tego dobrze.
Czytanie innych ksiazek, do poduszkki zawsze pozwala Ci pominać rozdział a tutaj nie ma wyboru :(... Trzeba przebrnąć przez to czego się zawsze unikało...
A generalnie są to podstawy i co do pożyteczności ten wiedzy nie ma wątpliwości.
Ale oczywiście zgadzam się, że od poprawiania błędów kompilacji jest eclipse;).
ok, jezeli wyniknie z tego pozytek polegajacy na tym, ze zobaczysz to czego do tej pory unikales to bardzo fajnie.
Jednak jest to wiedza bardzo powiezchowna poniewaz (odnoszac sie do przykladow):
- o watkach dowiesz sie tyle ze jest klasa Thread, slowko synchronized i metody wait/notify. Bez znajmosci podstaw spolbieznosci po prostu nie nalezy uzywac watkow i już.
- equals i hashcode: i tak nie bedziesz wiedzial jak poprawnie je implementowac (musisz tylko rozpoznac dopuszczalne implementacje - mimo ze bezsensowne)
- io - i tak nie bedziesz wiedzial, ze calosc opiera sie na wzorcu dekoratora oraz i tak nie bedziesz wiedzial jak optymlanie dekorowac strumienie.
Wiec jezeli ktos unikal tego typu podstaw to certyfikat da mu jedynie złudzenie i pozorną, powiezchowną wiedzę:/
To jest generalny powód dla którego preferuje sprawdzanie się w akcji nad testami.
Ale lepiej nie generalizować.
Zdarzają się sensowniejsze zadania testowe.
Niestety po przeczytaniu tego postu przypomniało mi się jak próbowałem przez bite 2 dni (studia) nauczyć się które to rekursja a które rekurencja :/. Bez zbytniego powodzenia.
heh,
i dlaczego na w polskiej wersji Effective Java jest HTML??!!
:)
HTML jest na okladce, ale pewnie dlatego ze helion jak zwykle pozluzyl sie superprofesjonalnym grafikiem do zrobienia okładki (a grafik pewnie wczesniej robil jakas oklade do ksaizki o javascript wiec ze mu zbywala to sobie ją sprzedal do ksiazki o javie - przeciez to musi byc to samo skoro nazwa podobna;)
Mam podobne odczucia na temat SCJP co autor tego posta. Fakt że ktoś zna kolejność operatorów i wie czym się różni "&" od "&&" nie świadczy o tym że jest dobrym programistą javy. Dziwi mnie to że pracodawcy tak zwracają uwagę na SCJP - podobno podnosi wynagrodzenie średnio o 10% :)
"Dziwi mnie to że pracodawcy tak zwracają uwagę na SCJP"
pewnie by nie zwracali ale to ułatwia wygrywanie przetargów więc zwracają ... i doceniają finansowo
Inżynieria oprogramowania ma ciekawą i barwną historię. Znam na pamięć historię JS i C++ i przyznam, że miały rewelacyjną ścieżkę.
Prześlij komentarz