
Разрушение учебной программы проекта ODIN в проекте - по одному проекту за раз
18 июня 2025 г.Привет! Потратив еще 357 дней на проект ODIN, я наконец -то достиг большой вехи, я закончил раздел Ruby!
Так почему же название говорит 468 дней тогда? Что ж, раздел фондов занял у меня 111 дня, и, поскольку моя последняя статья об этом путешествии была довольно популярной, я подумал, что вам понравится еще одно обновление.
Если вы не проверилиэта предыдущая частьТем не менее, стоит взглянуть! Я тщательно отслеживал свой прогресс каждый день, поэтому подсчет моих общих часов был довольно легким.
В целом, я потратил ровно 686 часов в этом путешествии. Моя рутина в основном оставалась прежней, но недавно я начал сжиматься в течение дополнительных от 30 минут до часа обучения каждое утро. Около двух месяцев назад я даже начал просыпаться на 90 минут назад, чтобы повысить свой темп обучения.
Вдобавок ко всему, что не все могли бы понравиться, я начал слушать техно музыку во время обучения. Почему? Я заметил, что это помогает мне отвлекаться, когда я переживал длинные статьи, где я поймал себя, читая 1 предложение в 15 раз и снова и снова.
Этот пост - в основном мое размышление о том, чтобы научиться кодировать с помощью проекта ODIN, то, что я взял во время этого рубинового раздела, и на чем был общий опыт.
Я до сих пор явно помню, как сидел на моей кровати, который был моим неофициальным «офисным креслом» благодаря моей странной маленькой комнате, взволнованной, чтобы погрузиться в Руби сразу после завершения проекта калькулятора из фундаментов.
Основы
Честно говоря, начало было довольно грубо. Погрузитесь прямо в документацию Ruby? Да, я чуть не заснул не раз. В этот момент, приехав из JavaScript, я начал сомневаться в том, что сделал ли я правильный выбор, я имею в виду, разве JavaScript не будет проще, так как я уже немного знал об этом? Но я рад, что застрял с Руби, потому что это оказалось полностью того, я объясню об этом больше позже!
Каждый урок включал много материала, охватывающих все необходимые темы, такие как переменные, хэши, массивы и так далее.
В этот момент я все еще боролся с петлями, и я не знаю, почему. Теперь они кажутся хорошими после стольких проектов, но в этот момент в прошлом я помню, что все еще застрял, когда мне приходилось писать что -то с участием петлей или более сложной логики, основанной на них.
Урок отладки также был интересным, так как он сильно отличается от JS, но это было чрезвычайно важно и полезно! Это сэкономило мне много времени позже во многих проектах.
И, наконец, был урок о перечислениях. Помните, что на данный момент мой мозг был в значительной степени подключен к синтаксису JavaScript. Но когда я наконец понял, что все эти перечисления были, меня зацепили! Было так легко и умно сделать что -то только в одной рубиновой линии, которая обычно принимает меня 10 строк JavaScript. Я любил это и сразу же задавался вопросом, как часто я в конечном итоге их использую. Это было незадолго до того, как я поймал себя, сжимая перечисления в каждый проект, который я занимался. Похоже, они точно соответствуют тому, как ваш мозг естественным образом подходит к проблемам, быстро становясь первым инструментом, который входит в вашу голову при кодировании.
А для тебя, ребята из JavaScript! Прежде чем называть меня высокомерным за то, что я не упоминал эквивалент в JS, просто держись! Я просто еще не достиг этой точки. Если есть что -то подобное, напишите его в комментариях. Я искренне хотел бы проверить это и сравнить. Если нет, возможно, попробуйте перечисленные рубины и посмотрите, что вы думаете!
Основные проекты Ruby
Наконец, это было время проекта, идеально подходящее для тестирования всех этих новых инструментов Ruby.
Первый, Caesar Cipher, был не так уж и плох. Перемещение букв обратно после Z было самой сложной частью.
Проект подстроения был довольно простым, в основном имел дело с струнами, хэшами и перечисленными. Я, вероятно, мог бы превратить его в одну строку, но я разделил его для ясности. Оглядываясь назад почти год спустя, выяснение «уменьшить» было, вероятно, самым большим препятствием.
Стандартный сборщик был следующим. Хитрость там составила два массива, один с ценами, а другой - дни, чтобы купить и продать за лучшую прибыль.
Затем появился пузырьковый сортировка, самый сложный из группы. К счастью, какое -то дополнительное чтение и потрясающее видео из урока прояснили вещи.
Вот, как будто! Эти четыре проекта были не очень длинными, но они, безусловно, чувствовали себя интенсивными!
Секция ООП
Я должен сказать, я не мог дождаться начала раздела ООП! В то время я читал тонны постов и статей об этом, потому что я знал, что весь процесс проектирования приложений будет в значительной степени зависеть от ООП.
Казалось, все говорили об этом, и я продолжал пытаться представить, как это на самом деле работает. Я даже сравнил его с автомобильным двигателем в моей голове, представляя, что каждая часть приложения будет каким -то образом зависеть от другой, все они работают плавно вместе. Оказывается, я был не так далеко!
Многое из того, что я представлял, оказалось правдой, и мне очень понравилось. На самом деле я даже написалДругая статья, сравнивающая код отладки для исправления автомобилей, есть больше сходств, чем вы ожидаете.
В этом разделе было два проекта: Tic Tac Toe и Mastermind. Они были на самом деле довольно приятны, потому что они были немного длиннее и более продвинуты, чем более ранние. Я прекрасно провел время, выясняя разные способы их решения. Честно говоря, кто знал, что программирование может быть таким веселым?
Вот ссылки на репо, если вам интересно:
Тик Так Ног
Вдохновитель
Файлы и сериализация
Эта часть заняла больше времени, чем ожидалось, потому что я действительно хотел сделать это правильно. Основы обработки файлов были простыми, но TTY (терминальные устройства) были сложными. Это смутило меня достаточно, чтобы мотивировать меняНапишите еще одну статью, в комплекте с простой диаграммой, чтобы прояснить вещи.
Немного информатики
Этот раздел был ооочень долго! Он был заполнен жесткими, требовательными проектами и множеством информации, о которой вы, вероятно, даже не думали до сих пор. Например, как Рэм на самом деле работает под капюшоном, который я нашел очень интересным, особенно когда вы представляете, что все данные масштабируются под кончиками пальцев, совершенно невидимыми для глаз. Довольно дико, верно?
Вы также узнаете, как вычислять скорость различных алгоритмов, когда использовать какую и почему она даже имеет значение.
Ой! И я определенно не могу забыть проект Knight Travails в конце. Этот был жестоким. Честно говоря, я думаю, что это был самый сложный проект во всей учебной программе. Большинство проектов дают вам несколько разных способов решить проблему, но здесь? Не совсем. Насколько я помню, был только один или два действительных подхода, и вам пришлось использовать правильный алгоритм, чтобы сделать это. Это даже не много кода, а умственные усилия? Следующий уровень.
Рыцарь страдает репо
Промежуточный git
Добавьте эти уроки, серьезно! Они легко среди лучших во всей учебной программе. GIT и GitHub могут чувствовать себя странными и запутанными, но эти уроки прекрасно разъяснили все. До сих пор каждая проблема GIT заставляла меня задуматься, когда мы правильно ее освещали. Ну, вот и наконец.
Тестирование всего с помощью RSPEC
Еще один долгий, но полезный раздел. Изучение RSPEC чувствовалось практически как борьба с другим языком программирования. Сначала это было сложно, потому что мне все еще удобнее писать код сначала и проверяет.
Мой последний проект, массивная шахматная игра, была настолько большим, что я не мог управлять тестами заранее. Я все еще практикую, однако, и улучшаюсь.
Если вы застряли до конца - серьезно, спасибо! Я надеюсь, что чтение это было полезно, или, по крайней мере, немного вылечило свою скуку.
О, и последнее, помнишь ранее, когда я сказал, что вернусь к рубиновым документам? Ну, они не совсем захватывающие, когда вы впервые начинаете, но поверьте мне, чем глубже вы идете, тем более полезными они становятся. Конечно, вы можете быстро получить ответы от CHATGPT или быстрый поиск в Google, но когда вы как бы знаете, что вы ищете, скажем, что -то конкретное, например, перечисленные из них, и решите заглянуть в документы, вы часто наткнутесь на дополнительные драгоценные камни, которые делают ваш код лучше. Я обнаружил, что переписываю целые методы пару раз после того, как заметил элегантную одну строку в документах. Это произошло недавно во время шахматного проекта и приложения моего друга, и, честно говоря, это было довольно здорово!
Оригинал