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

Сериал «Замри и гори»

Программирование в эпоху авангарда

Сериал о событиях, происходящих в 80-х годах прошлого века, когда компания IBM продемонстрировала свой очередной «калькулятор», как его называют герои сериала. Романтика программирования, как она есть, во времена когда все только начиналось. Выльются ли «калькуляторы» во что-то большее или нет? Есть ли за всем этим большая идея? Помимо прочего, серии наполнены полезными техническими деталями. Сериал, который продлили на второй сезон, идеально подойдет для неподготовленного человека, который хочет увлечься программированием, но сомневается, насколько это будет скучно — в первые же минуты первой серии первого сезона программисты практически занимаются сексом в подвале.

Книга «Просто для развлечения: История случайной революции»

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

Линус Торвальдс, заинтересовавшийся программированием в 80-х благодаря дедушкиной огромной ЭВМ, прочитал книгу профессора Эндрю Таненбаума о проектировании операционных систем и окончательно вдохновился. Вдохновленный, он написал свою операционную систему, которую назвал Linux и выложил в открытый доступ. Позже Linux известный профессор публично раскритиковал, а сам Линус написал для основного ядра всего пару процентов от основного кода. Захватывающая книга-биография о том, как не выходя из спальни в одиночку состряпать небольшой проектик, которым через пару лет будет пользоваться пара миллионов человек. Прочитав одну эту биографию, можно разом охватить все темы: конкуренция, открытый код, профессиональное сообщество и будущее программирования.

Поток The Hanselminutes Podcasts

О программировании из первых уст

Обновляемая серия подскастов от программиста из Microsoft родом из Орегона. Небольшое радио для программистов, кажется, прямиком из параллельного мира: интервью с бывшей студенткой медицинского колледжа, которая поняла, что не хочет в будущем спасать человеческие жизни, и непринужденные разговоры с ведущими разработчиками об устранении межплатформенных ошибок. Серию подкастов лучше всего воспринимать как инструмент для расширения кругозора и общего понимания того, что сейчас вообще происходит в области программирования, — например, какую роль играют разработчики в запуске марсохода. Если прослушать перед сном выпусков 20, то можно запросто поверить в то, что вы действующий программист.

Курсы программирования: код в наших руках

Когда романтика программирования вас уже захлестнула и понимание того, что вообще происходит, также настало — пора брать все в свои руки. Можно выбрать любой вводный курс по программированию на Coursera, например, попробовать себя в области программирования на языке Python — нужно присоединиться к группе, слушать и выполнять задания. Или довериться более авторскому подходу, который пропагандируют авторы проекта Learn Code the Hard Way. Здесь можно выбрать один из языков программирования и начать выполнять изнуряющие упражнения, какими обычно нагружают в музыкальных школах. Говорят, что такой подход работает очень хорошо и то, что прошли уже не забудете никогда. Начальной подготовки никакой не требуется — нужно просто сесть и начать строчить код.

Проект Codewars

Программирование своими руками

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

Иван Комаров о том, как теперь со всем этим жить

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

Сложно сказать, что такое базовый нормальный уровень в программировании, потому что разработка ПО — область сравнительно молодая, и споры о том, какими знаниями и навыками должен обладать каждый разработчик, ведутся до сих пор. Можно вспомнить, какой взрывной эффект три года назад произвел теоретический минимум программиста от Дениса Остапенко: комментаторы по всему рунету яростно доказывали автору, что нужно учить вовсе не ту ерунду, о которой он рассказывает, а [подставьте здесь любимые технологии комментирующего]. Я бы осторожно сказал, что за несколько месяцев пройдя один из курсов в четвертом пункте, вы получите некие базовые знания, которых хватит на то, чтобы написать, например, примитивную игрушку. При этом надо понимать, что вы будете постоянно сталкиваться с тем, что у вас что-то не работает, и вы не будете понимать почему.

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