Programowanie w Ruby od podstaw - kurs wideo PL

A z jakimi podstawami powinien podchodzić do tego szkolenia kursant. Można odpowiedzieć, że to jest od podstaw, ale jakieś podstawy muszą być.

Zapewniamy, że do naszego kursu nie musisz posiadać żadnych podstaw. Jeżeli nie znasz żadnego języka programowania to ten kurs będzie dla ciebie idealny.

1 Like

W związku z tym, że informacja o nowym kursie, którą umieściliśmy na forum przerodziła się w bardzo żywą i ciekawą dyskusję, jednak niestety trochę na inny temat niż sam kurs (off-topic), chcieliśmy w krótki sposób podsumować i wytłumaczyć pewne kwestie.

  1. Nasza publikacja to pierwsza w Polsce publikacja w formie filmów instruktażowych w pełni poświęcona wyłącznie językowi Ruby. Na rynku jest kilka publikacji jednak dotyczą one głównie frameworka RubyOnRails i poruszają w niewielkim zakresie “czysty” język Ruby. Ten kurs to 6 godzin poświęconych tylko i wyłącznie programowaniu w Ruby.
    W obecnej chwili pracujemy również nad ukończeniem prawie 12-godzinnej publikacji na temat RubyOnRails. Kurs będzie bardzo praktyczny, zbudujemy w nim kompletny, bardzo funkcjonalny CMS m.in. wyposażony w zarządzanie użytkownikami, stronami, kategoriami, formularzami, ładowanie plików, galerię zdjęć i wiele innych. Pokażemy również jak wdrożyć front do zbudowanego wcześniej zaplecza, czyli krótko mówiąc poznasz proces budowy kompletnej strony od a-z z omówieniem każdej linijki kodu.
    Sporo osób nie ma jeszcze świadomości na temat jakości naszych produktów, dlatego chcielibyśmy zaznaczyć, że kursy przed stworzeniem są dokładnie przemyślane, a przed samym oddaniem do publikacji “testowane” przez co najmniej kilka osób. Kursy w odróżnieniu od innych publikacji, które mają formę nagrania na żywo ze szkolenia stacjonarnego lub webinaru są przemyślane, przygotowane i nagrane off-line, co oznacza, że czas jest maksymalnie wykorzystany. Każda minuta twojego cennego czasu jest dla nas najważniejsza, dlatego w naszych kursach nie znajdziesz przysłowiowego “lania wody”.

  2. Używanie polskich nazw w klasach, atrybutach itp. to nie błąd jakby mogło to wynikać z dyskusji. Prawdą jest, że zazwyczaj programiści pracujący w zespołach, w swoich projektach używają języka angielskiego gdyż jest on prostszy, bardziej logiczny, a sama struktura kodu opiera się właśnie o ten język.
    Ponieważ jesteśmy polskim wydawcą z 8-letnim doświadczeniem tworzymy publikacje w taki sposób, aby były zrozumiałe dla jak największego grona właśnie polskich odbiorców. Wiemy, że często barierą w zrozumieniu podstaw obsługi programu lub w zrozumieniu logiki języka programowania jest język obcy, dlatego też w naszych publikacjach szczególny nacisk kładziemy na to co najistotniejsze, a nie utrudniamy nauki już na samym początku.
    Prawie wszystkie nasze publikacje (takie jak np JAVA, C++, C#, PHP) są zbudowane w oparciu o polskie przykłady co na przestrzeni kilku lat zostało zweryfikowane i docenione przez ogromną liczbę klientów (patrz komentarze: sklep strefakursow.pl, opineo, allegro itp).
    A więc jeżeli anglojęzyczne publikacje sprawiją ci trudność, wykłady na studiach są niezrozumiałe, książki są nie najlepiej przetłumaczone, a kursy w dalszym ciągu nie przyczyniły się do twojego postępu - zapraszamy na strefakursow.pl

  3. Zgłoszenia ze strony kilku osób odnośnie rzekomych błędów zostały wyjaśnione przez samego autora kursu Tomasza Kubisztala co wynika z poniższej mało klarownej dyskusji.
    Niestety zapewne mało osób posiada czas na analizowanie całej dyskusji i wyciąganie z niej własnych wniosków, dodatkowo chyba żadna początkująca osoba dla której dedykowany jest kurs nie jest w stanie prawidłowo jej zrozumieć, dlatego uważamy, że niektóre opinie są dla nas krzywdzące, zważywszy na to, iż osoby które je napisały nie dokonały zakupu kursu, a swoją pochopną ocenę wystawiły w oparciu jedynie o dwa wyrwane z kontekstu darmowe fragmenty.
    Podsumowując, język Ruby cały czas ewoluuje co w praktyce oznacza, że nie zawsze podejście, które było stosowane do tej pory będzie sprawdzało się w nowszych wersjach. Dodatkowo w wielu kwestiach brak jest oficjalnego stanowiska, przez co dyskusje na temat np. wyższości jednego sposobu zapisu nad drugim mogą toczyć się pomiędzy użytkownikami w nieskończoność (jednak na szczęscie nie jest to istotne z punku widzenia początkującego użytkonika Ruby)

Chcieliśmy również mocno podkreślić, że naszych klientów nigdy nie pozostawiamy samych z kursem i jeżeli tylko pojawia się problem podczas nauki to staramy się zawsze pomagać.
Strefakursow.pl od początku istnienia tworzy publikacje z myślą o swoich odbiorcach, biorąc zawsze pod uwagę ich wszelkie sugestie i propozycje. Jeżeli zachodzi potrzeba to kursy są aktualizowane zgodnie z opiniami klientów, tak więc również teraz jesteśmy otwarci na uwagi z waszej strony.

1 Like

Podsumowując dyskusję, w kursie pada stwierdzenie:

które jest zwyczajnie nieprawdziwe. Nie wiem zatem, co w tym błędzie “rzekomego”.

3 Likes

To samo dotyczy się stwierdzenia (jak widać do tego autor się nie odniósł):

Rozumiem pewne uproszczenia, ale to mi sugeruje, że jednak autor tego kursu nie wie i w pozostałej części kursu przekazuje więcej takich błędnych informacji.

1 Like

Ja rozumiem, że Tomash trolluje w ten sposób, każdy się chyba przyzwyczaił i nikomu nie przeszkadza. Kolega natomiast nie powinien rzucać takich stwierdzeń tylko odnieść się do meritum.

Meritum jest takie, że w kursie są błędy (prawdziwe, nie rzekome), które po prostu należy poprawić, przeprosić, powiedzieć, że to przedostatni raz i po sprawie. Tłumaczenie, że okłamujemy (umyślnie wprowadzamy w błąd) kursantów, żeby nie tworzyli metod zaczynających się z wielkiej litery jest kiepskie. Uczyłem już wielu początkujących i żadnemu nawet przez palce (bo nie wiem czy przez myśl) nie przeszło, że możnaby zrobić coś takiego.

2 Likes

Według tego, co napisaliście, to po co osoba nieznająca angielskiego ma używać Ruby’ego, jeśli 100% nazw metod i klas opiera się na języku angielskim?

http://www.ruby-doc.org/core-2.1.1/String.html

Ma implementować własne aliasy po polsku, żeby później rozumieć, co się dzieje w jego własnym kodzie? Do programowania wymagana jest obecnie znajomość angielskiego i mówiąc, że można programować bez wprowadzacie kursantów w błędny idealny świat, w którym wszystko jest pięknie i ładnie… dopóki nie znajdą pracy. Po polsku, to można pisać komentarze w projekcie, który prowadzi polski zespół, a nie nazwy metod, litości.

Potem wyjdą takie kwiatki jak

class Uzytkownik < ActiveRercord::Base
  has_many :urzadzenies
end

class Urzadzenie < ActiveRecord::Base
  belongs_to :uzytkownik
end

Programować można i po polsku, tyle że nie w rubym :smiley: http://pl.wikipedia.org/wiki/SAKO

Super język - wygląda prosto, a w przypadku niejasności ma solidnie wyglądające pozycje książkowe:

Prace Zakładu Aparatów Matematycznych PAN, “System Automatycznego Kodowania SAKO – opis języka”, PAN – Warszawa 1961,

Temat do rozważenia dla autorów kursów programowania po polsku !

Kiedy wydacie railsy dla początkujacych ?

LOL, najbardziej rozbawiła mnie ta dyskusja dotyczący “z wielkiej” czy “od dużej”. Okazuje się, że nikt z Was nie ma racji :))) Poprawne sformułowanie to “wielką literą” - “z wielkiej” to rusycyzm :smiley: http://poradnia.pwn.pl/lista.php?id=443

7 Likes

Pokoloruj mnie zaskoczonym :wink:

Wychodzę z założenia, że materiałów do nauki nigdy za wiele i pomysł ciekawy, ale zgadzam się z pierwszą opinią @konole w tym wątku i następnymi.

Jako, że jest mi to bliski język to nie mogę przejść obok bez skomentowania. Poniżej nie odnoszę się do treści samego kursu, ale do twierdzeń osób za nim stojących, którzy z dobrymi praktykami mają chyba na bakier. Każdy może popełniać błędy, ale powinien je poprawiać gdy ktoś alarmuje go o błędzie.

Nazywanie metod i klas w języku polskim jest chybionym pomysłem. A co ze znakami diakrytycznymi w takich klasach? Dlaczego autorzy kursu używają nazw polskich niepoprawnych?
Co to jest class Samochod? Raczej chodzi o class Samochód? Ruby przecież pozwala nazwać klasę z użyciem znaków diakrytycznych ‘Samochód’.

W kodzie programu zawsze powinno chodzić o czytelność.

Czy
User.new.name
Uzytkownik.new.imie
Użytkownik.new.imię
Użytkownik.nowy.imię

Czy
Team.members.each do |member| puts member.name.capitalize end
Zespół.członkowie.each do |członek| puts członek.imię.capitalize end
Zespół.członkowie.każdy zrób |członek| wypisz członek.imię.wielką_literą koniec

ma jakikolwiek sens? I czy byłby czytelny?

Wklejenie takiego kodu z zapytaniem się kogoś o pomoc w ogólnoświatowej społeczności może rodzić konsternację i mniejszą chęć do pomocy.

Tak samo nieczytelny jest fragment z użyciem bloku 5.times {powitanie}. Powinno być 5.times { powitanie }.

Nazwy metod standardowych i klas są po angielsku!

Ja jako dziecko grałem na komputerze w gry po angielsku, bo innych nie było i dało radę, nie znając żadnego słowa po angielsku, ale dzięki temu uczyłem się angielskiego podczas zabawy. Gdyby były po polsku zapewne miałbym o wiele większe trudności z nauką tego języka później.

Twierdzenie ze nauka podstaw powinna być po polsku może być prawdą, ale tylko dla całkowitych laików w języku angielskim, ale przy tej okazji kursant powinien się właśnie uczyć jak najwięcej angielskiego, bo bez tego ani rusz później.

Kurs taki nie powinien uczyć nietrafionych praktyk programistycznych, którymi są nazywanie klas i metod po nie do końca polsku (rzeczony Samochod), w języku który ma semantykę angielską, stosowanie 4 lub więcej spacji gdy ogólnie jest przyjęte, że spacje mają być 2 (wystarczy zajrzeć chociażby na stronę główną dotyczącą Rubiego i zobaczyć, że we fragmentach kodu są 2 spacje. Cztery spacje wcale nie poprawiają czytelności, a wręcz ją zaburzają). Gdybym osobiście miał pracować na takim kodzie z nazwami pseudo polskimi i 4 spacjami to by mi się robiło niedobrze.

Linia kodu by być czytelna powinna mieć maksymalnie 80 znaków (tak da się tak pisać kod by się mieścił w liniach w 80 znakach - jest to dobry kod), a w uzasadnionych przypadkach dla pewnych języków do 120 (np. Java). Ruby należy do języków gdzie 80 znaków wystarcza dzięki temu, że są wcięcia na 2 spacje i relatywnie krótkie, znaczące nazwy metod i klas. Używanie tabulatorów do wcięć jest karygodne.

Osoby, które nabierają przez takie kursy złych praktyk programistycznych, potem jest ciężko takowych praktyk oduczyć. A ja potem jako programista muszę z takim bełkotem w kodzie się mierzyć.

Autorom płatnych kursów dotyczących Rubiego radziłbym konsultacje lub weryfikację takiego kursu przed jego opublikowaniem z kimś dobrze obeznanym w tematyce, żeby na przyszłość uniknąć takich wpadek. Bo jeśli już płacić to za jakość, a nie za jakoś.

2 Likes

Suma sumarum wygląda na to, że kursy tego typu rozbijają sie o ‘jakość’ ich twórców.

Bardzo mi się podobał ten temat, więc go wskrzeszam ciekawostką. Nie wiem czy Matz to taki kiepski programista, ale on chyba wprowadził taki wzorzec:

Array('dupa') #=> ["dupa"]

Gdzieś coś kiedyś, że powinno się tworzyć takie metody jako skróty dla YourObject.new.

@sharnik Generalnie idea jest taka, że poprzez metodę, która nazywa się tak samo jak klasa dostarczasz jakąś sensowną faktorkę na tworzenie danego obiektu, ale niekoniecznie to musi być dokładnie YourObject.new. Przykładem jest choćby Integer:

[1] pry(main)> Integer("1")
=> 1
[2] pry(main)> Integer.new("1")
NoMethodError: undefined method `new' for Integer:Class

Tutaj metoda Integer służy bardziej jako taki konwerter z typu String na Integer.

Z innych przykładów jakie pamiętam to nokogiri:

doc = Nokogiri::HTML(open('http://www.google.com/search?q=sparklemotion'))

Nie powiedziałbym, że powinno się tworzyć takie metody dla zasady. Raczej zostawiłbym to dla przypadków “corowych” (np. max 1 tego typu metoda per biblioteka, tak jak w przypadku nokogiri) albo DSL.

Ten Array jest nieco bardziej ‘skomplikowany’:

 Array('one')
 => ["one"] 

Array(['one'])
 => ["one"]

Uzywam tego czasem, gdy jakas metoda chce/musi skonwertowac swoj argument do (jednoelementowej) tablicy przed jej przetworzeniem, o ile argument ten juz nia nie jest. Ale wyglada to dziwnie.

W takich przypadkach można tez użyć splat operator w literale tablicy:

[19] pry(main)> [*nil]
=> []
[20] pry(main)> [*[1, 2, 3]]
=> [1, 2, 3]
[21] pry(main)> [*4]
=> [4]
3 Likes

Wcześniej kupiłem kurs Pythona, ale ten język nie zachwycił mnie ani trochę. Kilka dni temu napaliłem się na ten kurs Rubiego, ale czytając powyższą dyskusję widzę że ten kurs chyba jest niewypałem. Poza tym w spisie treści nie ma niczego o obsłudze błędów. Nic nie wiem o Rubim, ale czy on jest takim fajnym i wciągającym językiem, jak wstępny, zachęcający klip T.Kubisztala? Czy jest szansa że spodoba mi się (Ruby a nie pan Kubisztal) w sytuacji gdy Python wogóle mi nie podszedł?

Ciężko doradzić czy Ruby jest lepszy od Pythona. Tutaj dużo zależy od własnych preferencji i oczywiście warto próbować różnych języków, aby wybrać ten najlepszy. Z pewnością obiektowość Rubiego jest na plus, zwłaszcza kiedy stawiamy pierwsze kroki w programowaniu. Dodatkowym atutem jest Ruby on Rails (kurs RoR już niedługo dostępny na naszej stronie).

Jeśli chodzi o to czy kurs jest “niewypałem”, jak stwierdziłeś, to również nie jest to takie proste. Ten temat założyliśmy, aby pochwalić się kursem nad którym bardzo długo pracowaliśmy i z którego jesteśmy dumni (zaskoczeniem dla wielu osób byłoby ile czasu trzeba spędzić nad opracowaniem kursu). Zarzucono nam kilka rzeczy (np. stosowanie polskiego nazewnictwa), które są naszym wyborem. Uważamy, że nie ma monopolu na przekazywanie wiedzy i każdy ma wolny wybór z jakich źródeł chce się uczyć. My staramy się robić swoje jak najlepiej. Wsparcie i sugestie osób, które korzystają z naszych kursów pozwalają nam ciągle udoskonalać nasz produkt, tak, aby nauka była szybka i przyjemna.
Nie mniej jednak, nigdy nie odwracamy się od problemów i nie twierdzimy, że wiemy wszystko bo oczywiście tak nie jest. Również z każdym dniem się uczymy, dlatego zawsze mamy możliwość aktualizacji kursu jeżeli pojawią się jakieś błędy lub jeśli zmiany w omawianym temacie są na tyle duże, że jest to niezbędne (patrz kurs SEO).

Czy nasz kurs Ruby jest dla Ciebie? To zależy czego szukasz. Nasz kurs to szkolenie od zupełnych podstaw, przygotowane z myślą o osobach, które nigdy nie programowały lub mają bardzo niewielką wiedzę na ten temat. Głosy jakie otrzymujemy od osób, które już zapoznały się z kursem są bardzo pozytywne (zachęcam do przeczytania opinii na temat kursu na naszej stronie). Kurs ma uczyć logiki programowania, dać solidną podstawę do dalszego rozwoju. Jeśli znasz już nieco Pythona to część z omawianych tematów będzie dla Ciebie oczywista, ale z pewnością znajdziesz również coś co być może przekona Cię do tego języka.

I wreszcie na koniec. Nigdy nikogo nie chcemy wprowadzać w błąd dlatego na naszej stronie znajdziesz opis kursu, dokładny spis poruszanych zagadnień oraz darmowe fragmenty. Jeśli jednak zdecydujesz się na zakup i po zapoznaniu z kursem nie będziesz zadowolony to nie ma problemu ze zwrotem pieniędzy.