25 maja 2009

Wydaję książkę do SCJP

W lutym 2008 ruszyłem z serią artykułów prezentujących materiał pod egzamin SCJP. Trwało to nieco ponad rok, ale w końcu akcja doczekała się końca który wieńczy dzieło. W miniony weekend powołałem do życia nowy portal – www.GetSCJP.pl – poświęcony w całości tej tematyce i rozpocząłem na tymże akcję publikacji mojej książki "Przygotowanie do certyfikacji SCJP 6". Książka jest już prawie gotowa i zdecydowałem się na upublicznienie jej we fragmentach. Będę ją publikował rozdział po rozdziale aż w końcu uda mi się skompletować całość (mam nadzieję zrobić to przed końcem wakacji studenckich). Pierwszy rozdział - "API" - już jest. Zapraszam do lektury i komentowania. Rozdział pokrywa cele egzaminacyjne SCJP w zakresie od punktu 3.1 do 3.5, tj:

3.1 Napisz kod, w którym używasz klas opakowujących typów prostych (np. Boolean, Character, Double, Integer) oraz wykorzystujesz funkcjonalność „auto-boxingu" i „un-boxingu". Wskaż różnice między klasami String, StringBuilder oraz StringBuffer.

3.2 Mając podany scenariusz pracy z systemem plików, czytania z plików, zapisu do plików oraz interakcji z użytkownikiem zaimplementuj rozwiązanie używając następujących klas z pakietu java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter, PrintWriter oraz Console.

3.3 Napis kod, w którym serializujesz oraz de-serializujesz obiekty używając następujących klas i interfejsów z pakietu java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream oraz Serializable.

3.4 Używając klas standardu Java SE z pakietu java.text napisz kod, w którym formatujesz oraz parsujesz daty, liczby i wartości walutowe z uwzględnieniem lokalizacji. Mając podany scenariusz, wskaż metody których należy użyć aby uwzględnić konkretną albo domyślną lokalizację. Opisz przeznaczenie oraz sposób użycia klasy java.util.Locale.

3.5 Używając klas standardu Java SE z pakietu java.util oraz java.util.regex napisz kod, w którym formatujesz oraz parsujesz stringi lub strumienie. Napisz kod w którym używasz klas Pattern i Matcher oraz operacji split(...) z klasy String; użyj wyrażeń regularnych (ograniczone do elementów . (kropka), *, +, ?, \d, \s, \w, [] oraz ()). Elementy *, + oraz ? musisz umieć zastosować tylko jako operatory zachłanne a nawiasy jako elementy grupujące - nie jako mechanizm pobierania dopasowanych fragmentów tekstu. Dla operacji na strumieniach napisz kod który używa klas Formatter i Scanner oraz operacji printf(...) i format(...) z klasy PrintWriter. Użyj odpowiednich parametrów formatujących tekst (ograniczone do parametrów %b, %c, %d, %f oraz %s).

7 komentarzy:

Koziołek pisze...

Alleluja... bo co więcej powiedzieć?

Unknown pisze...

Ale prezent na zbliżający się Dzień Dziecka! Nie mogę ukryć mojego zachwytu z inicjatywy. Bajka!

Jaki soft do stworzenia strony. Stronka bardzo prosta, ale to właśnie mi się w niej podoba. I jak tworzysz PDFy? Automat czy eksport z dokumentu w OOo, a może jeszcze inaczej? Uchyl rąbka tajemnicy (dla tych, którzy mają w planach coś podobnego i chcą skopiować kilka ciekawych rozwiązań).

Michał Mech pisze...

Fajna inicjatywa tym bardziej, że po polsku. Jednak jakoś ciężko oceniać bez oglądania się na "SCJP Sun Certified Programmer for Java 6" (K. Sierra, B. Bates). Twoja będzie lepsza? Czy po prostu po polsku?

Jacek w kwestii pisania książek i generowania PDF'ów to nie wyobrażam sobie czegoś innego niż LaTeX.

Mariusz Lipiński pisze...

Stronka zrobiona na bazie CMS Made Simple. Genialnie prosty i łatwy w instalacji soft i co dla mnie ważne można uzyskać w łatwy sposób linki postaci getscjp.pl/nauka zamiast getscjp.pl/page.php?id=123 czy czegoś w takim stylu. A tekst pisany zwyczajnie w Wordzie i wydrukowany na drukarce PDFowej :)

Co do książki - naturalnie ma być przede wszystkim lepsza, ale to nie mi oceniać. Chętnie natomiast poznam ocenę innych. Może tylko mała dygresja - książka adresowana jest zasadniczo do tych co już umieją jako tako programować w Javie i znają język na podstawowym poziomie, tj. nie staram się tłumaczyć wszystkiego zupełnie od podstaw. Co do polskojęzyczności książki - jeśli tylko będzie taka możliwość to pojawi się też wersja "międzynarodowa" :)

Grzegorz Duda pisze...

Gratulacje. Kolejna ciekawa inicjatywa rodem z Polski. Oby wiecej takich.

Czy ma byc lepsza od ksiazki Sierry i Bates? A pod jakim wzgledem i kto bedzie ocenial? Gdyby tak do tego podchodzic, to 99% filmow, ksiazek, piosenek i innych takich nie narodziloby sie wcale. No i jak ocenic przed stworzeniem, czy bedzie lepsza?

Ech... nadal syndrom Polaka w nas siedzi gleboko... szukanie dziury w calym, zamiast pomocy w stworzeniu czegos nowego. Gdybym tak do tego podchodzil to w zyciu nie byloby JAVA exPress, Polish Java Podcast i COOLuarow. A tak sa i niektorym sie podobaja ;)

Zreszta nie tylko ja, ale 99.9% innych ludzi, ktorzy cos probuja robic...

Waldek Kot pisze...

Brawo Mariusz ! Szacun :-)
Mam nadzieję, że dostrzegasz jeszcze w życiu wiele "frustracji", bo dajesz przykład, że to uczucie może zrodzić fajne rzeczy ;-)

Pomyśl nad jakąś formą wynagrodzenia za tę książkę (także za jej elektroniczną wersję). Warto i w ten sposób docenić Twój czas i wysiłek, IMHO.

A jak znajdziesz jeszcze wolną chwilę :-), to miałbym prośbę - napisz, jak ta książka w praktyce powstawała. Blogi - np. Jacka i Twój - to fajne przykłady jak można "rozpracowywać" dane zagadnienie (choć pewnie każdy ma na to też swój sposób). Jestem pewien, że pomysł napisania książki chodzi po głowie wielu osobom ze społeczności Java, ale być może boją się "logistyki" i innych praktykaliów (ilość poświęconego czasu, objętość wypitej kawy, itp.)...

Pozdrawiam,
Waldek

Mariusz Lipiński pisze...

Jak już mi się uda skompletować książkę to popracuje i nad jednym (wynagrodzenie - choć pewnie nie w formie bezpośredniej) i nad drugim (tj. opiszę jak wyglądało robienie książki). Nie ukrywam, że napisanie książki to jednak sporo pracy i wymaga przede wszystkim samozaparcia. Nawiasem mówiąc upubliczniając informację o książce chciałem w głównej mierze dać sobie dodatkową motywację do jej szybkiego ukończenia - w końcu jak już ogłosiłem że wydaję książkę to muszę to zrobić, i to w rozsądnie krótkim czasie :)