Я тот самый нелюбимый быдлокодерами программист, который пишет не «2 + 2», а интерпретатор формул (благо опыт позволяет это сделать быстрее, чем некоторые кодеры напишут и отладят свой «2 + 2»). Не пишу хардкодом параметр, который «никогда-никогда не будет меняться», а сделаю настройку. Могу вместо костыля плюнуть, потратить пару часов, но переписать так, чтобы не требовалось постоянно латать.
В конце проекта вы, быдлокодеры, быстро расставляете костыли, затыкаете дыры и заливаете код в репозиторий, уверенные в своей гениальности. А потом прихожу я и делаю так, чтобы работало не только на вашем сферическом компьютере в вакууме, а на любом, удовлетворяющем заявленным системным требованиям.
Так что потом не удивляйтесь, что за хардкод путей (который запрещён), ориентацию на единственный браузер или билд DX, влезание со своими именами, повторяющими чужие в системах с глобальной видимостью объектов, наплевав на установленные правила именования, вам настучали по голове и лишили части премии.
Ещё одна особенность быдлокодеров: сделать костыль не самым простым и надёжным способом, а наиболее извращённым. Работает, естественно, лишь в некоторых случаях (которые и были протестированы), а дальше пусть тестеры разбираются. Найдут — поставим ещё костылей.
Но самое страшное — более одного быдлокодера, которые расставляют костыли в одном проекте. Тогда эти заплатки начинают драться между собой. Один затыкает дырку, заливает — рушится что-то в другом месте. Затыкает там — рушится тут или ещё где. В итоге костылей становится столько, что многоножку-инвалида легче, быстрее и дешевле пристрелить и переписать всё нормально, чем лечить.
Почему я не делаю всё сам? Физически не хватит времени писать несколько проектов, поэтому я занимаюсь наиболее приоритетными и воскрешаю смертельно больных. Опыт позволяет минут за двадцать найти и исправить баг, который до того искали полдня. Набирать код со сверхскоростью недостаточно — когда-то надо ещё и думать.
В ночь с пятницы на субботу доломал последнего мыша. В магазин идти по такому морозу было лень, а без дела сидеть скучно.
Я играю в тупую игрушку «Мегаполис» — в принципе, только и нужно, что кликать в определённое время в определённые точки. Вспоминаю старый добрый Делфи — и через восемь часов попивания пива готова программка.
На каждую кнопку клавиатуры забиты координаты нужных строений. На дополнительной клаве — движения мышки для действий: кликнуть, продать, купить. Ещё часа четыре отладки — и курсор из виндовых приложений для людей с ограниченными возможностями выползает на работу.
Пару часиков наслаждаюсь игрой. Пора готовиться к рабочему дню: погладить рубашку, нарезать бутербродов. Не выключив машинку, убегаю.
Рабочий день пролетает незаметно. Радостно бегу домой с новой мышой. За компом сидит кот, ловит бегающие по экрану картинки из игрушки, параллельно задними лапами и пятой точкой опоры продаёт чуть ли не последнее строение. Денег на счету почти нет — строения покупались и продавались много-много раз. Довольный кот в очередной раз убегает от веника.
Админ игры, если ты это сейчас читаешь — сделай, пожалуйста, откат на вечер воскресенья!
Начинающие курильщики постоянно скрывают от родителей своё пристрастие — как будто те не догадываются.
В 1996 году попал мой знакомый в больницу. Курить хочется, денег нет. Передаёт он, значит, другу через маму вот такую программу:
label Vokzal, Bolnitsa;
begin goto Vokzal; Buy("pr.lux", blue); goto Bolnitsa;
…и так далее. Рассказал даже, как забросить вожделенную пачку в окно.
В то время самые дешёвые сигареты были на вокзале у «челноков». «Pr.lux» — сигареты «Прима-люкс», недорогие, но уже с фильтром. Адресат сначала не понял намёка: компьютера-то у него не было. Но, вчитавшись в программу, рассмеялся и благополучно передал курево.
Купил маме программу для расчётов — неплохие деньги, примерно в половину стоимости мелкомягкого Офиса. Оказалось, может работать только с правами администратора. Дать неопытному пользователю такие права — это переустановка винды раз в месяц.
Написал разработчику — тот стал напирать, что компилятор такой. Выяснил, какой компилятор, пробным путём нашёл, на каком моменте ему нужны права администратора. Оказалось, давно исправленная ошибка в стандартной библиотеке. Разработчик тот с удивлением сообщил, что об этом никогда не слышал.
Всё бы ничего, только переписка была в 2010 году, а ошибку исправили ещё в 2002-м. Новой версии нет до сих пор.
Начал изучать программирование под Android. Думал-думал: чего бы такого полезного и простого запрограммить? Придумал: сделаю-ка себе фонарик, пусть телефон вспышку зажигает. Почитал доку — ага, даже режим специальный есть, так и называется: TORCH. Порадовался, что всё предусмотрели. Сел писать.
Программа простейшая — ошибиться негде. А не работает. Полез отлаживать. Зараза, ни одной ошибочки, ни одного ворнинга, но не вспыхивает, паскуда!
Через час дебага до меня дошло почитать мануал к телефону. Да, в LG P500 Optimus нет вспышки.
Приехали в командировку от имени заказчика к нашим аутсорсерам разбираться с ситуацией. Наша продюсер жалуется на своих программистов, программисты жалуются на неё, до очередного дедлайна остаётся три дня.
Идёт планёрка в скайпе. По части задач, как выясняется, продюсер задержала предоставление графики. Но и они хороши: на другой задаче эстимейт 52 часа.
— Это мы точно не успеем, — сокрушается техдиректор аутсорсеров. — 52 часа — это вообще полторы недели.
— Почему полторы недели? — удивляется продюсер. — В сутках же 24 часа.
Дружный взрыв смеха всех, включая нас, представителей конторы. Продюсер понимает, что она что-то не то сказала, и начинает объяснять:
— Ну, у нас же на проекте пять программистов, с каждого по десять часов…
Мы ржали так, что пришлось потом перезванивать и извиняться.
Ночь. Сижу, пишу код в Matlab, уже практически не соображаю. Решил пойти умыться и сделать кофе.
Благополучно добравшись до ванной, вижу, что стиральная машина начала отжимать бельё и качается в разные стороны. Думаю, так дело не пойдёт, сейчас исправим! Возвращаюсь в комнату, создаю новую функцию…