Czy Ruby on Rails ma mieć stromą krzywą uczenia się, czy to tylko ja? [Zamknięte]

17

Jestem programistą-samoukiem. Uczę się RoR od października z różną intensywnością (czasem cały dzień, czasem nic przez kilka tygodni). Wcześniej znałem tylko Javę, ale znałem ją całkiem dobrze. Słyszałem tyle szumu na temat RoR i tego, jak ma cię uszczęśliwić, zwiększyć produktywność itp. Do tej pory tylko mnie frustrowało. Nauczyłem się tego z książki Agile i podejrzewam, że część trudności może wynikać z mojej nieznajomości JavaScript i CSS, a także z chwiejnym opanowaniem baz danych i HTML. Ale najwyraźniej zajęło mi dużo więcej czasu, aby ukończyć projekt w książce Agile niż inni ludzie i nadal nie pamiętam zbyt wiele. Są pewne rzeczy na temat Railsów, których po prostu nie mogę uzyskać, np. Kiedy używać symboli, a kiedy NIE, lub jak wywoływane są metody dynamiczne.

Ostatnio otrzymałem małe zadanie Rails, w którym poproszono mnie o drobną zmianę interfejsu. Zajęło mi to około 25 godzin i chociaż poczyniłem pewne postępy w zrozumieniu kodu, nadal nie mam pojęcia, jak postępować. Nie mogę nawet poprosić o przepełnienie stosu, ponieważ jest tyle kodu, który muszę podać, aby podać kontekst.

Więc moje pytanie jest w tytule: czy RoR powinien długo się uczyć, czy jestem po prostu wolny? Czy to możliwe, że uczyłem się z niewłaściwej książki? Mój styl uczenia się jest taki, że albo nic nie rozumiem, albo rozumiem wszystko, jeśli ma to sens.

Bułeczki Tootsie
źródło
1
Uczenie się jest zawsze przyrostowe , za każdym razem rozumiesz coś więcej. Rozwiązywanie problemów jest trudne i wymaga cierpliwości (bez względu na znajomość języka programowania), wcześniej zaakceptujesz, że łatwiej będzie ci je rozwiązać z opanowaniem.
Aditya P
Myślałem, że tak, ale prawdopodobnie dlatego, że sama konwencja jest zorientowana w moim przypadku. Bardzo przyzwyczajony do konfigurowania wielu rzeczy, które robi jako konwencja.
rig

Odpowiedzi:

17

Z twojego pytania wynika, że ​​nie tylko Railsy próbujesz się nauczyć, ale jednocześnie musisz zrozumieć koncepcje tworzenia stron WWW, a także baz danych i SQL. To ogromne zadanie, więc bądź cierpliwy.

Z drugiej strony, z Railsami nie masz wyboru - musisz nauczyć się wszystkich trzech: M, V i C od MVC , wszystkie w tym samym czasie, ale tak by było w przypadku każdego frameworka MVC, przy czym Rails były jednymi z najłatwiejszych , Powiedziałbym.

Zamiast tego możesz zacząć od prostszego frameworka, takiego jak Sinatra, dopóki nie zaznajomisz się z podstawowymi pojęciami Ruby i HTTP, a następnie powoli posuniesz się dalej w kierunku bogatszej prezentacji (widoki i CSS) i modeli opartych na bazie danych.

Mladen Jablanović
źródło
10

Kiedy uczysz się Railsów, a Twoje jedyne tło to Java, nie uczysz się tylko nowej platformy internetowej. Uczysz się również nowego języka programowania, który znacznie różni się od języka Java.

Może ci pomóc najpierw nauczyć się Ruby, a potem przyjrzeć się Railsom i ich konwencjom. Uczenie się, co robi Rails i jak to działa, stało się dla mnie o wiele łatwiejsze, gdy nie musiałem już więcej próbować zrozumieć Ruby i mogłem czytać (i pisać) kod / szablony Railsów.

Przeszedłem przez Ruby on Rails Tutorial i okazało się bardzo pomocne. Poradnik książka jest za darmo i nie jest to wersja dla Rails 2.3 i 3.0. Pomocne może być również przeczytanie MVC (Model-View-Controller) i ogólnie rozwoju sieci / cyklu życia strony.

Adam Lear
źródło
6

Anita, miałem prawie takie same doświadczenia jak ty. ale myślę, że teraz rozumiem, dlaczego tak trudno jest się nauczyć:

  • RoR nie jest jednym językiem, jest to szeroki zbiór technologii, języków i technik.
  • To nie jest jak Java, C ++ lub inne języki, które mają logiczną strukturę
  • Nie ma jednego sposobu na naukę ani jednej książki, która mogłaby cię nauczyć (więcej na ten temat później)
  • Moim zdaniem społeczność wydaje się mieć nieco „opiniotwórczą” postawę, która nie jest tak wybaczająca jak inne społeczności podczas nauki. Ludzie regularnie nie zgadzają się co do tego, jak należy „zrobić”. To pochodzi z góry, od faceta, który wynalazł RoR
  • Zdecydowanie zachęca się do testowania, aby stanowiły kluczowy element rozwoju większości lekcji RoR, a językami testowymi są języki DSL, które mogą również przyczynić się do już i tak dużego obciążenia edukacyjnego.
  • Nie ma odpowiedniej dokumentacji dla tego języka, tylko interfejs API, niektóre przewodniki i wszystkie znalezione książki.
  • Niektóre podstawowe metody i techniki są „automagiczne” i nie jest jasne, jak działają. Na przykład metody has_secure_password.

Uczę się tego od ponad roku i oto kilka rzeczy, które moim zdaniem ułatwiają naukę, do których doszedłem z doświadczenia:

  • Atakuj z kilku stron. Gdy masz do dyspozycji kilka książek, samouczków i blogów, możesz „otworzyć” drogę do nauki. Pojedyncza książka lub blog może sprawić, że utkniesz.
  • Rozważmy uczenie trochę HTML / CSS & Ruby. To nie wszystko, wystarczy, aby sobie poradzić, zanim podejdziesz zbyt daleko do RoR.
  • Weź udział w kursie na temat RSpec (lub podobnej metodologii testowania). Codeschool na RSpec jest szczególnie dobry, dzięki czemu nie utkniesz na lekcji RoR, ponieważ nie możesz przejść testu.
  • Zdobądź około 3 książek. Obie Fernandez „The Rails 3 Way” jest koniecznością, używany w celach informacyjnych, gdy jest coś, czego po prostu nie dostajesz (nie do czytania od okładki do okładki). Zwinny, o którym wspomniałeś, po prostu mnie zdezorientował. „Learing Rails 3” podchodzi do rzeczy z innego kierunku i może pomóc rozwiązać niektóre problemy, których nie można uzyskać z innych samouczków.
  • Przeprowadź zrzut ekranu lub kurs online. Samouczek Michaela Hartla jest dobry, ale bardzo stromy. Przekonałem się, że powyższe książki oraz kurs Codeschool na temat RSpec pomogły mi przez to przejść - ale wciąż musiałem skontaktować się z autorem w kilku drobnych kwestiach.
  • Zapytaj, pytaj, pytaj! Istnieje forum Ruby, forum Rails, pokoje IRC i StackExchange itp. - używaj ich wszystkich, często !

Nie poddawaj się - jesteś inteligentny, ale wydaje się, że masz styl uczenia się podobny do mnie, a Rails jest po prostu bardzo trudny do nauczenia się i nigdzie nie jest szczególnie dobrze nauczany.

dziesięć razy
źródło
4

Być może problemem jest mniej rubinowy (i lub szyny), a bardziej fakt, że masz tylko „chwiejny chwyt” HTML / CSS / JavaScript oraz SQL i baz danych.

Railsy to „framework z pełnym stosem”. Jeśli twoje wcześniejsze doświadczenie programistyczne jest oparte na Javie z pewnym Swingiem, musisz nauczyć się wielu rzeczy w tym samym czasie.

Gdybym podchodził do tego problemu, zacząłbym najpierw od przybicia SQL i modelowania relacyjnego (nie ma problemów z układem przeglądarki z SQL!). Gdy masz pewność co do warstwy bazy danych, zagraj za pomocą ActiveRecord i dowiedz się, jak szyny owijają krotki z bazy danych.

Następnym krokiem byłoby poznanie kontrolerów i routingu, a następnie interfejsu użytkownika (html / javascript itp.).

Jeśli zamierzasz tworzyć dowolne strony WWW przy użyciu praktycznie dowolnego frameworka, musisz zrozumieć SQL i modelowanie relacyjne (nawet jeśli później wybierzesz trasę NoSQL).


źródło
1

Pochodzę także z języka Java i miałem trudności z nauką Railsów. Miałem wszystkie te same problemy, o których wspomniałeś. Odkryłem, że oglądanie railscasts.com pomogło na początku. Samo zobaczenie, jak ktoś inny to zrobił, pomogło mi to zrozumieć. Jednak nie dotknąłem Railsów, odkąd Rails 3 wyszedł.

mbreedlove
źródło
1

Twoje słowa „czasami cały dzień, czasem nic przez kilka tygodni” mówią mi wszystko, co muszę wiedzieć. Jeśli uczysz się nowego frameworka AND (zakładam, że to właśnie robisz, ponieważ wspominasz o „Ruby on Rails”, a nie tylko „Ruby”), spójność się opłaca. Odkryłem, że jedynym sposobem, w jaki uczę się i zachowuję koncepcje, jest studiowanie około pół godziny dziennie, zwykle pod koniec dnia, tuż przed snem. Jeśli studiuję dłużej niż pół godziny, zaczynam się denerwować i tracę koncentrację. Jeśli mniej się uczę, nie zachowuję tego, czego się nauczyłem.

Wyeliminuj rozproszenia - to moja najlepsza rada. I ucz się każdego dnia tygodnia. Zanim się zorientujesz, wszystko zacznie się układać.

Nie widziałem żadnych kolejnych postów, więc zastanawiam się, jak sobie poradziłeś. Minęły 2 lata i na pewno powinno być dużo czasu, aby nauczyć się być programistą najwyższej klasy!

użytkownik2583747
źródło
0

Opieram Ruby i Railsy od około 8 miesięcy. Przyszedłem ze zrozumieniem HTML, XML, SQL. Nadal znalazłem ten sam problem, co ty, pracowałam nad prawdziwymi problemami, a nie tylko czytając i mając nadzieję na zrozumienie. Być może będziesz musiał uruchomić wiele małych testów fragmentów kodu lub mvc, aby uchwycić koncepcję. Symbole to coś, nad czym wciąż pracuję. Po prostu weź to jeden problem na raz, a kiedy je rozwiążesz, nauczysz się czegoś potrzebnego do rozwiązania kolejnego problemu w twoim projekcie.

Odpowiedź: Nie, nie powinna mieć stromej krzywej uczenia się, krzywa jest różna w zależności od twojego pochodzenia.

OpenCoderX
źródło
0

To może. Wiem, że wpadam na „krzywą uczenia się” za każdym razem, gdy próbuję naprawdę usiąść i skupić się na nauce Railsów (co kilka miesięcy od około 2 lat). Problem polega na tym, że wiele rzeczy w Railsach zmienia się w błyskawicznym tempie, a często znalezione zasoby są przestarzałe prawie natychmiast.

Radzę zacząć od skoncentrowania się na Ruby (przynajmniej podstawy), a następnie na Railsach, abyś nie polegał w 100% na frameworku Rails, aby obsłużyć wszystko za Ciebie. Powinieneś także odświeżyć HTML / CSS / JavaScript z oczywistych powodów. Również z doświadczenia nie daj się wciągnąć w ciągłe odejście w świecie Rails: jeśli możesz zignorować wszystkie nowości, cognoscenti z Rails ewangelizują, jak Haml, Sass, RSpec / BDD, Ogórek itp., Albo utopisz się w konieczności naucz się BDD i RSpec, aby napisać kod, musisz nauczyć się Hamla i Sassa (nie jest to trudne, ale to kolejna rzecz do nauczenia się), aby kodować interfejs, itp. Zacznij tak prosto, jak to możliwe.

Wayne Molina
źródło
0

Istnieje krzywa uczenia się dla dowolnego języka programowania. Tak naprawdę nie uczymy się języka w tradycyjny sposób. Podobnie jak C / C ++, ale kiedy rzeczy stają się realne, musimy również poznać zalety kilku technologii.

Najlepszym sposobem podejścia do tego jest uczenie się przez działanie. Dołóż wszelkich starań, aby zrobić to sam. Zwykle czytamy różne rzeczy, ale jeśli chodzi o prawdziwy obraz, utkniemy z tym. Jestem natywnym programistą C ++, mogę również kodować w języku C #. Wiem, że w tym języku i bibliotece jest dużo dobroci z abstrakcyjnego punktu widzenia, ale wiele tematów właśnie przeczytałem i pominąłem. Więc jeśli mnie zapytasz, jestem niepełnosprawny.

Uczę się frameworka Django. Książka, którą wybrałem, jest interesująco prosta i tworzy aplikację zakładek społecznościowych. To tak, jakby uczyć się od podstaw do poziomu zaawansowanego, wykonując prawdziwy projekt. Sugeruję, abyście podeszli w ten sposób, ponieważ wszyscy uczymy się tego sami.

sarat
źródło
0

Rzecz w RoR, szczególnie w drugim „R”, polega na tym, że większość samouczków edukacyjnych koncentruje się na nauce stylu „małpki kodowej”. Zwłaszcza książka Agile, jest pełna powierzchownych „teraz tylko to robimy, nie przejmuj się” krokami programowania. Plus fakt, że ciągle zmieniają swój paradygmat - tj. Najpierw reklamowali RJS po drodze, teraz nagle chodzi o UJS.

Jak sugerują tu niektórzy ludzie, możesz najpierw spróbować poznać tajniki samego języka Ruby, a następnie przejść do frameworka. Jeśli nadal chcesz uczyć się obu razem, uważam, że ta książka o nazwie „Ruby for Rails” jest bardzo pomocna.

Jas
źródło