Я работал над CodeNewbie Challenge (он же # CNC2018) несколько месяцев. Этот проект призван помочь программистам сделать одно из четырех: начать писать код, больше писать, больше писать в блоге или найти работу.

Вы выбираете задачу, и в течение 5, 7 или 9 недель вы получаете еженедельное задание с чтением, исследованием и домашним заданием, которое поможет вам достичь своей цели. Он основан на важных вопросах, управляемом исследовании и тщательно подобранных ресурсах, которые помогут вам указать правильное направление. Вы можете узнать больше и зарегистрироваться здесь (первая миссия выйдет 22 января, так что зарегистрируйтесь к тому времени).

Эта задача основана на очень простой предпосылке: когда вы учитесь программировать, не существует единой универсальной дорожной карты. Это расстраивает, но это правда.

Как я придумал # CNC2018

Я отпила клюквенный сок, когда она подняла руку. Она сидела посреди почти пустой комнаты и терпеливо ждала, чтобы ее заметили. Они позвали ее, и она встала, чтобы задать печально известный вопрос: «Как мне начать учиться программировать?»

Все участники дискуссии повернулись ко мне, и моя грудь сжалась. Из нас четверых я был «новым экспертом в области кодирования», поэтому я поставил свой стакан и неохотно притянул к себе микрофон.

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

Это обманчиво сложный вопрос. Прежде всего предполагается, что есть ответ; единый, неоспоримый, логичный ответ. В нем так много внимания уделяется «началу обучения программированию», а не «я», но «я» является наиболее важной частью.

Раньше я давал сочные, удовлетворительные ответы: начните с Ruby, это самый дружелюбный язык в мире! Попробуйте JavaScript, язык Интернета! Используйте Codecademy, чтобы дать вам немного вкуса, это бесплатно, и вы можете начать прямо сегодня!

Когда я чувствовал себя более ориентированным на ресурсы, я зашел в свой набор веб-сайтов и вытащил несколько. Treehouse отлично подходит для видео и курсов. FreeCodeCamp - отличное сообщество и обучающий ресурс по JavaScript. Посетите Coursera, чтобы узнать о других возможностях информатики. И вы не можете забыть о старом добром YouTube! Найдите язык или фреймворк и выберите короткое видео, чтобы начать работу!

Пока я говорил, они делали яростные записи, доказывая, что то, что я сказал, было ценным и правильным. Но это было не так.

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

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

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

Посмотрим на время и деньги. Какую часть каждого я могу вложить в это обучение? Если у меня мало денег (и сколько я считаю «большими деньгами»?), Это исключает часть вариантов обучения программированию. Если у меня не так много времени, что я могу узнать, что легко усвоить и не потребует много времени, чтобы начать работу? Чем я жертвую ради этой легкости? Еще много вопросов.

Затем давайте исследуем сообщество. Есть ли в моей жизни люди, которые могут служить наставниками, учителями, возможно, наставниками? Живу ли я там, где я могу получить личную поддержку, или эта поддержка будет в основном онлайн? Это имеет значение? Если я буду делать все в одиночку, поиск личного курса может облегчить мне путь. Если в моей жизни есть разработчики, я могу связаться с ними, чтобы они скорректировали курс и направили меня, что сделало мое путешествие немного более эффективным. Вопросов в изобилии.

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

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

С тех пор я всегда на это отвечал, и я чувствую, насколько он полезнее. Проблема в том, что получение максимальной пользы от этого ответа обычно включает в себя беседу, взад и вперед, чтобы исследовать и анализировать. Я думал о способах масштабирования этого. Как вы оцениваете ответ на такой личный вопрос, когда нужно рассмотреть так много вещей и нет единого правильного ответа? Вы создаете CodeNewbie Challenge.

Со временем # CNC2018 поможет вам создать и усовершенствовать вашу личную дорожную карту, собственный учебный план, исходя из ваших потребностей и образа жизни. И, как и большинство приключений, это намного проще делать с друзьями. Поэтому мы создали закрытую группу в Facebook, чтобы вы могли делиться своими победами, уроками и историей с другими.

Я так рад наконец его запустить. Новый год - идеальное время для решения новой задачи. Присоединяйтесь к # CNC2018 и зарегистрируйтесь до 22 января. Я очень рад видеть, куда вас приведет ваша дорожная карта.