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

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

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

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

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

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

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

Причудливое поведение - сидение перед компьютером 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 симптомов этого списка - достаточно убедительно. Теперь я жду первой галлюцинации в любое время - это должно быть любопытно.

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

1. Какую компьютерную игру ты любишь?

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

2. Вы пишите руководства?

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

3. Попробуйте перезагрузить!

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

4. Повторение

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

5. Сделайте, чтобы это выглядело так же, как...

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

6. Ранний подъем

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

7. Когда проект будет готов?

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

8. Рассмотрение написанного вами кода чуть позже

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

В заключении

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

Программист Питер Уэлш, автор книги «И тогда я подумал, что я рыба» и блога 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-арта».

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

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

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

Привет, друзья! В жизни каждого IT-шника должен быть фриланс. Это самый яркий период в жизни специалиста, в это время он познает себя и становится мастером, но это не точно.

Фрилансер – это специалист без определенного места работы (БОМР), который одновременно выполняет заказы от разных клиентов.

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

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

Знакомьтесь:

Кирилл – типичный программист-фрилансер.

Кирилл многое знает в программировании, а также многое и не знает.

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

Но вопрос «больше кого?» так и остался открытым.

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

Геннадий – он тоже фрилансер-программист.

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

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

Уровень заработка Геннадия примерно равен 3 средних зарплаты по региону.

Разовая фриланс работа для программиста

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

Почему же так произошло? Кирилл допускает стратегические ошибки в своей работе программиста-фрилансера:

  • Самая главная ошибка Кирилла – быть фрилансером и работать удаленно, потому что глубины знаний Кирилла хватит еле-еле прикрыть щиколотку. Настоящий гуру-программист-фрилансер ходит в свитере с длинным воротом так, что у него еле-еле торчат уши, лысина и нос, как у Геннадия. Все остальные ошибки Кирилла вытекают из первой.
  • Вторая ошибка Кирилла – это разовая работа. Кириллу легче быстро слить проект, чем получать клиента на всю жизнь. Почему так происходит? Чтобы иметь длинных клиентов – нужно производить качественный продукт, который у Кирилла отсутствует. Что не скажешь про Геннадия. У него 20% клиентов приносят 80% его прибыли 80% непостоянных клиентов приносят 20% прибыли.
  • Третья ошибка Кирилла – отсутствие постоянных клиентов. Я специально выделил эту ошибку как отдельную потому что иметь постоянных клиентов и выполнять разовые работы – это разные вещи. У Геннадия часть клиентов является постоянными заказчиками разовых работ, что не скажешь о Кирилле, у которого 80% новые заказчики с разовыми работами.
  • Четвертая ошибка Кирилла — брать заказы, не читая ТЗ до конца. Это классика разовых работ для программистов и не только, которая породила армию Кириллов.

С чего начать программисту на фрилансе

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

Чтобы уйти во фриланс программисту нужно перерасти офис, что и сделал Геннадий. Кирилл решил, что офис – это ненужная ступень развития и сразу после института остался на уделенной работе.

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

  • Сосредоточенность в шумном коллективе;
  • Общение с коллегами;
  • Работа в команде;
  • Контроль со стороны начальства и прочие.

Геннадий в этом деле собаку съел, в один момент ему стала скучна офисная работа, задачи, которые перед ним ставились, и он ушел.

Подводя итог, я считаю, что

Для того чтобы начать работать на фрилансе нужно сначала перерасти офисную работу.

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

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

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

Поиск вариантов для заработка на фрилансе у программиста много:

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

Доход программиста на фрилансе

Фрилансер Геннадий зарабатывает в несколько раз больше Кирилла. Но доход обоих ограничен только уровнем знаний и умением продавать их.

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

Геннадий считает стоимость часа своей работы.

Стоимость часа работы – это важный показатель дохода, важнее, чем общий доход фрилансера.

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

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

Стагнация для фрилансера – программиста недопустима.

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

5 стадий заработка фрилансера

  • в начале своей карьеры работать очень много и получать очень мало;
  • спустя какое-то время работать очень много и получать просто мало;
  • спустя еще время работать очень много и получать нормально;
  • спустя еще время работать очень много и получать много;
  • Начиная с этого этапа фрилансер будет думать, как ему работать меньше, а получать столько же много, как и раньше. Это уже сформировавшийся профессионал, который ценит свое время.

Наш Геннадий работает на пятой стадии и даже перерос ее, а вот Кирилл находится лишь на 3 стадии своего развития.

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

The Devochki

Это статья в основном для девушек не из IT, поэтому я максимально упростила все аббревиатуры и определения. Вам и так сложно придется.

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

В этом тексте IT-специалистов я буду называть айтишниками, потому что долго писать: программист, DevOps, QA, системный администратор, РМ и т.д. Хотя ниже все-таки сделаю разбивку по должностям, как сказали бы эйчары.

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

Общество делит людей на две категории: айтишники и нормальные люди.

Когда я начинала работать рекрутером в IT, большинство моих знакомых крутило пальцем у виска и спрашивало: «Как ты с ними работаешь? Они ж капец странные». У меня этого ощущения никогда не было. Сколько себя помню, еще работая в других областях, я всегда дружила с админами. Завораживало в их кабинетах чувство, что происходит что-то непонятное под мирное гудение сервера. Меня манила их загадочность, а их – мой интерес и восхищение.

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

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

Почему?


Айтишники умные . Таких умных людей я не встречала ни в какой другой индустрии.

Они разносторонние . У большинства из них – широкий круг интересов и с ними всегда есть о чем поговорить на разные темы.

У них классное чувство юмора – тут редко встретишь «Петросяна».

Они следят за собой. Это вранье, что айтишники немытые и в растянутых свитерах. За 7 лет работы с ними я видела может парочку таких и это были не фронтенды.

Занимаются спортом и обожают велосипеды, а еще фотографировать хорошей техникой.

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

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

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

Личный опыт

Я знаю сотни айтишников, но опыт у меня в основном платонический – сапожник без сапог. У меня было 3 айтишника: Java-программист, РМ и QA. Расскажу о последнем.

Если QA занимается с вами сексом, значит, вы хороши в постели, у вас нет багов, а если и есть, то это – не баг, это – фича. Но днем, Боже мой, днем я бы его убила. Идем мы, например, в магазин. Я что-то выбираю, а он по ходу все критикует: «Это не бери, это дорого. Зачем тебе вообще надо?» или в ресторане: «Ну и цены. Не, ну ты, солнышко, бери, что хочешь, я просто фигею от цен». При этом человек замечательный, не жадный, просто QA.

У QA системность доходит до того, что спонтанность выглядит так: «Дорогая, давай займемся сексом в четверг в девять вечера». Конечно, круто знать, что в четверг в девять вечера у меня точно будет секс, но как-то хочется и сюрпризов. Но не тут-то было. Как-то утром мы долго валялись, болтали и вдруг поняли, что надо собираться, а то опоздаем на встречи. Собрались быстрее – осталось 15 минут до приезда такси. «Давай по-быстрячку», – предложила я, так как желание секса у меня возникает спонтанно, а не по расписанию. «Нет, – сказал он. – Уже такси едет, я так не могу».

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

На одном опыте встречаний нельзя построить статистику, но я замечала подобное в отношениях знакомых барышень и наблюдая за QA в натуральной среде. В общем, если вы хотите стабильности и уверенности в завтрашнем дне, а также продуктов по ГОСТ – QA и Белоруссия ваш вариант.

Классификация

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

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

DevOps – продвинутые админы. Не только собирают компы, но и пишут код. Умны, разговорчивы и отлично зарабатывают. Как, собственно, все айтишники. Зато у девопсов и программистов самые высокие зарплаты.

РМ (проджект менеджер) – основной инструмент – язык. Красиво говорят, много делегируют. Хорошие специалисты встречаются не часто.

QA – системны, бывают крайне занудны. Подходят, если вы любите предсказуемые отношения и точно знаете, кем видите себя через 5 лет.

Java developer – востребованные на постоянной основе уже 7 лет. Самооценка соответствующая.

Javascript developer – метро-ламберсексуалы IT-рынка. Хороши собой, оно и понятно, фронтенд товар лицом. Cледят за собой, любят потрындеть, при первой встрече обычно более приветливы, чем бекендщики.

Full stack (фронтенд и бекенд) – вдвойне уверенные в себе пацаны, ибо знание фронтенд и бекенд не располагают к скромности.

Web designer – обычно ну очень хороши собой, стильны, умны, с отличным чувством вкуса.

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

С#, PHP – не замечала особенностей, нормальные такие парни.

Ruby – внешне хороши как фронтенды, разносторонни и вообще бубочки.

Python – красавчеги. Просто люблю. А уж Python+JS – я ваша навеки.

Erlang, Lisp – очень умные парни. Хорошие семьянины, разносторонни и добры.

Perl, Delphi – консервативны, так как языки достаточно устаревшие и используются только для поддержки очень давно существующих систем.

Assembler – если вы любите дедушек погорячее.

Мнение айтишников о себе

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

Айтишники в отместку свою книгу напишут «Как не пасть жертвой женщины рекрутера». Краткое содержание: Секс после оффера – реален ли он? Стоит ли звонить ей, если после интервью она молчит. Как притворится фронтендом, если ты джавист. Трусы Calvin Klein – влияют ли они на оффер. Клофелин в пиве: мифы и реальность рекрутинга.

Мнения жен и девушек айтишников

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

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

Я в универе боялась компьютерной техники. А когда “случайно” вышла замуж за айтишника, поняла, что это милейшие и добрейшие люди на самом деле! Вот дети айтишников… Старшенькая в 10 лет все время что-то паяет, а младшенькая – в 7 за деньги винду переустанавливает. А грязи от них! Чисто только когда из дома выгоню, уберу и не запускаю!

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

Мой айтишник похож на кота – вовремя кормить, гладить и не отбирать мышку.

Судя по моему опыту жизни с программистом – это, во-первых, нифига не скучно (и всегда интересно, и никогда не соскучишься, потому что идей куча в этих головах). Во-вторых, они, как правило, очень толковые отцы (ну среди тех, кого я знаю, здравый смысл и навык выстраивания логичной системы побеждали все остальное) и дети получаются очень пристойные, с чувством юмора и ярко выраженными характерами. В-третьих, где бы ты с программистом не жил физически, ты все равно живешь в глобализованном большом мире, а не в своем мухосранске (да, это делают люди и других профессий, но с ИТ-шниками это так же естественно, как дышать). Конечно, надо быть готовой к тому, что на вопрос “как дела?”, ты услышишь кучу спец.терминологии и классно, если ты hr из той же области, тогда хотя бы половина слов понятна.

На счет чистоты в доме – он всегда брался за швабру, если я была уставшая с детьми, а в его проводочках и инструментах всегда идеальный порядок. Много компов на квадратный метр, но это меня не напрягает. Постоянно учится, что меня стимулирует тоже. На кухне редко его встретишь, но тут мы гармонично поделили обязанности. С детьми занимается очень много (лего, шахматы, электричество, физические и химические опыты, список очень длинный). А вот путешествовать не любит. Ужасный домосед. Интроверт (что часто встречается среди этой братии). Во всех недостатках можно найти положительные моменты. Ненавидит ссоры. Научил меня решать конфликты без ссор.

Спасибо тебе Боже и Роме Хмилю, что я попала к этим замечательным людям.