+380 67 826 62 92

(читать попивая виски и грустно куря сигарету)

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

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

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

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

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

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

Ну и да, почему джаваскриптизеры. В каждом языке есть конструкции, которые непонятно почему вообще существуют. Есть целые блоги посвященные глупостям, которые можно написать на этих технологиях. Но только во время интревью, связанному с позициями JavaScript программиста, тебя могут интервьювать полностью такими вот идиотскими заданиями. Не на логику. Не на алгоритмы. А просто идиотским кодом. Однажды я спросил, зачем вы мне вообще такой код показываете? На что я получил ответ, который все никак не уходит у меня из головы: «Знаешь, у нас в коммьюнити есть такие особые люди. Они не любят делать все стандартным путем. Это просто. Они ищут изощрённые решения и называют их красивыми. Так вот, в таком надо разбираться, чтоб никогда так не делать.» Понимаете? Если б мне не показали такой код, я б вообще не догадался, что так возможно писать. А тут мне показывают как можно, но чтоб нельзя.

Когда-то известный комик Павел Воля в одном из своих выступлений сказал: «Простите Владимир Владимирович. Мы — рукожопы.» Иногда я думаю, что нам, JavaScript программистам стоит встать и всему IT сообществу сказать: «Ребят, у нас тут своя атмосфера. Мы — рукожопы». Просто, потому что заставляем людей разбираться в коде, который никто и никогда не хотел бы написать. А то реально стыдно.

ДІМА МАЛЄЄВ

Директор Львівської школи програмування