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

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

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

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

С тех пор, после многих долгих часов разочарования, радости и скуки, я стал программистом. Поясню: я не разработчик. Я бы плохо справился с вопросами на собеседовании по программированию на Amazon. У меня нет сильных и жгучих чувств к С. Из-за этого несколько лет я не считал себя программистом, хотя буквально зарабатывал на жизнь написанием кода. Надевать на себя мантию «программиста» было слишком пугающе, слишком дерзко. Я беспокоился, что, если я назову себя программистом, Марк Цукерберг с дикими глазами вырвется из ближайшей стены, чтобы расспросить меня о тонкостях серверной веб-разработки. «Настоящийпрограммист должен это знать», — я представил, как он говорит.

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

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

Но вернемся к тому, что для меня код.

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

Я не хочу слишком растягивать сравнение с «литературой» — у литературы есть сила эмоционально взволновать меня так, как код никогда не сможет. Но аналогия имеет свои достоинства.

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

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

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

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

Эта статья изначально была написана как часть обсуждения книги Пола Форда Что такое код? в курсе Введение в науку о данных, который читает автор.