Jaką książkę polecacie

Jaką książkę polecacie. Czy warto zakupić Agile. Programowanie w Rails. Wydanie II - Heliona z wersją railsa 1.2 [ Którą nie mogę zainstalować u siebie na komputerze ], czy może coś innego polecacie jak tak to co. Najlepiej po polsku.

Dziękuję.

Żeby nie pisać znowu tego samego - http://www.rubyonrails.pl/forum/t905-Agile.-Programowanie-w-Rails.-Wydanie-II—W-Helionie

Przede wszystkim Ruby. Tao programowania w 400 przykładach Fultona.

Zależy dla kogo. Z Ruby Way (czy tam Tao) ciężko byłoby się początkującemu nauczyć języka.

Kolega chyba potrzebuje książki o Rails nie o Ruby. Chociaż w sumie w The Ruby Way jest kilkustronicowy rozdział o Rails (ale to chyba nie o to chodzi koledze).

Ale co koledze z Railsów jak nie bedzie znał Ruby??

Bez przesady. :slight_smile:

Każdy ma jakieś cele i potrzeby. Jeżeli ktoś chce zacząć od napisania prostej aplikacji w railsach, to wystarczy mu Agile. Na początku i tak jest to głównie CRUD i większość czasu spędza się na UI raczej niż na kodzie w modelach. W międzyczasie można podciągać się w rubim.

Wszystko zależy od podejścia. Nie wiem które jest lepsze. Dla mnie chyba lepiej byłoby zacząć od rubiego, ale to nie jest recepta dla każdego.

Polecam Rails Way Fernandeza - choć to ksiązka adresowana do ludzi pracujacych na codzien z rails…

A kto powiedział, że kolega nie zna Ruby’ego :]

Pozatym, tak jak powiedzial Drogus: Ruby’ego można uczyć się równolegle z Railsami (myślę nawet, że można się go nauczyć w podstawowym stopniu poznająć Railsy)

myślę nawet, że można się go nauczyć w podstawowym stopniu poznająć Railsy[/quote]
Mit. Wielu tak myśli i budzi się z ręką w nocniku. A potem ludzie myślą “@zmienna to taka zmienna, którą widać w szablonie”.

Myślę, że zależy to od konkretnej osoby (jego zdolności uczenia się oraz posiadanej wiedzy programistycznej [np. w innym języku]).

A co? Nieprawda? To, że oznacza to też co innego, to nieważne :stuck_out_tongue:

Myślę, że zależy to od konkretnej osoby (jego zdolności uczenia się oraz posiadanej wiedzy programistycznej [np. w innym języku]).[/quote]
Niezależnie od tego jakim jesteś programistą, ucząc się nowego języka są rzeczy, których z miejsca nie jesteś w stanie przeskoczyć. Są to w szczególności:

  • wszelkie tajniki składni
  • core i stdlib API (wiele rzeczy można intuicyjnie znaleźć ale niektóre rzeczy po prostu trzeba wiedzieć)
  • filozofia, idiomy języka
  • umiejętność posługiwania się narzędziami (irb, ri, rdoc, rake etc)
  • znajomość często używanych (zewnętrznych) bibliotek, które uznawane są za standard
  • znajomość działania interpretera “od środka” (implementacja) (np. żeby pisać w miarę wydajny kod)

Chyba nie łudzisz się, że da Ci to wszystko książka o frameworku?

A co? Nieprawda? To, że oznacza to też co innego, to nieważne :P[/quote]
To czemu taka @zmienna z klasy modelu nie jest widoczna w szablonie?:frowning:

[quote=radarek]- wszelkie tajniki składni

  • core i stdlib API (wiele rzeczy można intuicyjnie znaleźć ale niektóre rzeczy po prostu trzeba wiedzieć)
  • filozofia, idiomy języka
  • umiejętność posługiwania się narzędziami (irb, ri, rdoc, rake etc)
  • znajomość często używanych (zewnętrznych) bibliotek, które uznawane są za standard
  • znajomość działania interpretera “od środka” (implementacja) (np. żeby pisać w miarę wydajny kod)[/quote]
    Ja mówiłem o samych podstawach (które pozwolą napisać mi np. kilka prostych CRUDów składających się na “CMSa”) a nie o poznaniu Ruby’ego do pisania w (czystym) Rubym (w prostych aplikacjach Railsowych chyba nie używa się (zbyt dużo) stdlib itp.? Zwykle jest to: pobierz -> wyświetl -> zmień, pobierz -> usuń itp.).
    Z tą znajomością interpretera (dokładniejszą znajomością oczywiście) chyba się nie zgodzę. To tak jakby do jazdy na rowerze potrzebna by mi była wiedza o tym jak produkuje się przerzutki :]

[quote=zlw]Ja mówiłem o samych podstawach (które pozwolą napisać mi np. kilka prostych CRUDów składających się na “CMSa”) a nie o poznaniu Ruby’ego do pisania w (czystym) Rubym (w prostych aplikacjach Railsowych chyba nie używa się (zbyt dużo) stdlib itp.? Zwykle jest to: pobierz -> wyświetl -> zmień, pobierz -> usuń itp.).
Z tą znajomością interpretera (dokładniejszą znajomością oczywiście) chyba się nie zgodzę. To tak jakby do jazdy na rowerze potrzebna by mi była wiedza o tym jak produkuje się przerzutki :][/quote]
Ok, podstawy to może i poznasz, a co potem? Nie wierzę, że ktoś weźmie książkę i doczyta o samym Rubym. Nie zrobi tego bo przecież już umie programować w Rubym. Myślisz, że skąd się biorą Ci pseudo-programiście php? Jeden skrypt i już umieją język (ale książki to taki nie weźmie i nie przeczyta).

Z tą nieznajomością budowy przerzutek to nie do końca. Jak Ci się zepsuje rower to pójdziesz do mechanika (bo Ty chcesz jeździć na rowerze a nie uczyć się jego budowy). Ale jak Tobie się coś zepsuje w kodzie to do kogo pójdziesz? Ty jesteś właśnie tym mechanikiem (który przy okazji jeździ na rowerze).

Według mnie Radarek masz wiele racji. Można powiedzieć, że największą wadą Rubiego jest jego przyjemna nazwa, bo być może to z jej powodu ludzie bagatelizują język z rubinem w logu myśląc sobie “o, jaki ładny błyszczący Ruby”. Tymczasem wg mnie ani komercyjne Java czy C++, ani akademicki LISP, ani też niekonsekwentne PHP nie mają takiej siły ekspresji i tylu aspektów, jak ten język i nauka go to niebanalna i obszerna praca. Może być dla niektórych fascynująca i przyjemna, ale warto zaplanować ją na kilka tygodni.

Rails to po częsci taki trochę DML do serwisów internetowych i to przesłania prawdziwy obraz, bo z tutoriali człowiek patrzy i myśli: spoko, nauczę się tego DML, który wygląda banalnie i 2.days.from_now jestem RoR Hakerem. Ale bez przesady, pewne rzeczy trzeba pojąć, mówienie, że nauka Rubiego przy okazji Rails jest OK, jest proszeniem się o kolejne zdesperowane wątki na tym forum. Być może niektórzy lepiej będą się bawić ucząc się Rails równolegle z Rubym, zwłaszcza Ci z doświaczeniem w Pythonie, czy LISPie, ale dla większości jakiś podstawowy kurs filozofii Rubiego, włącznie z rzeczami typu map czy proc/lambda jest konieczny.

W Javie to samo jest z JEE, gdy ludzie, którzy nie wiedzą, co to jest programowanie rozproszone i RMI, a nawet często nie widząc, że zmienna to tylko referencja do obiektu, siadają do kontenera typu Weblogic i piszą swoje “zaawansowane oprogramowanie biznesowe”, po czym porównują stringi po object_id. Bo zdarzają się i tacy, ale dlaczego tam nikt nie mówi, że “spoko, o systemach rozproszonych i Javie doczytasz sobie w boju” tylko wszyscy traktują JEE poważnie? Logo? :wink:

Prosta sprawa: bez dobrej znajomości podstaw nie przeskoczysz pewnego pułapu w operowaniu na zagadnieniach bardziej zaawansowanych.

Tyczy się to każdej dziedziny aktywności, a nauk ścisłych (w tym programowania!) po trzykroć.

Nie znając dobrze Rubiego nie będziesz naprawdę dobrym programistą Ruby On Rails.
Nie znając dobrze zagadnień inżynierii oprogramowania, działania kodu na niskim poziomie, algorytmiki, struktur danych nigdy nie będziesz naprawdę dobrym programistą – włączając w to bycie dobrym programistą Ruby.

Zaletą jest to, że jeśli jesteś choć trochę bystry i masz do czynienia z bardziej biegłymi od siebie, szybciej to zauważysz. Studiując fizykę nie miałem na studiach matematyki dyskretnej (pomijając to, co akurat było na analizie i algebrze) ani wykładu z algorytmów i struktur danych, więc się uczyłem sam – wiadomo, mniej niż pełny 30h wykład i pod kątem potrzebnych mi w danej chwili rzeczy. Zaczęło mi tego brakować dopiero po osiągnięciu pewnego poziomu jako programista i nie mam wyjścia - książeczka od dyskretnej oraz alg+struktury to moje dwie najważniejsze lektury na wakacje. Od dechy do dechy :slight_smile:

That being said nie zgadzam się do końca z Radarkiem. Uważam że można poznać najpierw trochę Rubiego, a potem wejść w Railsy, poznając resztę Ruby w tzw. międzyczasie.

Inna sprawa: trzeba być świadomym tego, że Ruby to nie Railsy i trzeba go poznawać niejako “obok”, żeby potem móc zastosować tę wiedzę w projektach railsowych.

O, ironio, trochę patrzę z zazdrością na Twoją fizykę, bo moje lektury to analiza funkcjonalna i statystyka :wink:

P.S. A z IT polecam jeszcze “wizard booka” - pod tym hasłem w necie, lub w bibliotece polskie tłumaczenie “Struktura i interpretacja programów komputerowych”, WNT, 2002.

I myślisz że mało statystyki na studiach miałem? :wink:
I mechanikę kwantową udałoby się zrobić bez analizy funkcjonalnej? :wink:

[quote=Tomash]I myślisz że mało statystyki na studiach miałem? :wink:
I mechanikę kwantową udałoby się zrobić bez analizy funkcjonalnej? ;)[/quote]
Otóż to, a ja teraz muszę się tego uczyć sam, bo od semestru Statystyki miałem ciekawsze zajęcia, a analiza funkcjonalna chyba nie jest w programie podstawowym żadnych studiów informatycznych (może to i lepiej) :slight_smile:

A o tym wizard booku wspomniam, bo to dobre uzupełnienie do dyskretnej i algorytmiki, pomijając, że jest to po prostu podręcznik do Scheme. Wydaje mi się, że w onlineowej wersji nie ma ćwiczeń, jeśli tak, to koniecznie papierowa.

Być może nie do końca jasno się wyraziłem. Oczywiście głupotą byłoby uczenie się wpierw Rubiego aż do osiągnięcia doskonałej znajomości (czy to możliwe?:)), a potem Railsów. Jednak to na co chciałem zwrócić uwagę to fakt, że sporo ludzi zaczyna bezpośrednio od Railsów (w końcu to Ruby on Rails), coś tam im wychodzi i potem nie chce im się porządnie poduczyć języka. Uważam, że minimum zaczęcia zabawy z Railsami to np. Pickaxe (pomijam drugą połowę książki będącą opisem stdlib oraz takie rozdziały jak pisanie rozszerzeń w C).