Мы вернулись в Makers Academy после двухнедельного перерыва, который закрывает магазин на Рождество / Новый год (как и вся страна, кажется, запланировано или нет). И теперь мы пенсионеры!

Обычно 12-недельный курс Makers проходит насквозь, поэтому возникли опасения по поводу потери импульса, который, возможно, необходим для любой формы ускоренного обучения. (Я не был ни в малейшей степени - я сразу же начал фантазировать о том, чтобы провести время с моим сыном, всеми его простоями, отсутствием поездок на работу, наряду с пересмотром материалов и концепций курса. Мне очень повезло, что время моего курса означало перерыв. Курс с ноября по февраль, вероятно, лучший выбор для тех, у кого есть семейные обязательства. Или если вы беременны и энергия является особенно ценным товаром.)

Учебная программа Makers постоянно развивается (благодаря отзывам студентов и тому факту, что мир веб-разработки постоянно меняется), и наш тренер сказал, что раньше была «неделя чтения», чтобы студенты могли наверстать упущенное, но они отказались это потому, что большинство вернулись с недели чтения, чувствуя себя подавленным и как будто они отступили в своем обучении. (Я понимаю это - когда я учился в университете, я очень редко уделял много внимания чтению в течение недели чтения. Но я также считаю, что отдых и игра так же важны для обучения, как и все остальное - если вы перегорели, трудно вернуться из Плюс я не знаю, означает ли то, что родительская жизнь редко когда-либо отдыхаете, - я больше не беспокоюсь о тех днях, которые были у меня в студенческие годы, когда я ничего не делал, когда приходилось писать сочинения и приходилось бороться с похмельем. Если я сейчас попаду в такую ​​ситуацию, это, наверное, пойдет мне на пользу. Не считая похмелья - нет, спасибо!)

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

Делайте хотя бы понемногу каждый день. Найдите время, когда вам лучше всего, будь то утром или вечером, пока оно не станет естественным / привычка сформирована / вы не попадете на крючок. Поначалу может показаться, что время, которое вы тратите на это, ни к чему не приведет, но это так! (Это похоже на то, как капает вода на камень. Что-то происходит, даже если вы не можете сразу это заметить. Так устроены горы. Горы!) Попав в него, вы обнаружите, что при каждой возможности тянетесь к своему компьютеру. Раньше я считал, что время на программирование расстраивает, теперь я нахожу это успокаивающим, и мне нравится делать уроки или читать перед сном.

Повысьте уверенность, пересматривая концепции с помощью различных руководств и ресурсов. В кодировании и веб-разработке так много жаргона и навязчивости, что для начала это будет ошеломляюще. Вы вполне можете почувствовать, что никогда не поймете и не испытаете этот момент «ага!». Но, вернувшись к вещам с разных точек зрения и с дополнительными знаниями, вы удивитесь тому, как чужеродные концепции в конечном итоге кажутся столь значительными. И возможность выразить это или объяснить кому-либо еще больше укрепит ваше собственное понимание.

Учитывайте свои сильные стороны. Даже если вы не являетесь, ужас, шок, ниндзя с автоматическим кодированием (кхм * кашель * * кашель *), вы невероятны в чём-то другом, возможно, даже во многих вещах. Мои сильные стороны - читать, писать, составлять списки и увлекаться вещами. У вас может быть баскетбол, выпечка, мозаика и охота за лучшим хаггисом. Практически все, что у вас хорошо получается, можно применить к программированию и вашему подходу к его изучению, особенно потому, что это поможет укрепить уверенность в себе. (То есть, моя способность читать и переваривать огромные объемы информации может быть полезна для изучения документации, игры в баскетбол или любого другого командного вида спорта, вероятно, делает вас отличным групповым работником и стратегом.) Я часто думаю, что я бы лучше разбирался в коде, если бы у меня было больше по специальности естествознание или математика, но в отрасли приветствуются и, по сути, обязательны все виды умов.

Учитесь у других. Парное программирование - центральный принцип стиля обучения / преподавания Makers. Перед тем, как начать курс, я этого не понимал - программирование казалось мне занятием в одиночестве, во многом как письмом. Я не мог понять, какая польза от работы с кем-то над кодом - это звучало немного устрашающе, озвучивая что-то, что живет в компьютерных терминалах (и, честно говоря, выглядело как тупица). Но теперь я понимаю, что работа с другими людьми всегда имела решающее значение для обучения программированию, даже в те дни, когда я разбирал мозги технических волшебников на каналах IRC. Наблюдение за тем, как другие люди учатся, действительно помогает вам учиться, будь то видение их подхода, совместная работа над проблемой или просто высказывание вслух во время работы. (А если у вас нет друга или ребенка, вы всегда можете инвестировать в резинового утенка.) стили, насколько это возможно. А на практике научиться хорошо работать с другими людьми и в команде очень важно для поиска работы в этой области. На самом деле каждый может научиться программировать, самое сложное - научиться работать с другими. Вы можете быть лучшим ниндзя-программистом, и вам будет сложно найти работу, если люди почувствуют, что с вами тяжело работать. Потому что код предназначен для совместной работы.

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

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

Примите борьбу. Я ненавижу, когда все тяжело! Но мне это тоже нравится, поэтому я учусь программировать (и, наконец, шить и водить машину). Я всю жизнь уклонялся от вещей, которые мне не кажутся естественными, и сохранял уют в зоне комфорта. Мне посчастливилось хорошо разбираться в вещах, которые делают меня академическим и трудоспособным (чтение, письмо, организованность, терпение). Но у меня было несколько осознаний: я ни в чем не нуждаюсь и даже не хочу быть Лучшим; не пробовать что-то новое, лишает меня прекрасных впечатлений; надо быть в чем-то плохим, прежде чем у тебя получится хорошо; вы можете в значительной степени научиться или делать все, что захотите. Сама борьба, когда дело доходит до кода, окупается накоплением знаний и навыками устранения проблем - если вам просто передали ответ, он стоит намного меньше, чем ответ, который вы искали, обдумывали, пытались, и ТОГДА были данный. Даже если процесс не приведет вас к правильному пункту назначения, он сам многому научит вас тому, как туда добраться.

Обратитесь за помощью. По общему признанию, мне трудно сделать еще кое-что, над чем нужно работать. Мне трудно просить о помощи, потому что я чувствую, что транслирую тот факт, что я глуп, и не улавливаю вещи так быстро, как следовало бы. Но молчание только замедляет обучение. Makers рекомендует процесс эскалации, который включает в себя попытку выяснить это самостоятельно в течение 20 минут (или с парой, если вы объединяетесь в пары), затем поиск в Google, если вы все еще застряли через 45 минут, спросите остальную когорту через Slack, затем перейдите к наставнику и, наконец, к тренеру. Самостоятельно это можно перевести так: потренируйтесь самостоятельно в течение 20 минут, затем погуглите, затем спросите кого-нибудь еще, затем разместите вопрос в Переполнении стека. Научиться хорошо задавать вопросы - это уже навык - умение описать проблему значительно приблизит вас к способности ее решить.

Удачи! Программирование - это весело! Как вы сделаете это весело, зависит от вас, будь то работа над проектом, встречи с людьми, накопление очков в Code Wars (см. Ниже) или просто достаточное количество перерывов.

РЕСУРСЫ

Учебные программы

Мне повезло, что я работаю над Makers, что меня очень впечатлило, но чтобы получить доступ, вам нужно быть локальным или удаленным студентом. Мне порекомендовали эти руководства по обучению программированию от одноклассников - они дадут вам важную вещь, с чего начать! (Я тоже планирую попробовать их, когда курс закончится.)

Free Code Camp. Научитесь кодировать и помогать некоммерческим организациям одновременно! Очевидно, завершение этого приводит к возможностям трудоустройства.

Как я научился программировать за восемь недель. Я планирую попробовать этот, post-Makers, потому что он предлагает изучить Python и Django, языки программирования, которые мне очень любопытны, но с которыми я пока только баловался. Я также слышал, что изучение Python было бы полезным для изучения Ruby, но сейчас не могу вернуться в прошлое. Что хорошего в этом руководстве, так это то, что оно направлено на то, чтобы вы действительно создали что-то, что закрепит ваши знания. А набор рекомендуемых материалов даст вам представление о том, как вам лучше всего учиться.

Code First Girls. Полезная коллекция бесплатных обучающих онлайн-ресурсов. Code First Girls также предлагает мероприятия и бесплатные курсы с частичной занятостью.

Руководства

Академия кода. Он предлагает в браузере учебные пособия для многих языков кодирования по таким концепциям, как Ruby, CSS, Git и командная строка. Я впервые подписался на это в рамках подготовки к собеседованию в Makers Academy - нам нужно было пройти трек Ruby. В то время мне было очень трудно, потому что код был для меня чуждым, а мои личные обстоятельства означали, что мой разум был немного сломан. К моей радости, теперь это просто! Я начал ежедневно проходить курс по Code Academy, просто чтобы погрузиться в пространство разума кодирования, как разминку. Это хорошо, потому что все, что вам нужно, - это войти в систему - вам не нужно выполнять какие-либо другие разработчики, обычно связанные с кодированием, например, с помощью терминала или Git-hubbing. (Github очень важен в программировании - ваш Github - это то, на что потенциальные работодатели будут смотреть, чтобы оценить ваши навыки. Нет ничего постыдного в том, чтобы иметь там ужасный код с самого начала, все делают - фактически, наличие начального ужасного кода исчезнет. долгий путь к демонстрации своих способностей.) Так что это отличный способ сосредоточиться на концепциях и понимании фрагментов кода. Однако эти преимущества также входят в число его недостатков - вам необходимо также изучить все эти неудобные вещи, чтобы по-настоящему применить свои знания на практике и начать создавать прототипы. В курсах также есть ряд сбоев, таких как нечеткие инструкции и ошибки, которые означают, что даже если вы дадите правильный ответ, вы не получите желаемую зеленую галочку. (Когда это происходит, я гуглю в Google - поиск в Google - лучший друг программистов.) Завершение Code Academy не сделает вас полноценным разработчиком, но может стать частью вашего пути. В настоящее время я считаю его наиболее полезным в качестве инструмента для пересмотра и дегустации - он хорош для повторения того, что я уже узнал, а также как способ попробовать что-то новое. Я бы не рекомендовал профессиональную учетную запись, пока вы не пройдете все треки и не захотите чего-то большего.

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

Трудно научиться рубину. Отлично подходит для мышечной памяти. Есть версии этого и для других языков, например, Python, Javascript и SQL.

Рубиновый кикстарт. Учебник на основе Github, рекомендованный Makers.

Приложения

Большая часть кодирования должна выполняться на компьютере, но во время предварительного курса Makers рекомендовали приложение Memrise для изучения синтаксиса и словарного запаса для Git и командной строки, что было очень полезно для меня, так как у моего сына есть привычка закрывать мой ноутбук. когда я на нем. Они уведут вас далеко, и полученные знания будут по-настоящему закреплены только при применении к проекту, но это отправная точка (и начало - это ключ!), И то, что можно сделать на ходу или очень короткими сериями. времени.

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

Чтение

Криса Пайна Учитесь программировать. Мне очень нравится его стиль письма, у него дружелюбный тон и он хорошо передает игривость программирования. Это обнадеживающая первая книга для начинающего программиста. Однако кривая обучения становится довольно крутой примерно на полпути - я не верю, что сама книга может научить вас всему, что вам нужно делать, чтобы уметь успешно выполнять упражнения, есть момент, когда она становится гораздо более полезным помощником для ваше обучение. Я бы порекомендовал работать над упражнениями, которые сопровождают главы, пока не уперетесь в стену (это случилось со мной в главе 8), а затем просто прочитать оставшуюся часть книги, делая заметки по своему усмотрению. Затем отложите книгу, чтобы вернуться к ней и завершить, когда вы углубитесь в свои знания кодирования.

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

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

Практический объектно-ориентированный дизайн в Ruby. Кажется, это почти библейский фолиант для рубистов и объектно-ориентированных программистов. Почувствуйте стиль письма автора Санди Мец в этом сообщении. (Вероятно, более полезно, когда вы хоть каким-то образом путешествуете по программированию - например, завершили учебник для объектно-ориентированного языка кодирования, такого как Ruby, Javascript или Python.) Я все еще с увлечением занимаюсь ООП (Object Ориентированное программирование), но в основном почти все является объектами, что делает код действительно гибким и развиваемым.
Хорошо обоснованный рубист.
Это углубляет подход и знания Ruby как новичков, так и более продвинутых практиков, а также основные концепции кодирования, применимые к нескольким языкам.
Шаблоны проектирования.
Я все время сталкиваюсь с этой концепцией шаблонов в кодировании, и только начинаю понимать это - по сути, шаблон - это подход к созданию посредством кода, как шаблон подхода к вещам. Также доступен как бесплатный PDF.
Рефакторинг.
Рефакторинг означает систематическое и логическое переписывание кода. Это как если написать черновик, а потом несколько раз переписать.
Упражнения для программистов.
Упражнения для поддержания навыков программирования на разных языках.

Детские книги по кодированию. Мне всегда было сложно выучить иностранные языки, хотя я учил французский и испанский с семи лет. Но я помню, как приятно было читать Шрека по-французски, и это напомнило мне о том, как детские книги привели меня к тому, чтобы стать заядлым читателем и писателем. Я очень хочу найти отличные материалы для обучения детей программированию, которые я могу использовать сам и передать своему сыну. Так что, если у вас есть какие-либо рекомендации в дополнение к этим, приступайте к работе!

Парное программирование / коучинг

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

Кодовая строка. Я начал это делать, чтобы подготовиться к Makers и быть рядом с новыми людьми. Стандартная Code Bar проходит по средам вечером с 18:30 до 21:00, обычно где-то в центре Лондона, в технической компании. (Есть и другие Code Bars в других частях Лондона, а также в Великобритании и за ее пределами.) Это бесплатная возможность / инициатива обучения, направленная на диверсификацию технологий - она ​​бесплатна для недостаточно представленных в сфере технологий групп, таких как женщины, цветные люди. и ЛГБТК. А еще еда и выпивка! Обычно вы можете подписаться каждую пятницу на следующую среду (обязательно следите в Твиттере) - подписка часто превышает допустимую, но даже если вы находитесь в списке ожидания, вы обычно уходите, так как люди уходят накануне . Обычно на каждого тренера приходится по два студента, и вы заранее сообщаете им, над чем вы хотите работать, будь то учебное пособие или личный проект. Я организовал занятия, на которых я присутствовал, неоценимые с точки зрения развития моих знаний - и благодаря им я встретил некоторых прекрасных товарищей-программистов.

Девочки Джанго. Это бесплатный однодневный семинар, который позволяет женщинам создать свое первое веб-приложение. Они работают по всему миру, и вы даже можете организовать их самостоятельно! Следующий лондонский - 28 января. Я посетил один в прошлом году в сентябре в Кардиффе, что также позволило мне посетить PyCon бесплатно, как неожиданный бонус.

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

Посетите Meetup.com, чтобы узнать о других мероприятиях и группах по кодированию!

Играть

CodeWars. Честно говоря, я еще не участвую в CodeWars. Я могу быть в будущем. Но я полностью согласен с концепцией кодирования додзё с ежедневными катами, обучением, тренировочными методами и упражнениями, которые развивают ваше мастерство в чем-то (обычно это боевые искусства, в данном случае код). Ката в день отпугивает Кодирующего Доктора или что-то в этом роде. Но некоторым это действительно кажется их джемом, поэтому я оставлю это здесь на случай, если вы захотите изучить его. Ключ к разговору с одноклассниками - в том, чтобы придерживаться его до тех пор, пока он не станет привычкой, что, вероятно, включает в себя выделение дня, пока вы не раскроете свое первое ката и не начнете действовать. Возможно, стоит проверить это на разных этапах вашего пути к программированию - это то, что я планирую делать. На самом деле это относится ко всем ресурсам - они могут быть не совсем подходящими для вас на разных этапах обучения, но к ним стоит вернуться.

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

Magic the Gathering. Наш тренер особенно рекомендовал Magic как способ отточить свои навыки программирования. Каждую среду у Makers есть Волшебная ночь. У меня было несколько тренировочных игр, и я понимаю, почему это полезно для программирования: вы строите вещи, а игра требует логики и предвидения последствий. У меня еще нет собственной колоды, но я хочу продолжить изучение Magic post-Makers.

Настольные игры. Я действительно думаю, что многие настольные игры - это отличный способ расслабиться и тренировать свой мозг от программирования, особенно если вы все время пробуете новые игры. Например, изучение того, как играть в новую игру и знакомство со всеми ее правилами, в значительной степени имитирует изучение нового языка программирования или выяснение того, как подойти к новому проекту. Как только вы начнете, вы сможете повысить сложность и сделать ее более сложной для себя - плюс все игры оживают благодаря командной работе и встрече личностей, что очень похоже на совместную работу над кодом. Моя текущая навязчивая идея - 7Wonders (я думаю, что это выявляет во мне тайного колонизатора и мирового господина), мне также нравятся Dixit, Scruples и Fluxx. Есть даже настольные игры, которые специально нацелены на то, чтобы научить детей и подростков программировать (а почему не и взрослых, как в случае с детскими книгами?)