Все дело в том, чтобы «научиться достаточно».

Ruby - это язык программирования, предназначенный для чтения человеком (в отличие от таких языков, как Java). Он также разработан как объектно-ориентированный язык, в котором почти все является объектом. Эти характеристики делают его отличным первым языком для изучения и интересным для работы. Но, как гласит мем, никто не просто что-либо делает, даже изучая Ruby. Особенно, когда Ruby - ваш первый настоящий язык программирования. В этой статье я описываю процесс, через который я прошел, чтобы стать уверенным рубистом.

Изучите достаточно, чтобы кодировать процедурно

Я знаю я знаю. Это практически запрещено в Ruby, поскольку (почти) все является объектом. В большинстве книг по Ruby ООП вводится раньше, чем в книгах на других языках, поскольку это считается основной концепцией Ruby. Даже после того, как я теоретически изучил объектно-ориентированное программирование, я написал две игры (Tic-Tac-Toe и Mastermind), не создав ни одного класса (ах!). Хотя это может быть равносильно ереси, новый программист должен с чего-то начинать. Это было моей отправной точкой, и хотя эти проекты технически не соответствовали требованиям бесплатного онлайн-курса, который я проходил (Проект Odin), я чувствовал себя хорошо, создав свои первые рабочие программы. В конце концов, для меня было лучше завершить их таким образом и получить это чувство, чем бороться через понимание того, как разбить компоненты на классы и, возможно, отказаться.

Узнай достаточно, чтобы создать объектно-ориентированную шахматную игру

Получив базовое представление о том, как создать программу с помощью всего лишь строчки кода (!), Я прочитал разделы, посвященные структурам данных и тестированию, и выполнил некоторые проекты. Однако следующей реальной проблемой стал финальный проект курса Ruby: шахматная игра для двух игроков из командной строки. Я полагаю, что шахматы - не такая уж сложная игра, но они, безусловно, более сложны, чем крестики-нолики, имея разные типы фигур, которые ходят по-разному, и систему шах / мат, которая требует некоторого реального анализа. . Для этого мне пришлось по-настоящему научиться писать объектно-ориентированную программу. Думаю, я потратил неделю на этот проект, и когда я закончил, я действительно почувствовал, что чего-то добился. Я написал объектно-ориентированную, довольно сложную игру, используя свои знания Ruby. Не недооценивайте важность этого чувства удовлетворения и завершенности; это то, что заставляет вас двигаться к большему и лучшему.

Узнай достаточно, чтобы объяснить это кому-то другому

После окончания курса Ruby я перешел на курс Rails проекта Odin. Когда я почти закончил этот курс, ко мне обратились с предложением принять участие в программе Fast Track в Microverse. Эта программа объединила меня с удаленным партнером, и это был отличный опыт, о котором вы можете прочитать здесь. Основная учебная программа началась с курса Ruby от Odin Project. Сначала я подумал: Это может быть пустая трата времени, но я был взволнован остальной частью программы и тем, что она предлагала, поэтому я решил довести ее до конца. Я обнаружил, что это вовсе не было пустой тратой времени. Мой партнер имел опыт работы в основном с JavaScript и мало знал Ruby. Это означало, что по мере того, как мы читали и выполняли задания курса, у меня была возможность объяснить ему некоторые концепции, что помогло мне углубить мое понимание. Один из лучших способов научиться чему-то другому - это научить кого-то другому.

Узнай достаточно, чтобы создать хорошо продуманную игру

Поскольку мы просматривали тот же материал, что и я всего несколько месяцев назад, мы в конце концов пришли к той игре «Крестики-нолики». На этот раз, потратив больше времени на изучение, объяснение и использование Ruby - и имея партнера для работы, - я смог подумать о лучших способах разработки игры. Мы создали классы, разложили их на отдельные файлы и создали более чистую и удобочитаемую программу, которой я действительно могу гордиться. Мне потребовалось время, чтобы добраться сюда, но я чувствую, что наконец-то овладел Руби. Значит ли это, что я знаю об этом все? Определенно нет, но я понимаю, как использовать это эффективно, и это главное.

Узнай достаточно, чтобы протестировать мой код

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

Я надеюсь, что моя история будет полезна другим разработчикам, изучающим Ruby, или всем, кто только начинает программировать. Не знать всего с первого раза - это нормально. Это нормально - просто узнать достаточно. В конце концов, все эти «достаточно» составят твердое понимание или мастерство в предмете.