Хабрахабр

[Из песочницы] Как сойти за хорошего программиста

Привет, Хабр! Представляю вашему вниманию перевод статьи «How To Fake Being a Good Programmer» автора Stan Sootla.

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

Я дурачил бизнесменов и они делали меня своими техническими соучредителями. Моя работа заключается в том, чтобы быть более аутентичным в том, чтобы быть фальшивым программистом, чем настоящие программисты в том, чтобы быть самими собой.
Я хорош в своем деле, из меня вышел отменный шарлатан. Разыгрываемое мною представление правдоподобно настолько, что однажды Министерство Юстиции спрашивало моего совета насчет создания GUI на Visual Basic, чтобы отследить IP-адрес серийного убийцы.
Я обманывал инженеров и они обсуждали со мной тему Универсального Искусственного Интеллекта.

Секрет прост: дело не в том, что вы знаете, а в том, что вы показываете.

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

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

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

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

В качестве примера, вот скриншот моего экрана когда я генерирую «дипфейки»:

O.
Spectrogram credit: M. — Ante Up P.

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

Пожалуйста:

echo "scale=0; 2 + 2" | bc

Хотите узнать загруженность процессора? Вот вариант:

mpstat | grep -A 5 "%idle" | tail -n 1 | awk -F " " ''a

Ну, вы поняли.

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

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

Более того, если всмотреться получше, среди моих вкладок можно заметить множество статей с arXiv и постов со StackOverflow. Pro tip: заметьте, что у меня одновременно открыты и браузер и консоль. Стратегически оркестрированный массив вкладок дает понять, что вы сумели усесться на столь желанный стул инженера машинного обучения, одной ногой разбираясь в замысловатой теории, другой – в практике. Это не случайность.

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

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

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

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

Почему бы сразу не положить ноги на стол и не вести себя, как специалист? Возможно, но зачем тратить десятилетия жизни на галерах?

Я скажу: лучше быть поддельным кем-то, чем настоящим никем.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть