Как стать автором
Обновить

Клуб анонимных программистов, или почему только псих может стать настоящим программистом

Время на прочтение8 мин
Количество просмотров60K
Конечно, вместо того, чтобы тратить время на написание этого поста, я мог бы изучать программирование. Но здесь ведь собрались не ботаны-зануды, чтоб на ночь глядя заниматься всякой компьютерной чепухой, верно? Намного интереснее разобраться — почему одни люди «рождены» быть программистами, а другие страдают и плачут по ночам, но у них мало что выходит. Сначала давайте разберемся в том, кто же такой программист.

Возьмем средний портрет программиста: невзрачный, щуплый, нелюдимый ботан-очкарик, который дни напролет проводит выжигая кодом глаза. Если бы 100-200 лет назад быть таким — шанс выживания был бы невысок. В те времена (во все времена) интеллект был важен, но и другие качества были не менее важны для выживания: сила, ловкость, общительность, умение наладить контакты, поддерживать отношения, завладеть самкой.

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

Сейчас же случилось невероятное. Чудаковатые, нелюдимые, занудные и скушные, но мозговитые ботаны научились с помощью программирования монетизировать свои мозги. Причем, даже лучше, чем врачи, или юристы, у которых мозги шурупают не хуже, а то и лучше. Программисты купаются в лучах славы, как когда-то это делали шахтеры при СССР. Программисты стали негласной элитой общества, как единственная альтернатива бандитизму или предпринимательству, которая позволяет хорошо жить, не нарушая закон и не рискуя жизнью. Двадцатый век удивил мир всеобщей феминизацией и женской эмансипацией. Двадцать первый век же удивил всех тем, что занудные аутсайдеры наконец получили шанс отыграться за столетия унижений и сжиганий на кострах (пожалуй, их сжигали за занудство). Настроения восставших из пепла цивилизации ботанов очень хорошо передают подобные видеоролики:



Суть такова: зануды-программисты бесятся с жиру и счастья, что им нравится их работа и хотят похвастаться этим на весь мир, поэтому снимают музыкальные видео. Мол, мы, программисты, могём не только код, но и музыку, и видео штамповать. И, мол, вообще нет для нас преград, эдаких баловней судьбы. Интересно, почему врачи, которые учатся по 10 лет, и обладают намного большими знаниями и практической пользой для человечества, не так кичатся своей работой?

Выше я говорил о том, что программисты в целом занудны, нелюдимы, необщительны. Но я совсем забыл сказать, что они также часто высокомерны и даже пафосны (как блондинка гордится своей грудью, так программист гордится своими мозгами). Все это выливается в ботан-стайл-юмор, когда в шутках используется программерская терминология. Самый худший пример такого юмора: «Эй ты, сейчас я тебя быстро зарефакторю, а будешь вы**бываться — еще и патчи поставлю». И это типа смешно. Этот юмор доступен только «избранным», которые знают, что такое рефакторинг и патчи. Высшая каста!

Также, среди программистов распространены случаи расизма (aka IT-racism). Тестировщики, почему-то, для программистов считаются людьми низшего сорта, даже если сами эти программисты в свое время начинали тестировщиками. К тестировщику-автоматизатору будет, конечно, чуть более благосклонное отношение, но, по сути, у него на всю жизнь будет клеймо «тестера», пока он каким-то чудом не выберется в высшую касту, или не уйдет из IT. Отношения программист-тестировщик — это в лучшем случае отношения рыцарь-оруженосец. Время от времени очередной программист горделиво вспомнит о том, что эта работа (программирование) для избранных (и он будет прав), потому что в ней требуется высокий уровень абстрактного мышления. Разумеется, программисты очень умные, поэтому у них якобы больше прав вести кухонные дебаты о том, как правильно управлять государством. Так что в споре программист VS уборщица по дефолту побеждает сами знаете кто.

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

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

Горе от тупости: работа программиста требует быть в меру тупым.
Такие диалоги — не редкость:
— Слушай, а почему у нас компонент так странно отрабатывает?
— Какой компонент?
— Ну этот, который репортит ошибки.
— Что значит странно отрабатывает?
— Ну ошибки через раз кидает.
— Какие ошибки?
— Не знаю, ещё не смотрел.
— Почему не смотрел? Надо посмотреть.
— Окей.
— А с чего ты взял, что он неправильно отрабатывает?
— Ну он через раз ошибки кидает.
— А ты спецификацию смотрел?
— Да.
— Где там написано, что компонент не может/не должен через раз кидать ошибки?

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

Сама суть программирования заключается в том, что ты должен оперировать сущностями, которых не видишь. Ты должен представлять, как оно всё работает и взаимодействует. Ты угадываешь и предсказываешь, основываясь на известных тебе данных, стараешься на все 100%, но всегда будет какая-нибудь мелочь. Мелочь — точка с запятой, лишний пробел, что угодно — и вся система будет поломана.

А теперь представьте себе Мерседес, который бы не завелся от отсутствия одного винтика. Малореально, да? А вот в программировании такие ситуации каждый день.
О том, что сегодня программист, кроме самого языка программирования, должен знать и разбираться в нескольких фреймворках, в базах данных, протоколах, в разных технологиях и представлять себе, как оно все работает и взаимодействует вместе — я даже и говорить не буду. Это будет большим сюрпризом для тех, кто в универе изучает bubble sorting, тогда как на деле он его ни разу в жизни не использует. Зато будет цениться умение быстро разобраться в очередном фреймворке. Кстати о тулзах и фреймворках — они, как и всё в этом мире, живут и развиваются, поэтому часто бывает так, что освоенный фреймворк через год-два полностью теряет актуальность, потому как в новой версии кардинально другой подход. Но тебя ведь хлебом не корми, дай поюзать новую версию любимой тулзы, верно?

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

Внимание к мелочам, друг! Вглядывайся в логи внимательно, дебажь с душой. Неважно, насколько ты хороший человек, или сколько раз ты можешь подтянуться — если ты пропустил какую-то мелочь, вся система завалится. Боль. Приготовься к тому, что в 99% случаев ничего не будет работать.

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

Хорошо, когда ты таким психом родился. Когда ты с детства аутсайдер с мозгами, когда тебе сам Бог велел идти в программисты, потому что там твои навыки изгоя-ботана, наряду с чугунной пятой точкой, пригодятся будь здоров. Сверстники будут играть в футбол и тискать девочек во дворах, а ты им отомстишь тем, что через 10 лет будешь программистом. Но, правда, будешь мстить так всю жизнь, в робких попытках доказать, что ты тоже умеешь жить (как это делали ребята из Ciklum'а). Только посмотрите на этих упитанных нахалов, «бомбочкой» прыгающих в бассейн (1:38):



Что в этой тушке такого великолепного, друзья? Мозги и ПГМ (Программизм Головного Мозга). Они кичатся своей болезнью, как редкий шахтер кичится угольной пылью у себя в легких (есть и такие люди).

Справедливости ради, должен сказать, что в США программисты хоть и жируют, но не настолько сильно, как у нас. У нас в Украине программисты — это высшая каста всего лишь по той причине, что заморским чертям охота делать программы с помощью наших хлопцев (аутстаффинг, то бишь). Если бы заморские черти решили, что им могут пригодиться наши врачи, я вас уверяю, блатными были бы и врачи. И все остальные баловни судьбы, которые бы выехали на разнице зарплат в США и Украине. Ясен пень, в США нету такого запредельно-кромешного разрыва между грузчиком Джоном и программистом Биллом, поэтому там и программисты не настолько борзые.

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

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

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

Главный вопрос, который стоит задать себе нормальному человеку, который решил стать программистом, звучит примерно так: «Готов ли ты сознательно стать психом?»; и второй вопрос: «Готов ли ты измениться и стать более занудным и менее эмоциональным?». Потому что проверено не только на себе, но и на своих друзьях-программистах: чем больше человек занимается программированием, тем больше он становится задротом и занудой. То, что мы делаем — меняет нас. Об этом нужно помнить.

А я, тем временем, продолжу свой путь, проглатывая горькие и занудные книги по программированию, в слепой надежде, что мне удастся сохранить себя и стать таки настоящим программистом. И я не один — нас много. Люди, которых жизнь заставила быть программистами, или попросту программисты поневоле. У нас даже есть свой «Клуб анонимных программистов», где мы изливаем душу, как изливают её друг другу члены «Клуба анонимных алкоголиков».

Итого: чтобы стать настоящим программистом, нужно стать оптимистичным психом.

P.S. Да, я знаю, что «ты сначала добейся, а потом критикуй.
P.S.2 Да, я знаю, что есть также и веселые программисты, программисты альфа-самцы, душки компании.
P.S.3 Да, я знаю, что есть программисты-качки.
P.S.4 О себе рассказать не могу, потому как мои коллеги читают Хабр, а я хочу быть инкогнито.
Теги:
Хабы:
Всего голосов 108: ↑43 и ↓65-22
Комментарии138

Публикации

Истории

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
19 сентября
CDI Conf 2024
Москва