Случай с бомжом
Однажды в конце декабря, когда воздух пахнет сгорающими над городом фейерверками, а улицы полны паникующих из-за цен на горошек, я решил научить программированию бомжа. Он сидел у стены в подземном переходе; мужчина средних лет с разумными глазами, не пьющий и не деградировавший, в опрятной, но очень поношенной одежде. Совершенно очевидно, что он переживал одиночество и отчаяние.
Обычно вместо денег я даю попрошайкам-мужчинам телефон отдела кадров одной курьерской компании, которая постоянно нуждается в сотрудниках. Но у него не было ног… Тогда я подумал: «Чувак, у тебя полным полно времени. Работа за компом — лучшее, что может случиться в твоей жизни. Купон со скидкой на курс по PHP — вот, что должны были положить тебе на койку туда, где раньше были ноги, когда ты очнулся после ампутации».
Я решил предложить ему изучить программирование. В его положении он должен был быть чертовски мотивирован. Но получится ли у него?
Да конечно нет!
Ранее я много раз видел, как у людей не получалось. У каждого программиста в России был или будет момент, когда он начинает зарабатывать больше, чем все его неайтишные знакомые вместе взятые (исключение — успешные бизнесмены, коих так мало, что можно их не учитывать). Естественно, у кого-то из них возникает желание повторить успех. А потом мы с болью в сердце наблюдаем, как у них ничего не выходит.
В моём окружении припасть к живительному источнику кодинга безуспешно пытались старший брат, девушка, подруга девушки, друг, несколько шапочных знакомых и коллег с предыдущих мест работы. Некоторые по несколько раз. Большинство из них объясняют своё фиаско так: «Программирование не моё. У меня нет к этому таланта».
Талант к программированию
Помню рассказ подруги, как она стала виолончелисткой. В класс пришла преподавательница и попросила детей показать руки. Для виолончели с её огромными струнами совершенно необходимо, чтобы у музыканта были пухлые нескошенные подушечки на пальцах особой формы. Такие оказались только у неё.
В известных додзё кёкусинкай в Японии преподаватели просят приводить мальчиков на занятия именно пап. Чтобы посмотреть на толщину костей в конечностях родителя, потому что люди с тонкими костями никогда не научатся разбивать камни голыми руками даже на первый дан. Тренировать их бесперспективно. У будущего художника должен по-особенному работать аппарат мысленного представления. Проще говоря, закрывая глаза, художник должен быть способен ясно видеть представляемый образ. Без этой способности он никогда не поднимется выше уровня посредственности. То есть для успешности в разных видах деятельности необходима соответствующая одаренность, талант.
Существует ли талант и к программированию?
Ключевая способность программиста
По моему опыту, главная особенность, необходимая для того, чтобы стать программистом, это способность длительно, в повседневном режиме выдерживать фрустрацию, возникающую от преодоления когнитивной сложности. Не ум, не рациональность мышления, не высокая концентрация внимания, а именно способность терпеть страдания, разбираясь в чём-то сложном.
Фрустрация от когнитивной сложности — это то самое неприятное чувство, которое возникает, когда не можешь разобраться в какой-то запутанной фигне. Практически вся повседневная работа программиста состоит из таких моментов. Такая фрустрация выражается в рефлекторном напряжении мышц тела с задержкой дыхания. Она сама по себе неприятна, но худшее начинается ещё через мгновение: в зависимости от своего типа личности, человек начинает чувствовать раздражение, гнев (вспомните тех своих коллег, которые орут на свой код, когда тот не работает) или печаль и разочарование (вспомните обессиленных, демотивированных коллег, напоминающих вялую макаронину).
В результате для любого человека процесс программирования переполнен страданием. Нормальный человек боль не любит и прогать бросает.
Паровозик, который не смог
Мой старший брат, — серебряный школьный медалист и умница, каких поискать, — обучаясь программированию, проходил через что-то вроде изгнания бесов. Он жутко горел, когда что-то не получалось. Баги надолго выводили его из душевного равновесия. Оказалось, что он не может длительно без физической активности находиться у компьютера. И он очень расстраивался, когда что-то не получалось. Вернее, не расстраивался раз, второй, третий, демонстрируя нормальную для человека стойкость, а потом его ломало. Несколько раз в день он уходил на улицу и подолгу шёл куда-то просто так, чтобы подвигаться.
Затем он начал прокрастинировать, используя любую возможность, чтобы отвлечься. Одновременно начались жалобы на чрезмерное напряжение во всём теле, особенно в плечах, глазах и голове. Начал болеть затылок. На подобные боли жалуются многие люди интеллектуального труда. И хотя его обучение шло успешно, было видно, что ему плохо.
А потом он сдался.
Я очень хотел, чтобы у него получилось. Он начал работать в 14 лет и фактически заменил в нашей семье отца. До 28 лет он работал на шахте на севере, отправляя нам почти все заработанные деньги, чтобы мы, младшие братья, встали на ноги. Из-за этого он так и не получил высшее образование и не создал свою семью. Я очень хотел чтобы у него получилось, и в его жизни наступила светлая полоса… Но ничего не вышло.
И, естественно, глядя на этого человека в переходе, перед тем как отдать ему свой старый комп, оплатить курсы и месяц жизни в хостеле, я думал о том, не повторится ли эта история, есть ли в нём эта способность. Судя по его виду, почти наверняка нет. Он выглядел слишком нормально. Дело в том, что способностью терпеть фрустрацию от когнитивной сложности, по моему опыту, обладают особенные люди.
Чудаки
Чтобы стало понятно, я опишу вам несколько своих знакомых программистов:
Параноик, строящий в Подмосковье бункер на случай апокалипсиса. Будучи тимлидом проекта он так его усложнил и запутал, что теперь только он понимает как всё работает. Фактически, теперь он держит за горло всю компанию.
Неряшливый парень с жиденькой бородкой дьякона и синдромом Аспергера (лёгкая форма аутизма), кодящий как боженька, но совершенно не понимающий таких простых вещей, как флирт или юмор.
Программист С++ с шизоидным расстройством личности, выглядящий как живой скелет. Несколько лет в одиночку создавал собственный объектный поисковик.
Женоподобный юноша с тихим голосом, никогда не смотрящий в глаза, без шуток состоящий на правах личного раба при своей девушке-феминистке.
Думаю, вы уже поняли.
Самый редкий типаж в нашей среде — это обычный мужчина, не испытывающий проблем с противоположным полом и друзьями, имеющий благополучную семью, симпатичный, общительный, любящий физическую активность и нормально развитый. Без проблем с психикой. Человек-норма. Программирование переполнено чудаками, как ни одна другая профессия. Фрики, изгои, субкультурщики, социофобы, суицидники, депрессивные, тревожные, злобные параноики, люди с серьезными психологическими проблемами — кого я только не встречал среди нашей братии. Именно у них есть заветное качество: способность длительно выдерживать фрустрацию от когнитивной сложности.
Объясню, как она появляется, на примере тех же знакомых:
Прогер-параноик, закошмаривший свою компанию, обрёл способность долго и дотошно пробиваться через когнитивную сложность благодаря тому, что и в своей повседневной жизни занимается именно этим. Дело в том, что он всё время от всех вокруг ожидает подвоха и предательства. По сути дела он всегда настороже и никогда не расслабляется, контролируя вообще всё вокруг, вроде шахматиста во время партии. Он настолько привык к этому состоянию, что дискомфорт от когнитивной сложности для него совершенно обыденная вещь. Тем не менее время от времени и ему нужна разрядка. Тогда он уходит в зверские запои.
Программист с синдромом Аспергера банально не умеет фрустрироваться. Так устроена его психика, что он просто не испытывает фрустрации, натыкаясь на когнитивную сложность. Соответственно, дискомфорта от неё не имеет и легко переносит тяготы и лишения программистской службы.
Суть шизоидного расстройства — раскол между разумом и телом. Фактически, такие люди своего тела не чувствуют, а так как эмоции, включая фрустрацию, гнев и печаль, — это телесные реакции, то и их он не ощущает. Негативные ощущения в теле банально не мешают его умственной деятельности на ниве программирования.
Парень-раб находится в затяжной депрессии. Он испытывает фрустрацию, но она вызывает не гнев, а печаль. Его тело слабое и дряблое, руки-бамбуки. Мышцы настолько не напряжены, что не доставляют ему никакого дискомфорта. Соответственно, он может сутками напролёт сидеть за компом, совершенно не нуждается в физической активности и легко переносит когнитивную сложность. При этом имеет крайне низкий уровень мотивации. Девушка-стерва необходима ему, потому что только она своим давлением может заставить его делать хоть что-то.
Вот так это и работает. Думаю, если вы имеете отношение к программированию, то и сами навскидку накидаете примеры программистов-чудаков. Обладая способностью терпеть фрустрацию, они относительно без потерь проходят дорогу, обочины которой усеяны костями их более обычных товарищей.
Нечудаки
Значит ли это, что нечудаку не стать программистом, и наши братья, сёстры, внучатые племянники никогда не повторят ваш успех, войдя в мир богатых и знаменитых? Какое-то время я думал именно так. Более того, я стал свидетелем того, как несколько программистов благодаря хорошей жизни и высоким зарплатам решали свои проблемы и теряли свою чудаковатость. После этого когнитивная сложность становилась проблемой и для них, им становилось трудно программировать, и они уходили в различные смежные области. Несколько уехали в более благополучные страны и так там раскисли, что стали ни на что не годны.
Так бы я и жил, роняя яд скепсиса в души начинающих прогеров, если бы ко мне на работу не устроился Саша.
Мой первый знакомый программист-нечудак
Саша работал охранником. Совершенно обычный парень, без какого бы то ни было изюма. Образцовый нечудак. Он был похож на моего брата. И этот человек пришёл устраиваться на программиста PHP. Он банально выучил учебник на своих сменах в торговом центре. Практически наизусть. Но на практике не умел ничего.
Моя организация не могла нанять настоящего программиста по финансовым соображением. Платить собирались тысяч 30 и, естественно, на эту сумму я мог взять только джуна. И то не каждого. Понятно что особого выбора у меня не было. Оценив кандидатов, я позвонил Саше. Весь мой опыт говорил о том, что полноценным программистом он не станет, но он был хотя бы вменяемым, а значит должен был оказаться исполнительным. Делать предстояло сайт, который станет автоматически парсить площадки для тендеров, формируя единую базу данных для наших менеджеров. Я рассчитывал, что будучи адекватным и старательным (как-никак, он всё-таки выучил тот учебник), Саша сможет хотя бы просто выполнять мои указания по части рутинных операций, и мы шаг за шагом закроем эту задачу.
Когда мы начали, мои сомнения только усилились. Саше действительно было трудно. Сталкиваясь с когнитивной сложностью, он проходил через весь спектр негативных эмоций от гнева до отчаяния. Я то и дело слышал его тяжёлые вздохи и матюги под нос. «Да как так-то!» и «Не понимаю!» срывалось с его уст по несколько сотен раз за день. Когда становилось совсем худо, он выходил курить, либо устраивал небольшую разминку прямо посреди офиса. Сидеть неподвижно за компьютером ему было трудно. Как и моему брату, ему необходимо было двигаться. Мы договорились, что каждые полчаса он будет вставать и, к примеру, ходить за чаем, и т.д. Но не чаще, потому что иначе это превратится в способ прокрастинировать.
Проблем добавлял его английский в зачаточной форме, из-за которого он не мог полноценно пользоваться гуглом. Вторая, чисто утилитарная, проблема: печатая, он искал глазами каждую клавишу. И нажимал её одним пальцем. Получалось крайне долго.
Мы договорились, что обращаться ко мне он будет только тогда, если сам трижды не смог найти решение. И это происходило часто. Первое время объяснять ему приходилось буквально всё. К счастью, мы не были особо ограничены дедлайнами, поэтому у него было достаточно времени, чтобы справиться с каждой возникающей проблемой.
Довольно скоро от постоянного смотрения на экран у него начали болеть глаза. Он кое-как дотянул до конца месяца и на первую зарплату купил большой монитор, который решил проблему. Это был тем более отчаянный поступок, потому что я знал, что денег у него нет и питается он одной гречкой, мешок которой был куплен заранее как раз для такого случая.
Стало понятно, что отступать Саша не намерен. А поводы для этого были. Скоро он стал жаловаться на боли в правой руке, которая держит мышь. Что-то вроде тоннельного синдрома. Боль простреливала в плечо, распространяясь на правую сторону тела. Раньше он никогда не проводил столько времени за компом. Пришлось сходить к неврологу и чуть изменить положение руки. Тем не менее полностью боль не ушла, и время от времени я видел, что он перекладывает мышь, чтобы использовать её левой рукой.
Саше было сложно, но я видел, что он полон решимости вырваться из замкнутого круга физической работы, которая кормила его до сих пор. На протяжении трёх месяцев, уходя домой, я оставлял его перед монитором. И каждый мой следующий рабочий день начинался с вопросов о проблемах, которые накопились у него, пока меня не было.
Первое время настроение у него было ни к чёрту, но постепенно я начал замечать, что появляется что-то новое. Это была гордость. Он хвалил себя всё чаще и обращался за моей помощью всё реже. Я по прежнему видел, что иногда он бьётся над какой-нибудь элементарной проблемой по полдня, но решения находил уже полностью самостоятельно. И это происходило всё быстрее.
Пока не наступил день, когда он не обратился ко мне ни разу.
Ту площадку для тендеров мы запустили вовремя. Саша так и работает программистом. Это был первый программист в моём опыте, который пришёл в профессию, совершенно не будучи интеллектуалом и не имея никаких особенностей психики, которые защищали бы его от фрустрации когнитивной сложности. Я думаю, у него получилось потому, что он не имел права на отступление: дома его ждала беременная первенцем жена.
Вывод
Чудаки по умолчанию обладают способностью терпеть фрустрацию от когнитивной сложности. Это позволяет им успешно освоить программирование, если у них когда-нибудь появляется такая мысль. У нечудаков этой способности нет. Поэтому они, как правило, терпят фиаско. Но это не значит, что они не могут её натренировать. Просто они не делают этого.
Ваш знакомый нечудак, проваливший попытку стать прогером, даже не попытался, потому что в его голове есть иллюзия про одарённость, что для того, чтобы стать программистом, надо иметь соответствующий талант. Десятки раз до этого, с самого детства, он пробовал делать трёхмерные модели, вязать макраме, рисовать аниме и играть на губной гармошке. В результате в его голове появился шаблон: если это трудно, если это не получается лучше, чем у других, если скучно, значит таланта нет, надо бросать и идти искать дальше. Такой человек берётся за программирование (да и вообще за что угодно трудное для понимания), натыкается на когнитивную сложность, решает, что не по Хуану сомбреро, и разом сдаётся.
Это выученная беспомощность. Именно она, а не фрустрация сама по себе, словно волшебные ворота, закрывает путь к сокровищам. Это привычка отступать перед болью и трудностями, принимая их за признак своей негодности к выбранной деятельности.
— Знаешь, Лёха, а ведь я всегда считал себя особенным человеком, — сказал мне тот мужчина, когда мы сидели на остановке с купленными мной хот-догами и кофе. — Маме ещё до моего рождения нагадали, что я многого добьюсь, буду большим человеком. Посмотри на меня. Где я и где большой человек?
Мы все в детстве верим в то, что мы особенные, что в нас есть что-то, что принесёт нам силу, славу и богатство, а потом ждём, когда же это что-то проявит себя, ищем свою одарённость, пробуем сотни занятий, меняем увлечения и пробуем, пробуем, пробуем в поисках спрятанного в нас Грааля.
И чаще всего ничего не находим. Вот тебе 35 и ты — ничего особенного. А то и ещё хуже — у тебя нет ног.
Пифия говорит Нео: «Я видела много избранных. И ты точно не один из них».
Робот-офицер полиции Кей из «Бегущего по лезвию» вдруг узнаёт, что его воспоминания — фальшивка. Никакой он не первый рождённый андроид. Он обычная заводская штамповка.
Аста проигрывает первый бой. Ему никогда не стать Королём Магов.
Безногий мужчина после двух недель попыток сдаётся и относит в ломбард мой старенький ноутбук.
Даже если это произошло, у тебя ещё есть выход. Всё может резко измениться, если ты научишься делать что-то полезное за хорошие деньги. Не обязательно именно программировать. Но для этого нужно понять главное:
Себя особенного невозможно найти, себя особенного можно только создать.
Выбери сложное, трудное дело, развернись навстречу когнитивной сложности и шагни сквозь неё. Нечудаку никогда не найти в себе таланта к программированию. Такого таланта не существует. Программиста из себя он должен сделать сам. Сжать зубы и стараться изо всех возможных сил, игнорируя отрицательную обратную связь, которую всегда получают от программирования нечудаки.
Будет колотить от гнева, станут опускаться руки, накатит отчаяние. Силы будут уходить, ты станешь ошибаться и начнёшь чувствовать себя ничтожеством. Тело будет болеть, глаза слезиться, волосы выпадать, окружающие станут говорить тебе про отсутствие таланта и прочую чушь, иногда тебе будет смертельно скучно, но если ты будешь настойчив, то в какой то момент всё это перестанет быть проблемой.
Это и есть Путь Героя.