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

Я поздно пришел к программированию. Я не был одним из тех 12-летних, которые создавали сложные видеоигры для своего Commodore 64. Я играл во множество игр на Commodore 64 - Ultima, Seven Cities of Gold, но я почти уверен, что я даже не знал, что в таком возрасте можно написать собственную видеоигру. По правде говоря, я долгое время ничего не знал о программировании.

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

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

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

Что говорит Норвиг

«Почему все так спешат?» -Питер Норвиг, «Научитесь программировать за десять лет»

Питер Норвиг - американский компьютерный эксперт, наиболее известный своими исследованиями и разработкой алгоритмов в Google. Он работал в НАСА, написал основательные книги по искусственному интеллекту и обучил сотни тысяч студентов через массовые открытые онлайн-классы (MOOCS). Если мы можем серьезно относиться к этому вопросу, так это он.

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

Не торопитесь. (Но не откладывайте на потом.)

Обучение программированию во многом похоже на обучение игре на музыкальном инструменте. Было бы абсурдно думать, что вы можете стать мастером-пианистом, прочитав книгу и посмотрев несколько видеороликов на YouTube.

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

Программирование работает точно так же. «Похоже, что нет никаких сокращений, - говорит Норвиг. «Даже Моцарту, который в 4 года был музыкальным вундеркиндом, потребовалось еще 13 лет, прежде чем он начал создавать музыку мирового класса». Однако это не означает, что вы не можете быть продуктивным программистом немедленно! Поскольку программирование обширно, существует множество способов внести свой вклад и развиваться. Современные знания в области технологий и готовность учиться делают увлеченного младшего разработчика невероятно ценной вещью, гораздо большей, чем просто застрявшим на своем пути профессиональным экспертом.

Все этапы учебного процесса увлекательны. Это важно для начала вашего путешествия. Тогда наслаждайся!

Учитесь широко (а также глубоко)

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

Широкое обучение означает получение базовых знаний по широкому кругу тем в вашей области, в то время как глубокое обучение означает выбор одной темы для изучения. Чем больше я пытался глубоко изучить, тем меньше я достигал. PHP и SQL были важны, но больше всего меня интересовало машинное обучение и трехмерная графика. Только когда я позволил себе разветвляться, мое обучение ускорилось. Мой интерес к машинному обучению и графике требовал новых инструментов и языков. Эти новые концепции изменили мое отношение к существующим инструментам, что еще больше изменило мое отношение к новым инструментам. Это был благоприятный цикл.

Один из акцентов Норвига - «Заинтересуйтесь программированием…». Единственный способ добиться этого - работать над тем, что вам нравится.

Сотрудничать

Одно из самых неудобных предложений на английском языке - «я не знаю». Мы социальные. Мы не хотим показаться глупыми. Чтобы скрыть свое невежество (которое на самом деле не является незнанием), мы можем оставить свой интерес к программированию при себе или убедить себя, что мы можем научиться программированию самостоятельно. В конце концов, в Интернете полно бесплатных ресурсов.

Это ошибка.

Он устарел, но все еще существует стереотип, что одинокий разработчик бросает блестящий код в какой-то темный подвал, питаемый Mountain Dew и пиццей. Это просто больше не так, как это работает (если когда-либо). Программирование невероятно социальное. Лучшие программисты учатся друг у друга. Просмотрите GitHub, Stack Overflow, YouTube или бесчисленные технические блоги, и вы найдете бесчисленное количество людей, говорящих о коде, делящихся своим кодом и позволяющих другим людям влиять на свой код - и все это бесплатно. Группы технических пользователей полны людей, которые любят встречаться лицом к лицу, делиться проектами, над которыми они работают, и говорить о способах улучшения.

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

«Будь лучшим программистом в некоторых проектах», - говорит он. «Будь хуже с другими. Когда вы лучший, вы можете проверить свои способности руководить проектом и вдохновлять других своим видением. Когда тебе будет хуже, ты узнаешь, что делают мастера ».

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

Практика

Мы не можем научиться программировать, читая статьи и просматривая видео. Мы можем вспомнить факты о программировании, но не сможем построить ничего интересного. Единственный способ научиться программировать - это практика.

В качестве мысленного эксперимента представьте, что у нас появляется интерес к нашей местной истории примерно в 1875 году. Может быть, мы особенно увлечены фактами и историями. Чтение и просмотр подходят для этого типа обучения. Никаких дополнительных навыков, кроме запоминания, не требуется; Воспоминание фактов и историй сводится к поиску основной информации. Если чтение и просмотр помогают нам запоминать, этих приемов будет достаточно.

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

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

Однако не все практики одинаковы. Например, мне нравятся МООК. Благодаря им я ощутил влияние осмысленной практики. Если MOOC предоставляет открытый практический материал, который мне недоступен, я многому научусь. Но если курс следует по всем знакомой формуле:

Я очень мало узнаю.

Осмысленная практика - это управляемая борьба. Сюда входят неудачи, приспособление и рост.

Спасибо, Питер Норвиг!

Мне потребовалось некоторое время, чтобы полностью оценить «Научитесь программированию за десять лет». Norvig многое вкладывает и перегоняет сложные идеи до тех пор, пока они не станут простыми. Только после некоторого размышления и практического опыта вы понимаете, что концепции, о которых он говорит, больше, чем они кажутся.

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

Итак, если вас интересует программирование:

Начинать. Расслабляться. Развлекайся. Потерпи. Будьте настойчивы. Балуйтесь широко. Общайтесь с людьми. Доля. Полюбопытствовать. Быть скромным. Поставьте себя на место. Развлекайся.

И, самое главное, получайте удовольствие.

Готовы начать учиться? Гильдия программного обеспечения предлагает учебный курс Введение в веб-разработку, который поможет вам построить основы вашей карьеры программиста. Заполните бесплатную онлайн-заявку и начните свой путь к лучшей карьере.

Дополнительная информация

Хотите прочитать знаменитое эссе Питера Норвига? Смотрите здесь.

Хотите узнать больше обо мне? Посмотреть мой профиль инструктора в The Software Guild.

Первоначально опубликовано на https://www.thesoftwareguild.com 6 мая 2019 г.