Почему программисты странные. Кто такой удаленный программист и как зарабатывает. Тьма будет всегда


Перевод: Зверёк Харьковский)

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

Шизофрения - психотическое расстройство, характеризующееся ухудшением восприятия окружающей действительности и значительной социальной дисфункцией. (Википедия)

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

Симптомы шизофрении

Пренебрежение личной гигиеной - проверьте.

Депрессия - нет, у меня ее нету. Но если я прочитаю весь список и обнаружу что у меня шизофрения, наверное, появится.

Причудливое поведение - сидение перед компьютером 15 часов в день считается причудливым поведением? Стопудово!

Иррациональные утверждения - "ActiveX объекты IE XMLHTTP или XMLHTTPRequest (W3C Standard) могут использоваться для AJAX-программирования". Это утверждение не кажется мне иррациональным - но шизофреники редко считают иррациональными собственные утверждения.

Постоянный сон или неспособность спать - проверьте.

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

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

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

Ухудшение общественных отношений - какая часть слова "программист" вам непонятна?

Гиперактивность или неактивность или переключение между ними - бешенное кодирование / ожидание во время компиляции. Что еще сказать?

Неспособность сконцентрироваться или справляться с мелкими проблемами - отлично, первый симптом, который к нам не относится.

Сильное увлечение религией или оккультизмом - чтобы вы ни думали, Ruby (on Rails) - действительно религия.

Регулярное писание безо всякого смысла - а вы думали, что такое программирование?

Безразличие - когда я за компьютером, мне действительно пофиг все остальное.

Выпадение из общих занятий или вообще из жизни - бывало, бывало.

Падение интереса к образованию и спорту - ненавижу изучать что-либо кроме компьютера.

Забывание - главная причина моей любви к компьютеру - то что я могу использовать его для хранения информации, а не хранить ее всю в голове.

Потеря собственности - я редко что-нибудь теряю, все мои файлы проиндексированы, и находятся на расстоянии одной команды locate. Или одного поиска в Beagle. Что значит "собственность вне компьютера"?

Неадекватная реакция на критику - когда нибудь присутствовали на сеансе code review? "Как ты посмел назвать мой код неэлегантным?! Умри, несчастный!"

Неспособность выражать радость - я неспособен выражать радость, когда модульные тесты падают. И когда работаю с IE .

Неспособность плакать, или постоянный рев - постоянный рев, плач и ругательства - еще один симптом работы с IE

Неуместный смех - слышали гиковские шутки? Да это постоянный "неуместный смех". К примеру, "Монти Пайтон в поисках Святого Грааля".

Необычайная чувствительность к раздражителям (шум, свет, цвета, текстуры) - если вы дизайнер.

Попытки сбежать, постоянные переезды или путешествия автостопом - попытки сбежать через Интернет.

Злоупотребление наркотиками и алкоголем - кофе считается?

Ослабление - я не слабею, когда программирую - только когда читаю The Daily WTF.

Странные позы - у программистов всего одна поза: L с изгибом внизу - решайте сами, плохо это или хорошо.

Отказ прикасаться к людям или предметам, ношение перчаток и т.п. - если ты программист, другие люди отказываются прикасаться к тебе. Возможно, это объясняется тем, что ты три дня не мылся?

Бритье головы или тела - без комментариев.

Нападение на людей или угрозы покалечить себя - я угрожал покалечить мой компьютер - топором. Правда, тогда я исползовал Windows.

Взгляд не моргая или постоянное моргание - да ладно, это просто.

Неподвижный взгляд как у рептилии - да, и это тоже. Попробуй-ка посмотреть в монитор 15 часов в день.

Непреодолимое упрямство - "VI - лучший редактор, и ничто меня не переубедит".

Чувствительность и раздражительность от чужих прикосновений - Что?! Обычные люди не раздражаются от чужих прикосновений? Вот это новость.

Специфичное использование слов и странных речевых структур - вы слышали диалоги программистов? Теперь говорят "для меня это все - как язык гиков". Ну, раньше говорили "как язык греков" - но это уже устарело. Теперь говорят "язык гиков".

Да, у меня определенно шизофрения. У меня 34 из 35 симптомов этого списка - достаточно убедительно. Теперь я жду первой галлюцинации в любое время - это должно быть любопытно.

Профессиональный праздник тех, кто зарабатывает на жизнь написанием программ для компьютеров. Официально этот праздник был утвержден в России только в 2009 году. Однако во всем мире День программиста отмечают уже давно. Празднуется он 13 сентября, а если год високосный - то 12 сентября. 256 (два в восьмой степени) день был выбран потому, что это количество целых чисел, которое можно выразить с помощью восьмиразрядного байта.

Несмотря на то, что этот праздник появился относительно недавно, профессия программиста, как ни странно, гораздо старше. А убежденные в том, что программист - это исключительно мужская профессия, вынуждены столкнуться с еще одним противоречием. Дело в том, что именно женщина считается первым в истории человеком с такой профессией. Ее имя Ада Августа Байрон Кинг, графиня Лавлейс. В первой половине XIX века дочка великого английского поэта Джорджа Байрона написала первую в мире программу для аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости. Правда, ни одна из написанных Адой Лавлейс программ так и не была никогда запущена. Но среди программистов имя ее увековечено - универсальный язык программирования называется "Ада".

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

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

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

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

Программист Питер Уэлш, автор книги «И тогда я подумал, что я рыба» и блога Still Drinking (все также пью) считает, что программирование — отстой, а все без исключения его коллеги — психи, которые по ночам ловят кислотные приходы вместо того, чтобы видеть сны. Нет, они не виноваты — это программирование сделало их такими. Как именно написание кодов день ото дня неминуемо сводит человека с ума, Уэлш рассказал в своей циничной колонке , перевод которой публикует .

Каждый мой друг, который по работе вынужден поднимать что-то тяжелее ноутбука чаще чем два раза в неделю, так или иначе находит способ ввернуть в диалог фразу: «Бро, ты не напрягаешься на работе. Я вот отработал 4700-часовую неделю, копая отверткой тоннель до Мордора». В этом есть смысл: Мордор отстой, и физически копать тоннель, конечно же, тяжелее, чем барабанить по клавишам (если только вы не муравей — им тоннели даются лучше). Но, дискуссии ради, давайте сойдемся на том, что стресс и психические расстройства — это плохо. Сошлись? Вот и славно. Добро пожаловать в программирование.

Все команды программистов состоят из психов

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

Фред работает только с деревом, и вы спрашиваете, почему он в проекте, ведь мост над бурлящей рекой должен выдерживать огромные нагрузки в часы пик, а люди, которые будут стоять на нем в пробках, едва ли переживут крушение с высоты 200 футов. «Не волнуйся, — говорит Мэри, — Фред занимается пешеходными дорожками». Какими дорожками? «Ну, Фред сделал хороший кейс по дорожкам, и они украсят мост». Конечно, дорожки они будут строить без перил, потому что Фил, который даже не инженер, ввел строгое правило — никаких перил.

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

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

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

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

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

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

Все коды — плохие

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

Это Хороший Код. В нем названия функций и переменных логичны и последовательны. Он лаконичный. Он не делает ничего очевидно глупого. Ему никогда не приходилось жить в дикой природе и отвечать перед командой из отдела продаж. Он выполняет всего одну мирскую специфическую задачу, и выполняет ее хорошо. Его написал один человек, и никто другой к нему не прикасался. Он читается, как поэма, написанная человеком старше 30 лет.

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

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

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

Тьма будет всегда

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

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

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

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

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

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

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

Огромное количество работы сделано в интернете, но интернет — это тоже ад

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

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

Вы не можете перезапустить интернет. Триллионы долларов зависят от хрупкой паутины неофициальных соглашений и кодов из разряда «и так сойдет» с комментариями типа «TODO: исправить это очень опасная уязвимость но я не понимаю в чем ошибка», которые были написаны много лет назад. Я даже не упоминал легионы людей, которые взламывают разные части интернета ради денег или потому что им скучно. Слышали когда-нибудь про 4chan? 4chan могут разрушить вашу жизнь и бизнес, потому что этим вечером им показалось, что вы им не нравитесь, и мы даже не беспокоимся о 4chan, потому что еще одна ядерная бомба не делает погоды во время ядерной зимы.

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

Секретные законы интернета таковы: через пять минут после того, как вы впервые открыли веб-браузер, ребенок из России узнает номер вашего страхового полиса. Вы на что-то подписались? Теперь компьютер в АНБ автоматически узнает ваше местоположение до конца вашей жизни. Отправили email? Ваш адрес только что попал на доску объявлений в Нигерии.

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

Мы не были психами от рождения — мы такими стали

ОШИБКА: Попытка разобрать HTML с помощью простых выражений; Система вернула Ктулху.

Смешно? Нет? А как насчет такого диалога?

— Это называется arrayReverse?

— s/camel/_/

— Круто спасибо.

Так этот парень помог? Который верблюд (в оригинале camel)? Звучит как осмысленный ответ? Нет? Хорошо. Вы все еще можете найти Иисуса в себе. Значит, вы еще не успели провести так много часов своей жизни за чтением кода, что начинаете на нем говорить. Человеческий мозг не очень-то хорош для восприятия базовой логики, а тут вся карьера зависит ни от чего иного, как от очень-очень и очень сложной логики.

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

Деструктивное влияние на мозг демонстрируется языками программирования, которые пишут люди. Это программа:

#include int main(int argc, char** argv) { std::cout return 0; }

Эта программа делает в точности то же самое, что и предыдущая:

`r```````````.H.e.l.l.o. .w.o.r.l.di

>+++++++++[<++++++++>-]+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] +++++++++++[<++++++++>-]<-.----.+++ .---.----.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.

А еще однажды кто-то создал язык программирования, с помощью которого человек может написать это:

#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :|| open(Q,$0);while("){if(/^#(.*)$/){for(split("-",$1)){$q=0;for(split){s/| /:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"n"; #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:| "

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

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

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

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

Не то, что бы меня не интересовали девушки, просто программирование меня интересовало чуть больше, да и оно было, как мне казалось тогда, доступнее. Девушки отнимали времени много, а разум радовали мало. Было это в студенческие времена. И думаю, если бы не гормоны кишащие в организме, то разум взял бы верх над телом и вовсе забросил это дело. Но я нашел (вернее меня нашли), и за это благодарен.

А программировать я начал давно . В классе 7м. Тогда я скорее не программировать стал, а игрушки ломать. Мне всегда было интересно как оно работает, как вот эти непонятные циферки-буковки 35 7D 56 BB EA A5 4C AB - могут превращаться в увлекательную игру. Вот и стал ковырять. Там поменял. Тут поменял. Потом нашел доки, понял больше.

Вообще если сравнивать виртуальный мир и мир действительности, то там все немного иначе. Это и манит.

С компьютерами обратная связь быстрее, чем в мире действительности. Появилась идея - тут же ее можно опробовать. Тут же получить ответ, тут же пересмотреть. Действительность немного более инертна. И не всегда можно дебаггером походить по коду. С компьютерами ты в другом мире, в мире виртуальном, в котором другие правила, знакомые только тебе (ну или как минимум не многим). Я никогда не забуду те ночные изучения последовательности 16-ричных чисел, в реузльтате осознание и возможность делать что-то, чего раньше не умел. Там все четко - либо 0 либо 1. Либо знаешь, либо не знаешь. Там вероятности нет места. Не знаешь - копай еще.

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

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

Вот сейчас, сосредоточенно пишу этот пост и тут подбегает ко мне доча и что-то говорит. Так как я реакции ноль, то она начинает это повторять. Услышал что она повторяет раз так на 15й - "а где папа?" "а где папа?"... И в правду, где папа? У программистов это называется состоянием потока - кристально чистой сосредоточенности над работой. В это время для проггера ничего не существует, ни его самого ни проблем вокруг ни забот. Только виртуальный мир, мир в котором царят единички и нолики. Выбить из этого состояния проггера легко, а потому ночь - более ценное время.

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

Потребностей у проггеров в мире действительности не много. Если взять как пример особенно яркие мои кодинг-запои, то там только поесть, поспать, туалет и все. Даже анекдот есть на эту тему из жизни:

Девушка – другу:
- Вы все, программисты, странные!
- Почему это?!
- Мой парень, программист, радуется. Ему мусорное ведро купили в комнату, около компа!
- Я тоже ведро мусорное около компа хочу…
Все остальное, я получал из монитора. Меня раз спросила сестра моя, на что я так долго могу смотреть в монитор? Ладно бы там книга или журнал какой. Так нет же, какие-то непонятные слова, причем одни и те же. Нет. Это в коре неправильно. Компьютер ничего не может дать того, что бы так надолго удержало возле себя. Он пустой. Он только резонатор. Все остальное делает мой мозг. В нем происходит все интересное. В нем рождаются и умирают вселенные. В нем выдвигаются гипотезы, строятся и рушатся теории. В нем моделируется новый мир. А компьютер - всего лишь резонатор. Вот даже сейчас я пишу текст но вижу не буквы на мониторе, а вижу картинки из своего прошлого опыта, вижу что-то новое. Если посмотреть со стороны, то кажется глупым смотреть 10 страниц текста кода весь день. Но если посмотреть на то, что происходит в сознании проггера, то это..... у меня нет слов. Только программист поймет программиста. Или любой другой человек, знающий о состоянии потока, когда нет ничего кроме дела, которое делаешь.

В сети есть много статей о том, какие странные программисты. Достаточно погуглить словосочетание