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.
źródło
Odpowiedzi:
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.
źródło
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.
źródło
Anita, miałem prawie takie same doświadczenia jak ty. ale myślę, że teraz rozumiem, dlaczego tak trudno jest się nauczyć:
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:
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.
źródło
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
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ł.
źródło
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!
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło