Лучший способ, который я нашел для изучения Ruby

Эта статья содержит список вещей, которые очень хорошо помогают мне в изучении языка Ruby. Я делюсь ею здесь, потому что считаю, что она может иметь определенную ценность для людей с похожим профилем.

Я подчеркиваю, что целью данного курса является НЕ изучение программирования (очень базовый уровень), и НЕ изучение разработки веб-приложений с использованием Ruby (очень продвинутый уровень).

Материал, который я предлагаю здесь, имеет очень конкретную цель — как можно быстрее овладеть языком Ruby.

Краткая версия

  • Допущения:

    • умеют читать по-английски.
    • уже обладают некоторыми знаниями в области программирования.
    • знать хотя бы основы объектно-ориентированного программирования.
  • Прочитайте «Ruby за 100 минут», чтобы хорошо освоить синтаксис.

  • Выполняйте задания Ruby Track на сайте exercism.org.

  • Поиграйте с Ruby Koans, чтобы почувствовать самые фундаментальные понятия языка.

Допущения

Приведенные здесь материалы написаны на английском языке, поэтому важно уметь читать на этом языке.

Для выполнения упражнений, приведенных в ссылках, которые я здесь перечисляю, очень удобно работать с командной строкой (если вы полный новичок, я рекомендую этот бесплатный контент, подготовленный Блау Араужо)

Моя цель здесь не в том, чтобы научиться программировать, я предполагаю, что вы уже имеете некоторое представление о программировании. Цель здесь — приобрести свободное владение языком Ruby.

Некоторые знания основ объектно-ориентированного программирования могут помочь, но я считаю, что для начала это не так уж необходимо.

Первоначальный контакт с языком

Если у вас есть свободные 1 час 20 минут, вам будет полезно посмотреть видео Фабио Акита об истории Ruby on Rails. Мне она очень понравилась, и я познакомился с некоторыми материалами, которые кажутся довольно крутыми (но которые я еще не изучил досконально).

Если вы хотите приступить к делу, прочитайте книгу «Рубин за 100 минут». Здесь вы познакомитесь с основным синтаксисом языка.

Примером того, что было действительно круто для меня, было понимание концепции блоков.

Задачи экзерцизма

Как только мы узнаем базовый словарный запас языка, давайте начнем практиковаться.

Я рекомендую выполнять задания из «Рубинового трека» на сайте exercism.org. Упражнения начинаются очень просто и постепенно усложняются.

Я рекомендую всегда выполнять упражнения, помеченные как Easy. Даже если вы решаете логические задачи тривиальным способом, цель здесь — свободно владеть языком.

Даже если первые упражнения могут показаться простыми, тот факт, что вы пишете на Ruby, создаст ту беглость, которая заставит вас начать думать непосредственно на этом языке. Это огромная победа для меня.

Я люблю размещать свои решения в git-репозитории, а также делать заметки о том, чему я научился в каждом упражнении. Вы можете посмотреть пример моих записей здесь.

Далее я немного расскажу об экзерцизме. Если вы уже знаете платформу, вы можете пропустить эту часть…

Почему экзерсис так полезен

exercism.org — это замечательная платформа для приобретения свободного владения любым языком (в настоящее время там есть дорожки для 61 языка).

Я не знаю ни одной альтернативы для изучения нового языка программирования, которая была бы лучше, чем exercism.

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

Упражнения представляют собой Test-Driven Development (TDD).

Это означает, что вы решите проблему, предложенную в задаче, и проведете тест, который сразу же скажет вам, удалось ли вам решить проблему.

Вы можете продолжать улучшать (рефакторить) свой код и запускать тесты снова, чтобы проверить новые способы решения проблемы. Нет необходимости продолжать тестирование «вручную». Это замечательно!

Вы узнаете много нового, ознакомившись с решениями, представленными другими людьми.

Отличный способ научиться «хитростям» определенного языка — посмотреть, как это делают более опытные в этом языке люди.

На сайте exercism, как только вы представите свое решение, вы получите доступ к решениям других людей. И это отличный способ выучить те идиоматические решения, которые хорошо используют специфические особенности языка.

Я настоятельно рекомендую после представления своего решения потратить несколько минут на просмотр чужого кода и попытаться понять, что они делают.

Помните, я говорил, что мы используем TDD? Ну что ж! Вы можете брать фрагменты кода у коллег, тестировать их на своем решении и запускать тесты снова.

Если вы не понимаете, что сделал ваш коллега, вы заглянете в официальную языковую документацию и начнете понимать.

Повторяю: я не знаю более эффективного способа свободно владеть языком программирования.

Ruby Koans — укрепление основ языка

Согласно Википедии:

Коан — это повествование, диалог, вопрос или утверждение из дзен-буддизма, которое содержит аспекты, недоступные разуму. Таким образом, коан призван способствовать духовному просветлению практикующего дзен-буддизм.

Хорошо, это звучит как много путешествий… Оставим в стороне философскую часть и сосредоточимся на техническом аспекте.

Ruby Koans — это «сломанные» тесты, которые вы должны исправить. И по мере их исправления вы будете изучать/исправлять некоторые более фундаментальные концепции языка Ruby.

Мне показалось, что это очень крутой подход, который помог мне легко увидеть некоторые тонкие вещи. Пример: оператор << "лопата" изменяет исходную строку, когда мы делаем что-то вроде этого:

original_string = "Hello, "
hi = original_string
there = "World"
# o operador << "shovel" aqui vai alterar
# ambos, 'hi' e 'original_string'
hi << there
puts hi
# => "Hello, World"
puts original_string
# => "Hello, World"
Войдите в полноэкранный режим Выход из полноэкранного режима

Сайт Ruby Koans - http://rubykoans.com/, но я рекомендую вам зайти через репозиторий: https://github.com/edgecase/ruby_koans.

Вот очень прямое описание bizu, но я рекомендую вам ознакомиться с README репозитория:

# clonando o repositório
git clone git@github.com:edgecase/ruby_koans.git
cd ruby_koans

# checando se o ruby está instalado
# se não tiver, recomendo que use o asdf-vm
ruby --version
rake --version

# gerando os koans
rake gen

# se no futuro você precisar/quiser gerar os
# koans novamente para estudar desde o início,
# use esse comando:
rake regen

# para executar todos os testes na ordem sugerida:
rake
# que é a mesma coisa que executar isso:
ruby path_to_enlightenment.rb

# você também pode executar um koan específico
# exemplo:
ruby about_symbols.rb
Войдите в полноэкранный режим Выход из полноэкранного режима

Важной частью изучения Ruby Koans является итерационное выполнение следующих шагов

  1. запустите тест в терминале и посмотрите, где он дает сбой
  2. отредактируйте файл, чтобы исправить тест
  3. вернуться к шагу 1

Рано или поздно вам надоест переключаться туда-сюда между терминалом для тестирования и редактором кода для исправления тестов.

Чтобы помочь вам в этом, мы можем использовать observr, например, так:

# instalar o observr gem
gem install observr

# rodar os testes a cada alteração
# em qqr um dos koans
observr ./koans/koans.watchr
Войдите в полноэкранный режим Выход из полноэкранного режима

Вот так, теперь вы можете оставить одно окно с редактором, а другое с observr, запускающим тесты каждый раз, когда вы сохраняете файл.

То, что я пробовал до того, как оказался здесь

  • Рубин за 20 минут - объяснения показались мне не очень связными. Вот почему я предпочел "Рубин за 100 минут".
  • codewars.com - предложение вроде бы классное, но я нашел экзерсис гораздо более дружелюбным и свободным от рекламы.
  • The Well-Grounded Rubyist, 3rd Edition - Я начал читать эту книгу, но она показалась мне немного "медленной". Я все еще читаю ее медленно, чтобы закрепить некоторые понятия, потому что он объясняет все очень глубоко. Но чтобы быстро освоиться, я уже прочитал экзерсис.

Оцените статью
devanswers.ru
Добавить комментарий