У Ruby on Rails має бути крута крива навчання чи це лише я? [зачинено]


17

Я програміст-самоучок. Я вивчаю РО з жовтня з різною інтенсивністю (іноді цілий день, іноді нічого протягом декількох тижнів). До цього я знав лише Java, але знав це досить добре. Я чув так багато шуму про RoR і про те, як це повинно зробити вас щасливими, продуктивними і т. Д. Поки що це мене тільки засмутило. Я дізнався це з книги Agile, і я підозрюю, що частина труднощів може бути пов'язана з тим, що я не знаю JavaScript та CSS, і маю лише хитке розуміння баз даних та HTML. Але, мабуть, мені знадобилося набагато більше часу, щоб завершити проект у книзі Agile, ніж інші люди, і я все ще не дуже пам’ятаю цього. Є деякі речі щодо Rails, які я просто не можу отримати, наприклад, коли використовувати символи та коли НЕ, або як викликаються динамічні методи.

Нещодавно мені дали невелике завдання Rails, де мене попросили внести невеликі зміни в інтерфейс. На це пішло близько 25 годин, і хоча я досяг певного прогресу в розумінні коду, я все ще не маю уявлення, як діяти. Я навіть не можу запитати переповнення стека, оскільки є стільки коду, який я повинен надати, щоб дати контекст.

Отже, моє запитання в назві: чи потрібно, щоб РоР знадобився багато часу, щоб навчитися чи я просто повільний? Можливо, я навчився неправильної книги? Мій стиль навчання такий, що я або нічого не розумію, або все розумію, якщо це має сенс.


1
Навчання завжди інкрементальне , ви щоразу більше розумієте щоразу, коли щось дізнаєтесь. Розв’язування проблем важке і вимагає терпіння (незалежно від знання мови програмування), як швидше ви приймете його легше, вам буде вирішуватись з ними крутим розумом.
Aditya P

Я думав, що це так, але це, мабуть, тому, що саме моя конвенція орієнтована в моєму випадку. Дуже звично налаштовувати багато речей, які він робить як умовні.
Риг

Відповіді:


17

З вашого запитання очевидно, що це не тільки Rails, якого ви намагаєтеся навчити, але, в той же час, ви повинні зрозуміти поняття веб-розробки, а також бази даних та SQL. Це величезне завдання, тож будьте терплячі.

З іншого боку, у Rails у вас немає вибору - ви повинні вивчити всі три: M, V і C від MVC , все одночасно, але це було б у випадку з будь-якою рамкою MVC навколо, де Rails є однією з найпростіших , Я б сказав.

Що ви можете зробити, замість цього - почати з простішої рамки, наприклад, Sinatra, поки не погодиться з основними поняттями Ruby та HTTP, а потім повільно просувайтеся далі до більш багатої презентації (поглядів та CSS) та моделей на базі даних.


10

Коли ви вивчаєте Rails, і ваш єдиний фон - це Java, ви не просто вивчаєте нову веб-рамку. Ви вивчаєте і нову мову програмування, і ту, яка значно відрізняється від Java.

Це може допомогти вам спочатку навчитися Рубі, а потім переглянути Рейки та її умовності. Дізнатися, що робить Rails і як це зробити, мені пішло набагато простіше, коли я більше не мусив боротися з розумінням Ruby і міг читати (і писати) код / ​​шаблони Rails.

Я пройшов підручник « Ruby on Rails» і виявив це дуже корисним. Книга підручника безкоштовна і є версія для Rails 2.3 і 3.0. Також вам може бути корисно прочитати інформацію про MVC (Model-View-Controller) та веб-розробку / життєвий цикл сторінки загалом.


6

Аніта, я мав майже такий же досвід, як і ти. але думаю, я зараз розумію, чому так важко вчитися:

  • RoR - це не одна мова, це широка колекція технологій, мов та методик.
  • Це не так, як Java, C ++ або інші мови, які мають логічну структуру
  • Немає жодного способу навчитися і жодної книги, яка може навчити вас (докладніше про це пізніше)
  • На мою думку, громада, як видається, має дещо «самовпевнене» ставлення, яке не так прощає, як інші громади під час навчання. Люди регулярно не погоджуються з тим, як робити "слід". Це йде зверху, від хлопця, який винайшов RoR
  • Настійно рекомендується тестування бути основною частиною розвитку на більшості уроків РоР, а мови тестування - це DSL, які також можуть додати до вже високого навантаження на навчання.
  • Немає належної документації для мови, лише API, деякі посібники та будь-які книги, які ви можете знайти.
  • Деякі основні методи та методи є "автоматичними", і не ясно, як вони працюють. Наприклад, методи has_secure_password.

Я вивчаю це вже більше року, і ось деякі речі, які, на мою думку, полегшують навчання, до яких я прийшов із досвіду:

  • Атакувати його з декількох кутів. Коли у вас є кілька книг, навчальних посібників та блогів, з яких можна працювати, це може «відкрити» шлях до навчання. Сама книга чи блог можуть залишити вас "застряглими".
  • Спробуйте вивчити деякі HTML / CSS та Ruby. Не все, достатньо просто проїхати, перш ніж зайти занадто далеко до RoR.
  • Пройдіть курс по RSpec (або подібній методиці тестування). Особливо гарний Codeschool на RSpec, і це не дозволить вам застрягти на уроці RoR, оскільки ви не можете пройти тестування.
  • Отримайте близько 3 книг. Обі Фернандес "Рейки 3 шляху" - це обов'язково, використовується для довідки, коли є щось, чого ви просто не отримуєте (не для обкладинки, щоб прочитати читання). Agile, якого ви згадали, просто збентежив мене. "Навчання рейкам 3" стосується речей з іншого напрямку і може допомогти розбити деякі проблеми, які ви не можете отримати з інших навчальних посібників.
  • Зробіть скріншот або онлайн-курс навчання. Підручник Майкла Хартла - це добре, але дуже круте навчання. Я виявив, що книги, описані вище, плюс курс Codeschool на RSpec, допомогли мені пройти це - але мені все ж довелося звернутися до автора на пару невеликих моментів.
  • Питайте, питайте, питайте! Є Ruby Forum, Rails Forum, IRC номери та StackExchange тощо - використовуйте їх усіх, часто !

Будь ласка, не здавайся - ти розумний, але, схоже, маєш стиль навчання, схожий на мене, а Рейлам просто дуже важко вчитися і не особливо добре навчитися де-небудь.


4

Можливо, проблема полягає в меншій кількості рубінів (або рельсів) і тим більше, що у вас є лише "хитке розуміння" HTML / CSS / JavaScript і SQL та баз даних.

Rails - це «рамка повного стека». Якщо ваш попередній досвід програмування - це основна Java, можливо, є якийсь Swing, то є багато концепцій, які можна навчитися одночасно.

Якби я підходив до цієї проблеми, я б почав із того, щоб спочатку прибити SQL та реляційне моделювання (у SQL немає проблем з компонуванням браузера!). Коли ви впевнені в шарі бази даних, тоді пограйте з ActiveRecord і дізнайтеся, як рейки обмотують кортежі з db.

Наступним кроком буде подальше вивчення контролерів та маршрутизації, а потім інтерфейс користувача (html / javascript тощо).

Якщо ви збираєтеся робити будь-яку веб-розробку, використовуючи майже будь-який веб-фреймворк, вам потрібно буде зрозуміти SQL та реляційне моделювання (навіть якщо потім виберете маршрут NoSQL пізніше).


1

Я також походжу з походження Java, і мені було досить складно вивчати Rails. У мене були все ті ж питання, про які ви згадали. Я виявив, що перегляд railscasts.com допомагав на початку. Просто бачення того, як хтось інший робив речі, допомогло мені наздогнати, і тоді я почав робити справи самостійно. Я не торкався Рейки з моменту виходу рейки 3.


1

Ваші слова "іноді цілий день, іноді нічого протягом декількох тижнів" кажуть мені все, що мені потрібно знати. Якщо ви вивчаєте нову мову І рамки (я вважаю, що це ви робите, тому що ви згадуєте "Ruby on Rails", а не просто "Ruby"), послідовність окупається. Я знайшов єдиний спосіб, коли я навчаюсь і зберігаю поняття, - це вчитися близько півгодини на день, як правило, наприкінці дня, безпосередньо перед сном. Якщо я навчаюся більше півгодини, я отримую неповороткість і втрачаю увагу. Якщо я навчаюся менше, я не зберігаю того, що навчився.

Усунути відволікання - ось моя найкраща порада. І вивчайте кожен день тижня. Перш ніж це знати, речі почнуть ставати на свої місця.

Я не бачив жодних публікацій, тому мені цікаво, що ви зробили. Минуло 2 роки, і це, безумовно, повинно бути достатньо часу, щоб навчитися бути топ-розробником веб-розробників!


0

Я вже близько 8 місяців схиляюся до Рубі та Рейлів. Я прийшов із розумінням HTML, XML, SQL. Я все-таки виявив ту саму проблему, що і ви, те, що працювало на мене, працювало над реальними проблемами, а не просто читати і сподіватися зрозуміти. Можливо, вам доведеться виконати багато невеликих тестів фрагментів коду або mvc, щоб зрозуміти поняття. Символи - це те, над чим я ще працюю. Просто прийміть це по одній проблемі за один раз, і коли ви їх вирішите, ви дізнаєтесь щось необхідне для вирішення іншої проблеми у вашому проекті.

Відповідь: Ні, це не повинно мати круту криву навчання, крива відрізняється залежно від вашого фону.


0

Це може. Я знаю, що я натрапляю на "криву навчання" кожен раз, коли намагаюся реально сісти і зосередитись на вивченні Рейлів (кожні кілька місяців протягом приблизно 2+ років). Проблема полягає в тому, що багато речей у Rails змінюються блискавичним темпом, і часто знайдені ресурси застарівають майже відразу.

Моя порада - почати орієнтуватися на Ruby (принаймні на основи), а потім на Rails, тому ви не покладаєтесь на 100% на рамку Rails, щоб обробляти все за вас. Ви також повинні зрозуміти причини HTML / CSS / Javascript. Також з досвіду не зациклюйтеся на постійному похованні світу Рейки: Якщо ви можете ігнорувати всі новомодні речі, Rails cognoscenti євангелізують, як Haml, Sass, RSpec / BDD, огірок тощо, або ви втопитеся в необхідності навчитися BDD та RSpec писати свій код, навчившись Haml і Sass (не важко, але все-таки, це інша річ, щоб навчитися) кодувати передню частину і т. д. Почніть якомога простіше.


0

Існує крива навчання для будь-якої мови програмування. Ми насправді не вивчаємо мову звичайним чином. Як і C / C ++, але коли речі реалізуються в реальній картині, ми також повинні знати гайки та болти кількох технологій.

Найкращий спосіб підійти до цього - це вчитися на практиці. Візьміть на себе всі болі, щоб зробити це самостійно. Зазвичай ми читаємо речі, але коли мова заходить про реальну картину, ми будемо її дотримуватися. Я рідний програміст на C ++, можу також кодувати в C #. Я знаю, що в цій мові та бібліотеці є багато добра в абстрактній точці зору, але багато тем, які я щойно прочитав і пропустив. Тож якщо ви запитаєте мене, я насправді зазнаю інвалідів.

Я вивчаю рамки Джанго. Книга, яку я обрала, цікава дуже просто, і вона створює додаток для соціальних закладок. Тож це як вивчити речі з нуля до просунутого рівня, роблячи реальні проекти. Я пропоную вам підходити таким чином так, як ми все це самі вивчаємо.


0

Справа з RoR, особливо з другим "R", полягає в тому, що більшість навчальних посібників зосереджені на тому, щоб ви навчати вас "коду-мавпи" стилю. Особливо Agile книга, вона сповнена поверхневого "зараз ми це робимо, не турбуй чому" кроки програмування. Плюс той факт, що вони продовжують змінювати свою парадигму - тобто спочатку вони рекламували RJS по дорозі, тепер раптом мова йде про UJS.

Як тут запропонували деякі люди, ви можете спробувати спочатку вивчити всі необхідні моменти Ruby, а потім перейти до рамки. Якщо ви все ще хочете навчитися обом разом, я вважав, що ця книга під назвою "Рубін для рейок" є дуже корисною.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.