Kurs Java od podstaw

241 views
Skip to first unread message

Dariusz Luksza

unread,
Jan 3, 2014, 1:39:56 PM1/3/14
to warsza...@googlegroups.com
Hej,

Jakiś czas temu dopadła mnie myśl, że nie ma dobrego kursu Java. Takiego który opisuje aktualną wersję języka, bazuje na praktycznej wiedzy autora zdobytej w czasie pracy zawodowej oraz pokazuje
najnowsze standardy i narzędzia używane przy tworzeniu oprogramowania.

Większość materiałów które znalazłem w sieci bazuje na JDK 1.4 lub 1.5. Część z nich tworzona jest przez studentów którzy sami bojem rozpoznają teren. Inna przez osoby które po stworzeniu kursu C,
C++, PHP stwierdziły, że teraz jest kolej na Java. W dodatku 90% z wszystkich dostępnych materiałów promuje "pisanie aplikacji w notatniku".

Dlatego, zebrałem się w sobie i zacząłem pisać książkę. Stworzenie pozycji która pokrywała by wszystkie zamierzone cele zajęło by mi pewnie kilka lat. Z tego też powodu zamysł o książce zastąpiony
blogiem http://javablog.pl/. Możliwe, że później zbiorę opublikowane tam wpisy w formę książki... zobaczymy.

Właśnie tak powstał mój najnowszy projekt: Blog, Java od podstaw (http://javablog.pl/), gdzie tłumaczę od podstaw tajniki związane z programowaniem. Znajduje się tam wytłumaczenie różnic pomiędzy
programami pisanymi w C/C++, a tymi dla JVM, a także opis jak działa JVM. Oraz takie podstawowe rzeczy jak: co to jest zmienna oraz jej typ. Nie długo znajdą się tam również wpisy o instrukcjach
warunkowych if i switch/case.

W kursie tym chcę zawrzeć wiedzę jaką zdobyłem w ciągu ponad pięciu lat praktyki zawodowej w różnych projektach jakie realizowałem w tzw. "pracy dziennej", wiedzę wyniesioną z projektów OpenSource w
które angażowałem się w wolnym czasie oraz tą zdobytą przy realizacji moich własnych projektów. Skupię się głównie na Eclipse IDE jako narzędziu do wytwarzania oprogramowania (bez obaw, "hello world"
w notatniku również się znajduje w kursie ;)), opiszę przydatne funkcje tego środowiska oraz skróty klawiaturowe przyśpieszające pracę. Nie ominę też, tak popularnego ostatnio tematu programowania
funkcyjnego w Java (z wykorzystaniem Google Guava oraz wyrażeń lambda z Java8). Znajdzie się również miejsce dla Dependency Injection z Google Guice... oraz lubiany/nienawidzony Maven. A wszystko to
okraszone przykładami kodu oraz dokładną jego analizą.

Jak widzicie jest tego sporo. Na pewno każdy znajdzie coś dla siebie ;)

Zachęcam Was do odwiedzenia http://javablog.pl/, podzielenia się informacją o istnieniu tego kursu ze znajomymi. Oraz do zgłaszania uwag oraz opinii na temat publikowanych materiałów!

pozdro!

--
Best regards

Twitter: @dluksza
GSM: +49 017 445 41235
Blog: http://luksza.org http://javablog.pl
LinkedIn: http://linkedin.com/in/dariuszluksza

Olaf Matyja

unread,
Jan 3, 2014, 3:56:56 PM1/3/14
to warsza...@googlegroups.com
Akurat moja żona uczy się od zera programowania, więc temat kursu Javy od podstaw mam ćwiczony na żywym organizmie. Moim zdaniem najlepszy jak dotąd kurs od podstaw w sieci jest tu: http://javastart.pl . Mimo wszystko najlepszy, choć jak żona przeczytała, że elementy klasy to obiekty ("Obrazowym przykładem może być czteroosobowa rodzina jadąca samochodem. Samochód to klasa, natomiast rodzina to jej elementy, powiemy o nich obiekty.") to wszystko jej się pomieszało, a zwłaszcza pola z obiektami, ale za to myślała, że w końcu zaczyna rozumieć.
Najlepszy kurs książkowy dla początkujących to chyba Head First Java.

Pozwolę sobie na kilka krytycznych uwag, bo choć Twój blog jest całkiem dobrze pisany, to niekiedy trudno sobie wyobrazić początkującego czytelnika.
Głównym problemem początkującego jest nierozumienie słów, i skrótów myślowych, które my tak dobrze znamy, że nie rozumiemy, że to nie są słowa potoczne i wymagają definicji.
Na przykład po dłuższych próbach tłumaczenia czegoś żonie zrozumiałem w końcu, że słowo "zwróci" ("metoda zwróci wartość") wcale nie jest potoczne, to już slang informatyczny. Lepiej pisać "da w wyniku".
Z tego co widzę, też czasem piszesz o czymś, nie wprowadzając tego wcześniej, np. oprócz używania tego "zwróci", nie podajesz też w ogóle co to jest operator, ani od razu przykładu programu z operatorami, podajesz tylko ich listę. Używasz też sformułowań typu "własnościowe pakiety" bez żadnej definicji.
Przy instalacji JDK pod Windows zdaje się nie wystarczy instalator, trzeba sobie jeszcze ustawić zmienną systemową PATH. Początkujący tu padnie jak mu nie napiszesz, co gdzie w Windowsie kliknąć, bo nie będzie rozumiał co się dzieje.
Wprowadzając zmienne nie podajesz przykładu całego programu, tylko wyrwaną z kontekstu instrukcję podstawienia, przez co początkujący nie wie, gdzie to ma umieścić. Najpewniej skopiuje do okienka w Eclipsie, zobaczy błąd i trafi na ścianę.
Wprowadzając cokolwiek najlepiej na dole dać przykład całej klasy z funkcją main używającą tego nowego elementu. I zapisywać sobie na boku, które pojęcia informatyczne się już wprowadziło, a innych nie używać. 

Ogólnie jednak kurs zapowiada się całkiem nieźle. :-)


Pozdrawiam,
Olaf



2014/1/3 Dariusz Luksza <dariusz...@gmail.com>


--
--
Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
Więcej informacji na stronie http://groups.google.com/group/warszawa-jug?hl=pl
Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
Oferty pracy dozwolone zgodnie z zasadami na http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie

--- Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie "Warszawa Java User Group (Warszawa JUG)".

Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do warszawa-jug+unsubscribe@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out

Dariusz Luksza

unread,
Jan 3, 2014, 4:34:19 PM1/3/14
to warsza...@googlegroups.com
Dziękuję Olaf za dokładną analizę dotychczasowych części kursu. Zauważyłeś kilka ewidentnych uchybień, które poprawię w najbliższym czasie.

Staram się pisać jak najprostszym językiem oraz unikać wszelkich naleciałości zawodowych nabytych w codziennej praktyce. Niestety jak sam zauważyłeś umknęła mi definicja operatora oraz słowa
"zwracać". Szczerze mówiąc to nie wpadł bym na to żeby zdefiniować to ostatnie.

W przypadku typów oraz zmiennych to dla początkującego (takiego z zerową wiedzą na temat programowania) jest to problem jajka oraz kury. Nie znając pojęcia zmiennej nie można wprowadzić pojęcia jej
typu. Zdecydowałem się najpierw wprowadzić pojęcie zmiennej oraz przypisania, a potem dopiero dołączyć do tego typy. Dlatego też wyraźnie na początku wpisu o zmiennych zaznaczam, że podane przykładny
nie będą działać/się kompilować.

Również wychodzę założenia, że najlepszym przykładem jest działający kod (przykłady tego zobaczysz w przyszłym tygodniu we wpisach o if'ie oraz switch-case). Z tym, że w przypadku typów oraz zmiennych
nie chciałem pisać: "nie zwracaj teraz uwagi na słowo int występujące przed nazwaZmiennej", zdecydowałem się na użycie nie działającego kodu oraz zaznaczenie że to jest wyjątkowy przypadek w którym
przedstawiany kod nie będzie działał.

Wniosek dla mnie jest jeden, muszę jeszcze raz przemyśleć wpisy o zmiennych oraz typach, może je przeorganizować... jeszcze raz dziękuję za uwagi i czekam na kolejne ;)

Pozdrawiam

On 01/03/2014 09:56 PM, Olaf Matyja wrote:
> Akurat moja żona uczy się od zera programowania, więc temat kursu Javy od podstaw mam ćwiczony na żywym organizmie. Moim zdaniem najlepszy jak dotąd kurs od podstaw w sieci jest tu:
> http://javastart.pl . Mimo wszystko najlepszy, choć jak żona przeczytała, że elementy klasy to obiekty ("Obrazowym przykładem może być czteroosobowa rodzina jadąca samochodem. Samochód to klasa,
> natomiast rodzina to jej elementy, powiemy o nich obiekty.") to wszystko jej się pomieszało, a zwłaszcza pola z obiektami, ale za to myślała, że w końcu zaczyna rozumieć.
> Najlepszy kurs książkowy dla początkujących to chyba Head First Java.
>
> Pozwolę sobie na kilka krytycznych uwag, bo choć Twój blog jest całkiem dobrze pisany, to niekiedy trudno sobie wyobrazić początkującego czytelnika.
> Głównym problemem początkującego jest nierozumienie słów, i skrótów myślowych, które my tak dobrze znamy, że nie rozumiemy, że to nie są słowa potoczne i wymagają definicji.
> Na przykład po dłuższych próbach tłumaczenia czegoś żonie zrozumiałem w końcu, że słowo "zwróci" ("metoda zwróci wartość") wcale nie jest potoczne, to już slang informatyczny. Lepiej pisać "da w wyniku".
> Z tego co widzę, też czasem piszesz o czymś, nie wprowadzając tego wcześniej, np. oprócz używania tego "zwróci", nie podajesz też w ogóle co to jest operator, ani od razu przykładu programu z
> operatorami, podajesz tylko ich listę. Używasz też sformułowań typu "własnościowe pakiety" bez żadnej definicji.
> Przy instalacji JDK pod Windows zdaje się nie wystarczy instalator, trzeba sobie jeszcze ustawić zmienną systemową PATH. Początkujący tu padnie jak mu nie napiszesz, co gdzie w Windowsie kliknąć, bo
> nie będzie rozumiał co się dzieje.
> Wprowadzając zmienne nie podajesz przykładu całego programu, tylko wyrwaną z kontekstu instrukcję podstawienia, przez co początkujący nie wie, gdzie to ma umieścić. Najpewniej skopiuje do okienka w
> Eclipsie, zobaczy błąd i trafi na ścianę.
> Wprowadzając cokolwiek najlepiej na dole dać przykład całej klasy z funkcją main używającą tego nowego elementu. I zapisywać sobie na boku, które pojęcia informatyczne się już wprowadziło, a innych
> nie używać.
>
> Ogólnie jednak kurs zapowiada się całkiem nieźle. :-)
>
>
> Pozdrawiam,
> Olaf
>
>
>
> 2014/1/3 Dariusz Luksza <dariusz...@gmail.com <mailto:dariusz...@gmail.com>>
>
> Hej,
>
> Jakiś czas temu dopadła mnie myśl, że nie ma dobrego kursu Java. Takiego który opisuje aktualną wersję języka, bazuje na praktycznej wiedzy autora zdobytej w czasie pracy zawodowej oraz pokazuje
> najnowsze standardy i narzędzia używane przy tworzeniu oprogramowania.
>
> Większość materiałów które znalazłem w sieci bazuje na JDK 1.4 lub 1.5. Część z nich tworzona jest przez studentów którzy sami bojem rozpoznają teren. Inna przez osoby które po stworzeniu kursu C,
> C++, PHP stwierdziły, że teraz jest kolej na Java. W dodatku 90% z wszystkich dostępnych materiałów promuje "pisanie aplikacji w notatniku".
>
> Dlatego, zebrałem się w sobie i zacząłem pisać książkę. Stworzenie pozycji która pokrywała by wszystkie zamierzone cele zajęło by mi pewnie kilka lat. Z tego też powodu zamysł o książce zastąpiony
> blogiem http://javablog.pl/. Możliwe, że później zbiorę opublikowane tam wpisy w formę książki... zobaczymy.
>
> Właśnie tak powstał mój najnowszy projekt: Blog, Java od podstaw (http://javablog.pl/), gdzie tłumaczę od podstaw tajniki związane z programowaniem. Znajduje się tam wytłumaczenie różnic pomiędzy
> programami pisanymi w C/C++, a tymi dla JVM, a także opis jak działa JVM. Oraz takie podstawowe rzeczy jak: co to jest zmienna oraz jej typ. Nie długo znajdą się tam również wpisy o instrukcjach
> warunkowych if i switch/case.
>
> W kursie tym chcę zawrzeć wiedzę jaką zdobyłem w ciągu ponad pięciu lat praktyki zawodowej w różnych projektach jakie realizowałem w tzw. "pracy dziennej", wiedzę wyniesioną z projektów OpenSource
> w które angażowałem się w wolnym czasie oraz tą zdobytą przy realizacji moich własnych projektów. Skupię się głównie na Eclipse IDE jako narzędziu do wytwarzania oprogramowania (bez obaw, "hello
> world" w notatniku również się znajduje w kursie ;)), opiszę przydatne funkcje tego środowiska oraz skróty klawiaturowe przyśpieszające pracę. Nie ominę też, tak popularnego ostatnio tematu
> programowania funkcyjnego w Java (z wykorzystaniem Google Guava oraz wyrażeń lambda z Java8). Znajdzie się również miejsce dla Dependency Injection z Google Guice... oraz lubiany/nienawidzony
> Maven. A wszystko to okraszone przykładami kodu oraz dokładną jego analizą.
>
> Jak widzicie jest tego sporo. Na pewno każdy znajdzie coś dla siebie ;)
>
> Zachęcam Was do odwiedzenia http://javablog.pl/, podzielenia się informacją o istnieniu tego kursu ze znajomymi. Oraz do zgłaszania uwag oraz opinii na temat publikowanych materiałów!
>
> pozdro!
>
> --
> Best regards
>
> Twitter: @dluksza
> GSM: +49 017 445 41235 <tel:%2B49%20017%20445%2041235>
> LinkedIn: http://linkedin.com/in/__dariuszluksza <http://linkedin.com/in/dariuszluksza>
>
> --
> --
> Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
> Więcej informacji na stronie http://groups.google.com/__group/warszawa-jug?hl=pl <http://groups.google.com/group/warszawa-jug?hl=pl>
> Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
> Oferty pracy dozwolone zgodnie z zasadami na http://sites.google.com/site/__warszawajug/oferty-pracy-na-__grupie <http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie>
>
> --- Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie "Warszawa Java User Group (Warszawa JUG)".
>
> Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do warszawa-jug+unsubscribe@__googlegroups.com <mailto:warszawa-jug%2Bunsu...@googlegroups.com>.
> Więcej opcji znajdziesz na https://groups.google.com/__groups/opt_out <https://groups.google.com/groups/opt_out>
>
>
> --
> --
> Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
> Więcej informacji na stronie http://groups.google.com/group/warszawa-jug?hl=pl
> Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
> Oferty pracy dozwolone zgodnie z zasadami na http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie
>
> ---
> Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „Warszawa Java User Group (Warszawa JUG)”.
>
> Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do warszawa-jug...@googlegroups.com.
> Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out


Grzegorz Balcerek

unread,
Jan 3, 2014, 7:35:22 PM1/3/14
to warsza...@googlegroups.com
Plan potencjalnego napisania ksi��ki jest bardzo ambitny i na pewno
czasoch�onny.
Kilka lu�nych uwag -- skoro zach�casz.

Przyda�by si� spis tre�ci z odno�nikami do wszystkich wpis�w.

S�uszny wydaje mi si� pomys� zapisywania/�ledzenia gdzie s� wprowadzane
poj�cia i nieu�ywania tych poj�� wcze�niej. Dodatkowo mo�e to by�
zacz�tkiem indeksu kt�ry mo�e si� przyda� w ksi��ce. Oczywi�cie problem
jajka i kury pozostaje. Pomoc� mog� by� odwo�ania w tek�cie (wi�cej
informacji na temat ... znajdziesz ...). Masz za to tagi, linki i
powi�zane wpisy co te� mo�e pom�c.

Trudno unikn�� wszystkich liter�wek (PierwszyPorgram, wszytko). Pom�c
mo�e np. jaki� spell checker oraz czytanie ponowne (wielokrotne!) tego
co si� napisa�o po jakim� czasie od napisania.

Mam wra�enie �e po polsku m�wi si� wiersze a nie linie kodu.

Co do konkretnego problemu wyja�nienia czym jest zmienna to podaj� pod
rozwa�enie troch� inne podej�cie od wyja�niania �e zmienna to nazwany
obszar pami�ci.
A mo�e lepiej udawa� na pocz�tku �e zmienna to nazwa warto�ci, dzi�ki
kt�rej nie trzeba tej samej warto�ci pisa� za ka�dym razem. np zamiast
10*10 mo�na napisa� r*r.
Informacj� �e ta warto�� mo�e si� zmieni� zachowa� na troszk� p�niej --
mo�e drug� cz�� wpisu o zmiennych. A pisanie o pami�ci komputera bym w
tym miejscu sobie darowa�. A bardziej og�lnie pisz�c, problem jak
wyja�nia� poj�cia jest ciekawy ale i trudny i pewnie wielokrotnie przed
nim jeszcze staniesz.

Pozdrawiam
Grzegorz Balcerek

W dniu 2014-01-03 19:39, Dariusz Luksza pisze:
> Hej,
>
> Jaki� czas temu dopad�a mnie my�l, �e nie ma dobrego kursu Java.
> Takiego kt�ry opisuje aktualn� wersj� j�zyka, bazuje na praktycznej
> wiedzy autora zdobytej w czasie pracy zawodowej oraz pokazuje
> najnowsze standardy i narz�dzia u�ywane przy tworzeniu oprogramowania.
>
> Wi�kszo�� materia��w kt�re znalaz�em w sieci bazuje na JDK 1.4 lub
> 1.5. Cz�� z nich tworzona jest przez student�w kt�rzy sami bojem
> rozpoznaj� teren. Inna przez osoby kt�re po stworzeniu kursu C, C++,
> PHP stwierdzi�y, �e teraz jest kolej na Java. W dodatku 90% z
> wszystkich dost�pnych materia��w promuje "pisanie aplikacji w notatniku".
>
> Dlatego, zebra�em si� w sobie i zacz��em pisa� ksi��k�. Stworzenie
> pozycji kt�ra pokrywa�a by wszystkie zamierzone cele zaj�o by mi
> pewnie kilka lat. Z tego te� powodu zamys� o ksi��ce zast�piony
> blogiem http://javablog.pl/. Mo�liwe, �e p�niej zbior� opublikowane
> tam wpisy w form� ksi��ki... zobaczymy.
>
> W�a�nie tak powsta� m�j najnowszy projekt: Blog, Java od podstaw
> (http://javablog.pl/), gdzie t�umacz� od podstaw tajniki zwi�zane z
> programowaniem. Znajduje si� tam wyt�umaczenie r�nic pomi�dzy
> programami pisanymi w C/C++, a tymi dla JVM, a tak�e opis jak dzia�a
> JVM. Oraz takie podstawowe rzeczy jak: co to jest zmienna oraz jej
> typ. Nie d�ugo znajd� si� tam r�wnie� wpisy o instrukcjach warunkowych
> if i switch/case.
>
> W kursie tym chc� zawrze� wiedz� jak� zdoby�em w ci�gu ponad pi�ciu
> lat praktyki zawodowej w r�nych projektach jakie realizowa�em w tzw.
> "pracy dziennej", wiedz� wyniesion� z projekt�w OpenSource w kt�re
> anga�owa�em si� w wolnym czasie oraz t� zdobyt� przy realizacji moich
> w�asnych projekt�w. Skupi� si� g��wnie na Eclipse IDE jako narz�dziu
> do wytwarzania oprogramowania (bez obaw, "hello world" w notatniku
> r�wnie� si� znajduje w kursie ;)), opisz� przydatne funkcje tego
> �rodowiska oraz skr�ty klawiaturowe przy�pieszaj�ce prac�. Nie omin�
> teďż˝, tak popularnego ostatnio tematu programowania funkcyjnego w Java
> (z wykorzystaniem Google Guava oraz wyra�e� lambda z Java8). Znajdzie
> si� r�wnie� miejsce dla Dependency Injection z Google Guice... oraz
> lubiany/nienawidzony Maven. A wszystko to okraszone przyk�adami kodu
> oraz dok�adn� jego analiz�.
>
> Jak widzicie jest tego sporo. Na pewno ka�dy znajdzie co� dla siebie ;)
>
> Zach�cam Was do odwiedzenia http://javablog.pl/, podzielenia si�
> informacj� o istnieniu tego kursu ze znajomymi. Oraz do zg�aszania
> uwag oraz opinii na temat publikowanych materia��w!
>
> pozdro!
>

Reply all
Reply to author
Forward
0 new messages