Почему писать код — это не весело и просто

Развитие событий: Программист — это новая рабочая специальность (23 февраля 2017)

Консультант в сфере Big Data и исследователь Уолтер Ваннини написал эссе на Aeon о том, что представление программирования как лёгкого и приятного занятия — неправильно, а зачастую и опасно. Он также попытался разобраться в причинах того, откуда возникло такое отношение к созданию ПО. «Роем!» публикует эссе в переводе.


Программировать — проще пареной репы. По крайней мере в этом хотят убедить нас гуру цифрового мира. Начиная от некоммерческой организации Code.org, которая обещает, что «Научиться может каждый!», и заканчивая главой Apple Тимом Куком, который считает, что писать код это «весело и интерактивно», искусство и наука программного обеспечения доступна каждому как алфавит.

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

Написание кода — не единственное занятие, которое требует усиленного внимания. Но вы никогда не услышите, что делать операцию на мозге — это «весело», а проектировать здания — «легко». Когда же дело доходит до программирования, почему политики и специалисты в области технологий утверждают обратное? Например, это помогает привлечь людей в эту сферу в то время, как программное обеспечение (по словам венчурного инвестора Марка Андриссена) «пожирает мир» — и таким образом, расширяя рынок труда, это поддерживает индустрию на ходу и не даёт расти зарплатам слишком высоко. Другая причина в том, что само слово «программирование» звучит рутинно, будто есть некое решение, которое разработчики применяют из раза в раз для решения любой проблемы. Не помогает и Голливуд, который изображает «кодеров» как неизбежно белого мужчину с проблемами в общении — хакера, который бездумно бьёт по клавишам и может взломать ЦРУ или разрушить планы нацистов.

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

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

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

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

Добавить 30 комментариев

  • Ответить

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

  • Ответить

    >А бессмысленные тексты и эссе с бессмысленным посылом, перепощщиваемые ради красного словца?

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

  • Ответить

    Кмк, посыл-то как раз в этом и есть, что это не менее важно чем строительство мостов и прочие операции на мозге. Но про эти занятия почему-то не говорят, что они типа весёлые такие, интерактивные и прочее.
    Мне больше всего нравится мысль про обучение, что если вы учите этому детей и хотите, чтобы они серьёзно этим занимались, то нельзя воспитывать отношение к программированию как к чему-то легкомысленному. Представляете, какая фрустрация, когда ты думаешь, что вот-вот и будешь программировать роботов, а по факту учишься по часу, чтобы вывести Hello World в каждом отдельном языке программирования.
    И так, кстати, не только в программировании. Мы с товарищем (оба дипломированные учителя английского ☺) несколько лет назад обсуждали, как портит учеников отношение play & learn. Понятно, что многие аспекты языка можно усвоить в игре, но также есть и более сложные области, различные важные нюансы, которые зачастую проще и быстрее усвоить обычным скучным способом — запоминаем правило, смотрим примеры, практикуем.
    Уверен, что в любой области так. В общем, вывод простой: если чем-то заниматься профессионально, то нужно изначально смириться, что предстоит тяжёлая дорога на пути к мастерству. Иначе никак — веселье закончится быстро, начнутся трудности, и ученики сразу станут «отваливаться».

  • Ответить

    в программировании (с отпадением, по большому счету) задачи суперкомпактного кода для большинства случаев ( в рядовых компах и гаджетах — избыточные производительность и память) сохранилась, пожалуй, одна задача — надежность, относительно скорость да и все, собсно. Далее все определяется ТЗ, которое, полюбасу, предшествует собсно писанию кода. (даже если пишете себе как хобби). Таким образом, писание кода в 99% является выполнением чьегото заказа, ТЗ итп., а следовательно — требует соблюдения регламентов норм и правил, следование прецедентам (или заимствованиям из таковых, более ранних и успешных) ит.д. и тп.
    Если вы, допустим, взялись на заказ класть кафельную плитку, но не умеете, то вам врядли и закажут эту работу. Таксистом тоже можно начинать работать, сперва получив права и научившись хоть както ездить на автомобиле. ( дело опасное и ответственное).
    Масло должно быть масляным, экономика — экономной, лошади кушают сено и овес, Волга впадает в Каспийское море.

  • Ответить

    >> Мы с товарищем (оба дипломированные учителя английского ) несколько лет назад обсуждали, как портит учеников отношение play & learn.

    В первую очередь, портят учеников плохие учителя. Тут пословица даже есть: «Неча на зеркало пенять, коли рожа крива.». Вон разные начальники (Прохоров и другие) вообще считают, что «дипломированные» программисты не нужны, достаточно среднего образования или даже ПТУ. Про «дипломированных учителей английского» я вообще молчу — такой диплом можно засунуть…. Знание английского языка — всего лишь дополнительный атрибут, постоянно теряющий ценность. Либо есть креатив, либо его нет. В последнем случае остается только считать самого себя Великим и Ужасным Гудвином и УЖК.

  • Ответить

    Автор все свалил в одну кучу — дети, мосты, фейсбук, ответственность, операции на мозге.

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

  • Ответить

    Когда ребенок из железок, винтиков и болтиков собирает машинку; из деревяшек — скворечник; месит тесто — ему надо объяснять, что это — не весело и не просто, это ответственность и тут нужен особый склад ума, и если не проявить должной серьезности — то в будущем фрустрация, судороги, понос, смерть?

  • Ответить

    если чем-то заниматься профессионально, то нужно изначально смириться, что предстоит тяжёлая дорога на пути к мастерству. Иначе никак — веселье закончится быстро, начнутся трудности, и ученики сразу станут «отваливаться».

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

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

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

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

  • Ответить
    a

    Блин, обучаться всегда надо просто и весело. Ответственно нужно работать, и это приходит уже к концу обучения. Прямо представляю себе программиста, которого с детства били ремнём, типа «а ну зубри приоритеты опепаций, ты что, хочешь убить миллионы людей?! — Неет, папа, я не хочу, я просто хотел сделать тетрис!»

  • Ответить

    >>Кмк, посыл-то как раз в этом и есть, что это не менее важно чем строительство мостов и прочие операции на мозге. Но про эти занятия почему-то не говорят, что они типа весёлые такие, интерактивные и прочее.

    Ну да, конечно. Мотивы написания статьи понятны. А и с другой стороны и машиностроение и металлообработка это же тоже — просто и весело: https://www.youtube.com/watch?v=FBu3U8rxFjc
    Какие виртуозы! Только я так и не понял когда они смузи пьют.

  • Ответить

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

    1. В первую очередь…
    Ну да и что? С трюизмов и пословиц как знатный демагог зашли.

    2. Вон разные начальники…
    Одного Прохорова пока увидел, и то, не уверен, что это правда — не знаю.

    3. Про «дипломированных учителей английского»…
    Иметь диплом ≠ уметь делать, что в нём написано. В принципе, любой диплом можно засунуть туда, куда вам ваша фантазия подскажет, если вы не учились.

    4. Знание английского языка…
    Знать ≠ уметь преподавать. Есть преподаватели «от бога», которым «дано» и всё такое. Но это в любой профессии так. Что, кстати, не отменяет того, что с соответствующим образованием/знаниями эти специалисты наверняка достигли бы больших высот.

    5. Что-то там про Гудвина и УЖК.
    А вы точно мне отвечаете или у вас внутренний диалог?

  • Ответить

    >>Алик Алик: «Знание английского языка — всего лишь дополнительный атрибут, постоянно теряющий ценность.»

    Вы как-то свалили в одну кучу и «могу на ломаном английском пообщаться с индусским колл-центром», и «сойду за своего на cocktail party в The Met», и «перевожу поэзию» и так далее…

  • Ответить

    Чтение/написание спек я бы не называл знанием языка. А нормальное знание языка и/или умение обучать ему — это отдельные скиллы, требующие существенных затрат времени и энергии.

  • Ответить

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

  • Ответить

    >>Алик Алик — «английский язык образовался в области датского права«»
    Интересная теория :)))
    «…почему-то когда они попадают в среду, то их кондовый акцент…»
    У меня не филологическое образование, но распознавать и говорить с основными региональными акцентами и базовыми отличиями в лексике было частью зачетов/экзаменов. У филологов глубина проработки этого материала на порядок круче. Собственно акценты и изменения языка с течением времени — единственное, что интересно в английском. Сам то язык слишком простой.

  • Ответить

    >> Интересная теория :)))

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

    >> А нормальное знание языка и/или умение обучать ему — это отдельные скиллы, требующие существенных затрат времени и энергии.

    Да ладно. Сейчас полно нативных учителей, которые вполне хорошо справляются, не хуже русскоговорящих (конечно, «дипломированных преподавателей английского» даже не стоит рассматривать). Не думаю, что им скилы обошлись в существенные затраты времени и энергии. Занятия с ними — вполне себе плаг&плэй. И по тем же курсам, что и с русскоговорящими. Если бы не необходимость делать домашние задания, то ничем не хуже энгри бердс

  • Ответить

    >>английский язык образовался в области датского права
    >>Это не теория, а вполне установленная веха

    Я не специалист по истории языка, но насколько помню территория современной Дании к тому моменту уже несколько сот лет ни при чем была.

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

    Даже если сделать скидку на фулл тайм работу, то чтобы не штаны просиживать, а нормально изучать какой-нибудь простой европейский язык Вам нужно заниматься им каждый день из расчета 15−20 часов в неделю. Это исходя из того, что, где возможно, домашку преподаватель отдельно проверяет, а не тратит на нее время на занятии. Никакой непрофессиональный преподаватель такой нагрузки не выдержит. Вы ориентируетесь на курсы «для дебилов», где на выходе через год-полтора бодрые улыбчивые студенты с 2−3 тыс. слов лексики.

  • Ответить

    >> Я не специалист по истории языка, но насколько помню территория современной Дании к тому моменту уже несколько сот лет ни при чем была.

    google:
    Danelaw — территория в северо-восточной части Англии, отличавшаяся особыми правовой и социальной системами, унаследованными от норвежских и датских викингов, завоевавших эти земли в IX веке.

    >> Вы ориентируетесь на курсы «для дебилов», где на выходе через год-полтора бодрые улыбчивые студенты с 2−3 тыс. слов лексики

    Вы как Моммоний, считаете, что кругом одни дибилы.
    google:
    https://www.native-english.ru/articles/words
    «ну, а 800-1000 слов — около 95% того, что нужно будет сказать или услышать в самой обычной ситуации.»
    Важен даже не словарный запас, а умение им пользоваться. Что толку, если чувак выучил наизусть словарь Мюллера, а сказать ничего не может.

    Цитата: «Словарь Вильяма Шекспира, по подсчёту исследователей, составляет 12 000 слов. Словарь негра из людоедского племени Мумбо-Юмбо составляет 300 слов. Эллочка Щукина легко и свободно обходилась тридцатью»
    Вот Эллочка Щукина знала язык, потому что умела им пользоваться, а чувак, выучивший наизусть словарь Мюллера — нет!

  • Ответить

    >>Danelaw
    Да, Вы правы. Я не знал этого термина.

    >>Словарь Вильяма Шекспира
    1. Обычно оценки дают в районе 30 тыс. плюс-минус что-то. И «темная материя» в виде статистических оценок вокабуляра, которые знал, но не использовал.
    2. У нас просто разное понимание того, что такое «самая обычная ситуация» :) Хорошее знание языка — это рабочий язык. И реднек из Техаса и профессор истории литературы из Йеля должны видеть в Вас своего. И переводить Вы их должны в соответствии с их языком. А не Равшан с «паламалася-да, хазяина…»

  • Ответить

    >> И реднек из Техаса и профессор истории литературы из Йеля должны видеть в Вас своего. И переводить Вы их должны в соответствии с их языком. А не Равшан с «паламалася-да, хазяина…»

    Да не согласен я с такой логикой. Профессор истории литературы из Йеля не поймет половину того, что будет говорить техасец. Хотя техасец его поймет.
    Но по этой логике значит, что профессор знает язык хуже техасского реднека.
    А переводить, как синхронный переводчик, все подряд, «дипломированные учителя английского» тем более не могут. Иначе бы они не были «дипломированными учителями английского». И даже гоблин не может, ему быстродействия мозга не хватает подбирать правильные слова.

  • Ответить

    >>Профессор истории литературы из Йеля не поймет половину того, что будет говорить техасец. Хотя техасец его поймет.
    Я думаю профессора истории литературы более-менее знакомы с региональными особенностями :) А вот разницу между вокабуляром в 12-15 тыс. и 40-45 тыс. ничем не заменишь.

    >>«дипломированные учителя английского»
    Ваш поинт в том, что есть плохие преподы? :) Ну да, есть… Но если человек совсем не может делать синхрон, то это точно не рабочий язык. Это же верный признак того, что он не может думать на языке «автоматически». Не чувствует кожей нюансов. Вряд ли можно говорить, что он его знает. Можно быстрее «выдохнуться» и начать нести совсем уж «отсебятину», можно иметь не такой большой языковый кругозор и, соответственно, больше времени на ознакомление со стилистикой «подопечного», но совсем без синхрона — это как-то сомнительно…

  • Ответить

    >> если человек совсем не может делать синхрон, то это точно не рабочий язык.
    >> но совсем без синхрона — это как-то сомнительно….

    Да не согласен я опять.
    У вас какие-то олимпийские планки.
    Думать на языке и говорить проще, чем нормально синхронно переводить. Нормальный синхронный переводчик, даже с английского — редкость.
    А так, чтобы и акцент был незаметен — тем более: нужен идеальный слух и голосовой аппарат тоже не последнее дело. С английским правда проще, могут подумать просто на другой регион и перепутать акцент, например русский с немецким.

  • Ответить

    >> разное понимание того, что такое «самая обычная ситуация»

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

  • Ответить

    >>Впрочем да, наверное разница в том, что вы рассматриваете профессиональное знание языка, а я как инструмент.
    Браво, У Вас отличная аналогия! Я бы сказал, что разница скорее в том, с какого момента это будет называться «знаешь язык». Любой здоровый человек может пробежать сотню-другую метров, значит ли это, что в резюме можно писать «спринтер»? :)

    >>У вас какие-то олимпийские планки.
    Да нет, почему же… Синхрон сам по себе — это же несложный навык. Если Вы думаете на этом языке и у Вас есть какой-то опыт последовательного перевода, то научить Вас синхрону — это несколько пар занятий. Как только на одном языке научился выключать мозг, не замирать и говорить, как говорится, то все… Как велосипед. Дальше вопрос только в качестве перевода (кругозор на обоих языках, понимание культур) и практике — как быстро выдыхаешься и качество перевода резко падает. Что собственно и будет отличать синхрониста от просто человека с хорошим знанием языка.

    Я привел синхрон просто как простой и объективный критерий — если кто-то не думает на этом языке, то он точно не сможет делать синхрон. Просто «думать» в данном контексте — это действительно думать. Кожей чувствовать нюансы речи и уметь их конструировать самому без отдельных мыслительных усилий. Ну примерно, как дети лет в 10−12 — у них вокабуляр может быть и не такой большой, но такие вещи они уже делают виртуозно. А просто собрать набор слов и запихнуть в жесткую грамматическую конструкцию — это уровень ребенка 3−5 лет. ИМХО.

  • Ответить

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

    PS Это если не брать в расчет то, что и время на подумать над ответом больше появляется и в каких-то случаях можно «отползти» от своих слов и свалить все на переводчика :)