11 November 2019

Как сойти за хорошего программиста

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



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

Моя работа – быть более аутентичным в том, чтобы быть фальшивым программистом, чем настоящие программисты в том, чтобы быть самими собой.

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

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

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

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

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


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

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

Пожалуйста:

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

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

mpstat | grep -A 5 "%idle" | tail -n 1 | awk -F " " '{print 100 - $ 12}'a

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

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

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



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

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

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

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

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

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

Я скажу: лучше быть поддельным кем-то, чем настоящим никем.
Tags:переводюморпродуктивностьтехнологии
Hubs: Programming IT career
+99
61.5k 260
Comments 154