почему Артем программирует

Вы слушаете Артём Подкаст.

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

Поговорить я сегодня хотел о том, почему Артём программирует. Это такой вопрос, который время от времени всплывает в дискуссиях. Обычно люди подходят с двух сторон к этому вопросу. Первая сторона - это как же Артёму повезло, что он программист и на работе своей может позволить себе многие вещи, которые на других работах не позволительны, работа из дома, например. А с другой стороны, интересно, иногда бывает, почему же Артём избрал эту профессию. И как так получилось, что он вдруг обладел ей без всякого стороннего внешнего наставника или обучения в институтах или других учебных заведениях. Начну, пожалуй, с последнего.

Почему так получилось, что Артём программирует? Здесь я вижу несколько причин. Во-первых, историческая причина, которая заключается в том, что когда Артём был маленький, его отец, который по профессии инженер радиоэлектроники, иногда проводил время за своей работой, собирал различные схемы, паял паяльником, чинил различную технику. Артём за всем этим наблюдал, пока был маленький, и был в полном восторге от того, что делает его отец, потому что это была настоящая магия. Вот приносили устройство, которое не работает, и после манипуляций…

Собачки тут с мячиком играют.

После манипуляций с паяльником и тестером вдруг это устройство в руках моего отца начало работать, и чудесным образом это происходило каждый раз, практически со стопроцентной результативностью. Но вот была одна вещь, которую отец Артёма сказал как-то, и Артём это запомнил, и я немного потом поясню, почему. Он сказал, что он может починить любую вещь, любое устройство, любую электронную схему, разобрать, понять, как она работает, и собрать заново, но лучше. Но не может он запрограммировать. Что это тогда точно значило, Артём не знал. Но отец тогда упомянул, что программисты – это такие ребята, которые умеют вот это самое программировать и могут заставить чип, который представляет из себя, опять же, набор микросхем, набор электронных элементов, могут заставить его работать, даже если он пустой, скажем так. Болванку могут записать в программу в неё, и она будет работать.

И тогда это Артёма очень сильно поразило, что отец, который, как ему тогда в детстве казалось, может всё и умеет всё, связанное с техникой, сказал, что есть ещё какие-то гуру, какие-то великие умельцы, которые могут то, чего он не умеет. И Артёму захотелось узнать об этом побольше. И, возможно, даже стать одним из таких умельцев, которые умеют программировать. И поэтому в своём дневнике за второй или за первый класс, не помню уже, Артём, там была такая анкета в дневниках школьных, кем ты хочешь стать, когда вырастешь. И Артём, который тогда ещё не знал, как пишет слово “программист”, записал в той анкете в поле, где спрашивалось, кем он хочет стать, когда вырастет, записал “программистром”. То есть это как соединение слов “программист” и “бургомистер”. Такой верховный программист.

Кем хотел Артём стать в начальной школе – это программистом. Ну это такая историческая, анекдотическая байка. А потом, когда Артём немножко подрос и повзрослел, уже в средней школе, ему стало известно, что для того, чтобы быть программистом, нужно хорошо знать математику. Математику Артём не очень любил, но ради великой цели всё-таки взялся и начал математику любить. Говорят, что не любишь то, чего не знаешь. Соответственно, самый простой способ полюбить математику, это взять и изучить её. И некоторая любовь к изучению математики Артёму, конечно, привили его учителя в средней и старших школах. Ну и по-прежнему, несмотря на все старания и стремления, у Артёма не было компьютера, а был только калькулятор.

Но даже с калькулятором, как оказалось, можно делать много уникальных и удивительных математических вещей, и даже немножко калькулятор программировать, даже самый простенький, на которых есть кнопочки memory +, memory -, memory reset и memory clear, вот эти с буковкой M кнопочки, которые обычно никто никогда не трогает. Оказалось, что у них есть предназначения и функции, и можно интересные вещи делать. Можно записывать в калькулятор значения, можно читать, можно их складывать и использовать в других вычислениях. Так что это был такой первый опыт программирования для Артёма, программирования калькуляторов. Не научных, а таких самых простых бытовых калькуляторов, но с функцией памяти.

И, к счастью, интерес Артёма был замечен его родителями, и к колледжу Артёму подарили компьютер. Персональный компьютер. Ну и Артём, конечно же, пропал внутри этого компьютера. Сначала он играл в видеоигры, потом он эти видеоигры разбирал. Почему разбирал? Потому что у Артёма всегда было очень мало времени на то, чтобы поиграть в видеоигру, потому что родители ограничивали количество часов, которые Артём готов бы провести за компьютером, а это целые сутки, наверное, и даже больше. И поэтому играть целыми сутками Артёму в компьютер не давали. И приходилось… Но было интересно Артёму узнать, что же в видеоигре происходит дальше. Но поскольку Артём не очень хороший игрок, и, скажем так, не очень усидчивый, он использовал чит-коды в видеоиграх, чтобы узнать сюжет видеоигры без, собственно, прохождения видеоигры. Так сказать, скипал какие-то игровые части в погоне за сюжетными роликами и в погоне за новыми диалогами и катсценами.

Со временем Артём понял, что сюжетные ролики тогда ещё чаще всего были заранее в видео отрендерены, а не делались на движке игры, а потому можно было просто зайти в папку, где игра была установлена на компьютере, и все эти ролики сразу посмотреть, даже не открывая игру. Так Артём начал разбирать разные видеоигры, знакомиться с разными видеоигровыми движками, их отличиями. Какие-то игры просто содержали файлы в папках какие-то, сделали это в зашифрованном виде, в заархивированном виде, и приходилось искать специальные программы, чтобы эти видеоролики вытаскивать оттуда и как-то конвертировать в форматы, которые можно воспроизвести на компьютере без видеоигры.

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

И вот разобрав одну такую оболочку по частям и поняв, что сделана она для браузера и работает она с помощью какого-то невиданного до сели языка HTML, Артём начал пробовать, копируя части этой оболочки в редакторе блокнот, начал пробовать соединять различные куски этого HTML, чтобы сделать оболочку для своих игровых ресурсов, чтобы сделать своё собственное такое произведение CD, которое можно будет подарить друзьям и похвастаться своим навыком выдирать игровые ресурсы и делать оболочки для них. Собственно, с этого и началось программирование, настоящее уже знакомство с программированием, с первым языком. Программирование для Артёма – это был язык HTML, язык разметки.

Потом Артём постепенно дошёл до языка CSS, который позволял различные стили применять к тем произведениям, которые Артём делал на языке HTML, этим веб-страничкам. И после этого уже спустя некоторое количество лет Артём начал программировать на разных веб-языках, используя различные веб-фреймворки. Это такой исторический экскурс, почему и как Артём дошёл до программирования. Но вот недавно я ещё задумался о том, почему Артём программирует сейчас, почему он делал это в детстве, более-менее понятно. Но почему он делает это сейчас, тайна великая есть. И я, кажется, нашёл, или мне кажется, что я нашёл ответ на этот вопрос.

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

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

На этом будем завершать. Я думаю, остальные причины, почему Артём программирует, не так важны, во всяком случае, в данный момент.

Спасибо, что слушали, и услышимся в следующий раз. Спасибо!