Я решил начать #100DaysOfCode, чтобы начать Новый год. Просматривая другие твиты, я вижу много амбициозных целей (часто связанных с получением работы разработчиком). Мои цели несколько менее возвышенны, но я хотел поделиться ими со всеми, кто учится программировать в неторопливом темпе, как я. У меня нет ближайших карьерных целей, но я думаю, что знание того, как программировать, будет становиться все более ценным. Я искренне надеюсь, что грань между разработчиками и пользователями по-прежнему будет стираться, и я уверен, что найду способы применить знания, полученные в результате обучения, к написанию кода в своей повседневной работе.

Мое путешествие началось, как, я уверен, и у многих других. Я начал в Codeacademy, прошел несколько испытаний, застрял и ушел на несколько лет! Но, эй, это нормально. Позже я наткнулся на FreeCodeCamp и решил попробовать программировать еще раз. Все шло почти так же, с моментами разочарования, которые заставляли меня откладывать на долгие периоды времени.

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

У всех разные мнения о том, какой язык лучше учить. Честно говоря, я думаю, что мне еще рано беспокоиться о таких вещах. Но несколько человек превозносили мне достоинства Python, так что я решил взглянуть. Я также хотел Raspberry Pi и имел в виду, что он использует Python. Это привело меня к тому, что я записался на курс MIT по EdX, Введение в информатику и программирование с использованием Python. Хотя они подчеркивают, что это не курс Python (скорее курс CS, в котором Python используется для демонстрации основных принципов), он кажется хорошим местом для начала.

Теперь вещи действительно начали собираться вместе. Я видел циклы for и while и научился выполнять итерации. Я знал об операторах if и логических операторах. Понимание того, как использовать эти методы на другом языке, и наблюдение сходства и различия было невероятно поучительным. Я скажу, что у меня были некоторые проблемы с синтаксисом из-за переключения между языками, но, в конце концов, это было хорошо и заставило меня усерднее работать над запоминанием правильного синтаксиса.

На этой неделе я достиг нескольких важных вех, которые подготовили меня к хорошему #100DaysOfCode. Во-первых, я выполняю все задания по базовому алгоритму написания сценариев на FreeCodeCamp. Вау, я думал, что это никогда не закончится. Я сбился со счета, сколько раз я сдавался в отчаянии, но позже снова поднимал его и находил решение. Думаю, я преодолел свой страх перед методами. Поначалу всегда казалось несправедливым, что решение состоит в том, чтобы использовать какой-то метод, который в основном решает задачу за вас, а не в построении какого-то длинного алгоритма для пошагового решения проблемы. Я также был запуган, зная, что я никогда не смогу запомнить все доступные методы, поэтому я просто не хотел их использовать. И они часто являются черным ящиком — может быть трудно точно понять, что метод будет делать в конкретных ситуациях. Однако вместо того, чтобы просто двигаться дальше после того, как я прошел тесты, я научился пробовать разные подходы и стал более комфортно использовать методы.

Другой важной вехой для меня стало прохождение набора задач в конце 3-й недели моего курса в Массачусетском технологическом институте. Проблема в том, чтобы создать игру, которая играется как палач. Честно говоря, я думал, что это займет у меня несколько часов, и мне было интересно, достаточно ли хорошо я изучил материал, чтобы справиться с такой пугающей задачей. Больше всего я научился настойчивости. Моя первая попытка не сработала? Конечно нет, почти никогда. Подправить код. Узнайте, что происходит не так. Перечитайте некоторые записи. Неужели нельзя убрать ту или иную ошибку? Выбросьте код и используйте другой подход — всегда есть несколько способов решить проблему. Я был поражен тем, что смог собрать воедино некоторый код, который на самом деле делал что-то интерактивное, и, что лучше всего, было то, что не было никакого способа сжульничать, что заставило меня находить решения самостоятельно, поэтому я мог гордиться тем, что код был полностью моим. Наша работа.

Следующее, что у меня на повестке дня, — промежуточный экзамен по курсу Массачусетского технологического института. Я постараюсь избегать других языков, пока не закончу. Это ограниченный по времени экзамен, поэтому я не хочу тратить драгоценные минуты, пытаясь вспомнить, нужна ли мне точка с запятой или запятая. Я действительно не знаю, чего ожидать, но надеюсь, что все будет хорошо. Как только промежуточный семестр будет завершен, я разделю свое время между продолжением курса и работой над проектами Intermediate Front End Development на FreeCodeCamp.

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

Вот моя страница портфолио на codepen. Я думаю, что сделаю некоторые обновления, чтобы вернуться к написанию html и css, прежде чем заняться промежуточными проектами внешнего интерфейса. Будет полезно использовать его, чтобы продолжать демонстрировать мой прогресс.