Проблема:

Всякий раз, когда я зацикливаюсь на чем-то, будь то эссе, игра, лифт, математическая задача или особенно фрагмент кода, я склонен думать об одной из цитат Эйнштейна, которая помогает рефакторингу моего мыслительного процесса. «Безумие делает одно и то же снова и снова и ожидает разных результатов».
Если я введу одни и те же числа и один и тот же математический символ в калькулятор еще пять раз после того, как получу неправильный ответ, он в конечном итоге даст мне правильный… не так ли? Если я буду продолжать прыгать в одном и том же месте миллион раз, я в конце концов проделаю дыру в земле… верно? Когда я думаю об этой цитате, я понимаю, что мне следует прекратить то, что я делаю, сделать шаг назад, сделать глубокий вдох и записать, чего я пытаюсь достичь и какие инструменты у меня есть для этого.

Ясно, что лопата поможет мне сэкономить время и силы для достижения моей цели. То же самое и со всем в жизни, но я считаю, что это наиболее применимо к кодированию. Каждая инструкция в одном коде должна позволять другим определять намерения исходного разработчика. Для этого я считаю лучше попытаться написать код со смыслом. То, что мне не удавалось делать до недавнего времени. Довольно легко увязнуть в привычке писать частично бессмысленный код и заполнять терминал запросами на «обучение», чтобы проверить, прошли ли тесты или нет.
Когда в полдень нужно выполнить 20 лабораторных работ по инопланетной теме, инстинктивно приоритетом становится завершение 100% лабораторных работ и наслаждение красотой экрана, заполненного зелеными галочками.

Одно из решений (многие ко многим):

Став взрослыми, мы теряем (что воспринимается как должное) постоянные крики, издевательства и командные голоса наших учителей, тренеров, а иногда и родителей. Мы больше не можем рассчитывать на то, что кто-то будет держать нас на правильном пути и указывать нам, что нужно сделать. Это приводит ко второй моей любимой цитате сильнейшего человека на земле, Мэтта Фрейзера. «Сегодня я буду делать то, что другие не могут, а завтра я могу делать то, что другие не могут»

Когда я занялся объектно-ориентированным Ruby, я столкнулся с серьезной проблемой, поскольку до Flatiron у меня было очень мало опыта программирования. У меня не развилась способность понимать отношения, которые я пытался создать, когда писал отношения «один ко многим» или «многие ко многим» в классах Ruby. Следовательно, из-за моего непонимания того, что делал мой код, я не мог понять ошибки, и поэтому мой код легко мог стать бессмысленным и шокирующе странным в глазах моих товарищей по столу.

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

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