1 марта. 15 проект сдан.
Дневниковые записи о том, как проходит обучение "ржавой крысы" (то бишь меня - не молодой, и имеющей гуманитарную профессию, подробнее в предисловии ) на курсах "Веб-программирование" Яндекс.Практикума.
Однажды, полтора месяца спустя...
15 спринт меня добил (почти до конца). 2 недели развлечений и с кодом, и с сервером, закончились уходом во второй академ. В этот раз всего на 2 недели. Присоединившись к следующему потоку на 4 спринте, я продолжила тихо сходить с ума с загрузкой сайта на сервер.
Код Шредингера... по-другому назвать свои развлечения с кодом 15 спринта я назвать не могу. А сервер - этакий черный ящик. Теория по развертыванию сайта на сервере была весьма подробна и декларативно. Тут напишите это, тут задайте команду такую-то.. И в теории все должно было работать, а на практике - нет.
Уже по итогам этой битвы понимаю, что у меня было 2 основные проблемы. Во-первых, клятый Windows 7 (моя любовь к раритетам аукнулась мне еще при установке Mongo). Как-то в инструкциях по установке не уточняли, что Windows 7 имеет свои особенности развлечений с ssh. Во-вторых, отсутствие навыков дебаггинга. Азы этого дела давались еще в начале обучения, но на уровне - посмотрите в консоль Хрома. Уже на последних спринтах с JS это было недостаточно. Но вместо того, чтобы углубиться в эту тему и саму себя в ней поднатаскать, я шла по пути научного тыка... И вот на попытках слить воедино фронт и бэк, при наличии невыявленных ошибок и там, и там, и неумении понять откуда прилетает и в какую-сторону смотреть....
В общем львиную долю полутора месяцев я тратила на "научный тык", пока не кинулась уже в последние перед дедлайном выходные в ноженьки знакомому программисту (вечная ему благодарность, взял и потратил на меня несколько часов времени, которого как у любого востребованного программера, параллельно многодетного отца итак нет, просто по доброте душевной, ну и думаю, немного из-за изумления, так как несколько лет назад, когда общались, я была в роли "заказчика" и представляла собой гуманитария из айтишного словаря знающего только слово "баг"). Буквально за пару часов удаленно этот гений бэкенда нашел пару кардинально важных багов (сама бы я в жизни в ту сторону и не посмотрела, один был просто связан с неправильной очередностью роутов), тем самым показал и как адекватно запустить фронт и бэк локально, и как запускать с отладкой, и как дебажжить. Ну и на сервере посмотреть что происходит, и как логи поизучать... Для нормального спеца - это все мелочи, а для меня - те самые инструменты, которых мне катастрофически не хватало. И вряд ли бы я сама их нашла, просто не допонимая, чего именно мне не хватает, и что надо искать.
Только благодаря этой гуманитарной помощи мне удалось все же заставить код заработать на сервере. После этого я еще умудрилась потратить все итерации на исправление ошибок по возврату ошибок :) Все выходные ломала голову, за что же сервер меня так не любит. То запускать не хочет, то возвращает совсем не те коды-тексты ошибок, которые я ему написала. И, кстати, что примечательно, основная проблема опять была не совсем там, где я ее искала. Не в самих ошибках, а в коде валидации. И благодаря приобретенным навыкам дебаггинга я это гордо нашла сама (жаль, что не за пару часов, а за пару дней :))), поправила и вуаля... Заветное "Критических замечаний нет. поздравляем!" получила.
Даже интересно, это я уж такая заржавевшая, или другие тоже находят помощь со стороны. Потому что реализовать последний спринт с минималистичным пояснение развертывания на сервере можно только при условии, что код идеальный и с первого раза прям все заработало. Что маловероятно. Найти подсказки в интернете, формулируя вопрос, "код на сервер загружен, но не работает" тоже маловероятно. А чтоб адекватно нужно понимать, что происходит. А что там происходит.... одним настоящим бэкендерам известно :) А если ты еще Линуксом никогда не пользовался, а виндоус у тебя седьмой... то полная тебе хана.
Теперь после недели каникул начнется диплом. Судя по тому, как я сдавала 15-й, шансов собрать в кучу все мои отрывочные знания и сдать диплом, весьма мало. Но, во-первых, объективно, и бог с ним. Я прошла всю теорию и доползла туда, куда уже и не чаяла добраться. Во-вторых, позитивно, вдруг делать проект с начала до конца в более сжатые сроки уже понимая хотя бы мало мальски, что к чему и почему, будет попроще. Так как последний спринт показал, что еще одна большая сложность с ним была в том, что делая бэкенд уже забыла, что там во фронте. Вспоминая фронт, путалась в том, что там в итоге (при учете большого числа рефакторинга кода в процессе обучения). В-третьих, юмористично, "не догоню, так хоть согреюсь" :)
Честно говоря, уже хочется так или иначе закончиться эту учебу. И заняться изучением накопленных и отложенных до "вот закончу - будет время" интересных книжек и видеокурсов. Учеба очень помогла понять, что мне нужно в первую очередь.
1) Линукс - в закладки положила видеокурс с Ютуба и видеокурс Линукс/Гит с BeOnMax
2) Дебаггинг - наконец до конца разобраться с инструментами консоли в Хроме, с отладкой в VS Code, а заодно с той кучей плагинов, которые туда можно добавлять. Какого-то курса специального тут не нашла, но по разным темам - есть интересные статейки. Плюс - надо просто экспериментировать (когда дедлайны горят, не до экспериментов, а когда сам по себе - можно и поизвращаться).
2) Азы и терминология JS - тут в первую очередь Дэвид Флэнаган с его "Полным руководством" (книжка в электронном формате уже давно ждет своего часа), ну и куча видео - проблема только, какие выбрать, по разным вопросам и инструментам.
3) SASS - как говорится, хочу-не могу. Мне очень хочется что-то свое верстать и играть с css. А с SASS - это ж можно делать намного интереснее. Мы в него только одним глазком на вебинаре заглядывали. Тут надо просто устанавливать и экспериментировать.
4) Разобраться в библиотеках и библиотечках, выбрать те, что мне ближе, понятнее и нужнее. Судя по всему в 99 % из 100, тот код, которым ты мучаешься, уже кем-то написан. Бери, корректируй и пользуйся, вот только тут тоже надо потратить время и разобраться как именно :)
5) WordPress и иже с ним - вот это неожиданно. Но, понимая насколько же заморочно делать бэкенд, и насколько я все же не ахти какой программер, думаю, мне очень не помешает освоить этот инструмент и посмотреть, как я смогу с ним работать, владея возможностью использовать, условно говоря, конструкторы, с большим пониманием, чем пользователи без знаний html, css, js. По крайне мере сделать сайтик и понять, надо оно мне или лучше сама-сама :)
6) А еще с тестированием разобраться. Кусок теории нам дали, в проекте мы тесты не делали, а интересно посмотреть как это работает. Хотя послевкусие после теории примерно такое: сперва напиши код, а потом напиши еще столько же (а может и больше) кода, чтобы протестировать свой код. Прикольно...
7) Чтобы цифра была красивой добавлю семерку. Завершая Практикум, надо собрать всю теорию в адекватный справочник для себя самой, чтобы потом можно было обращаться. Попытки делать себе заметки по пройденному я совершала все время. И некоторые таблички очень
пригодились. Теперь пришло время собрать все камни, и разбросанные по разным местам курса кусочки тоже Гита объединить, если уж не в мозге, то хотя бы в файле. А то уже сейчас найти что-то весьма сложно, роешься по всем спринтам, урокам, где-то же было, а вот где.... А пройдет месяц-другой после обучения - уже точно не найду, если не систематизирую.
Вот у меня и образовался прекрасный план работы на лето на даче. Хорошо бы к нему еще прикупить новый ноутбук :)
P.S. Надеюсь, что следующая запись появится не после такого длительного перерыва. Увы, предыдущие полотора месяца совсем не хотелось делиться ни эмоциями, ни мыслями (честно говоря, в феврале я примерялась к идее удалить и этот дневник, и Практикум из своей жизни, но рада, что все же этого не сделала. Во-первых, дневник бы удалила, а учеба - она уже не удаляема, хоть с Практикумом, хоть без, IT-вирус в организм занесен и требует знаний. Во-вторых, это скорее была зимняя депрессия и последствия Спутника (коим я уже два раза укололась), чем настоящее желание :) Но рассчитываю, что весна и диплом вдохновят и простимулируют более частую фиксацию в этом дневнике самонаблюдения.