paint-brush
Испытание без чит-кода — как я выжил в проекте «Один»к@codebyblazej
297 чтения

Испытание без чит-кода — как я выжил в проекте «Один»

к CodeByBlazej5m2024/06/08
Read on Terminal Reader

Слишком долго; Читать

В своем первом посте я рассказываю о плюсах и минусах обучения программированию, включая сложную последовательность Фибоначчи и важность настойчивости. Я стремлюсь вдохновлять и развлекать коллег-программистов, особенно тех, кто только начинает, делясь своим опытом, советами и время от времени смеясь над своими собственными трудностями. Присоединяйтесь ко мне, пока я путешествую по захватывающему миру кодирования и документирую каждый шаг этого пути.
featured image - Испытание без чит-кода — как я выжил в проекте «Один»
CodeByBlazej HackerNoon profile picture

Привет, это Блажей. В начале своего пути обучения программированию я пообещал себе, что не буду жульничать.

Что я имею в виду под обманом?

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

Выбор проекта Odin

Я решил пойти на The Odin Project, потому что устал от курсов Udemy и видеороликов на YouTube, которые в любом случае были неплохими, но я чувствовал, что они меня ни к чему не приведут.


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

Погружение в проект Odin

Учебная программа Odin Project основана на чтении документации и решении упражнений, создании проектов, чтении большего количества документации, решении еще большего количества упражнений и создании еще большего количества проектов, которые, как вы догадались, становятся все более сложными по мере вашего продвижения.


Все было хорошо, пока я не дошел до этого момента:


ТОП заданий



Проблема палиндромов и Фибоначчи

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


О да… Это был убийца. Но вы можете спросить, ведь на картинке выше таких упражнений нет, верно? Да, но зайдя в упомянутый репозиторий, вы обнаружите их на 8-й и 9-й позициях.


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


Убийцы



Борьба с Фибоначчи

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


Несколько моих попыток


Когда я занимаюсь, я использую технику Помидора : 25 минут сосредоточения, а затем 5-минутный перерыв.


Мимо проходили Помидоры, и мне удалось дойти до точки, где я смог получить что-то вроде последовательности Фибоначчи… но это все равно казалось неправильным.


Сломанный Фибоначчи



Момент искушения

В этот момент я подумал: «Хорошо, я дошел до этого момента, возможно, я чему-то научусь позже, чтобы посмотреть на решение и просто двигаться дальше».


Я сделал, как думал… Конечно, я подумал: «О да, это так просто и логично продумано. Хорошо, тогда пойдем дальше!»

Осознание ошибки

После Фибоначчи нужно было решить упражнение с объектами, и я был сбит с толку, потому что на тот момент мы еще не дошли до объектов в TOP.

И я был прав, по ошибке зашел на несколько уроков вперед…


Это только убедило меня, что жульничество — это правильно, и вскоре я узнаю что-то новое, что поможет мне решить эту проблему позже или с большей легкостью. Хаха!

Возвращаясь к палиндромам и Фибоначчи

Прошла пара уроков, на прохождение которых у меня ушло около недели, и я снова вернулся к Палиндромам и Фибоначчи. На этот раз, правда, немного напряженный…


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


Я просто все отметил и удалил. Однако я вспомнил, что первая строка была:


 let fib = [];

Последняя битва

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


У меня было такое ощущение, будто у меня в голове работает VSCode. Клянусь, вместо того, чтобы видеть жареные чипсы в моей фритюрнице, я мог видеть только строки кода Фибоначчи (особенно этот чертов цикл и оператор «если»).


Забавно было, конечно, представить какое-то решение, а через 5 секунд понять, что либо я уже это пробовал, либо просто понял, что JavaScript вообще так не работает!!!

Прорывные моменты

Я поел и пошел гулять. 1 час ходьбы = 1 час глубоких размышлений. В моих заметках было записано 3 новых решения, и я был на 100% уверен, что они сработают.


Заметки в моем телефоне



Угадайте, что из этого сработало. Да, вы правы, НЕТ! Я все еще получал те же результаты. В этот момент я подумал о том, чтобы добавить что-нибудь в массив.


Я знал, что мне там что-то нужно. Но глубоко в моем мозгу я получил ответ: «Когда вы ранее удалили решенное упражнение, этот массив был пуст». Я просто лгал себе.

Придерживаться своих принципов

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


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

Просить помощи

Единственное решение, которое пришло мне в голову, — обратиться за помощью на канал Discord.


Умоляю о помощи


Пожалуйста…



Мой мозг сдался



Ура!



Спасибо!!!



Решение и извлеченные уроки

Я решил это!!!! Слушайте, мне пришлось поместить значения в этот массив и выполнить условие перед циклом. Это то, что мой мозг на самом деле говорил мне 10 или более часов назад.


Но поскольку я видел часть решения, я продолжал лгать себе, чтобы не делать этого, полагая, что оно другое. Эх.


Решение!



Заключение

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


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


Теперь я гораздо более готов ударить о другую стену с помощью другого упражнения. Теперь я знаком с процессом!