В последние годы по миру внезапно пронеслась тенденция, когда все пишут код; даже президент США Обама пишет JavaScript. Но как разработчик, зарабатывающий на жизнь написанием кода (и случайным сёрфингом в интернете в рабочее время) — «разработчик» — более модный термин для «инженера-программиста» — я хочу напомнить тем, кто хочет научиться программировать, об одной важной вещи: тщательно выбирайте свой первый язык программирования.
В кругу разработчиков программного обеспечения (в Китае их называют «программистами» или «код-фермерами»), явление, когда люди одной профессии смотрят свысока друг на друга, очень серьёзно. В каждой области программирования существуют запутанные «цепочки презрения». От языков программирования, редакторов и платформ до того, ставится ли { в одной строке с if или на следующей строке, люди из разных лагерей привычно смотрят друг на друга свысока. Среди всего этого «Какой язык программирования вы используете?» — это цепочка презрения, к которой все испытывают наибольший энтузиазм. Поэтому новичкам, только входящим в область программирования, если не выбрать язык тщательно, можно с самого начала оказаться на дне цепочки презрения.
Насколько же сильна и жестока цепочка презрения у разработчиков ПО, если разобраться?

Языки программирования
Инженеры, которые понимают функциональное программирование, смотрят свысока на инженеров, которые постоянно говорят о шаблонах проектирования; инженеры, которые постоянно говорят о шаблонах проектирования, смотрят свысока на инженеров, которые говорят: «Писать так — это уже не ООП!»; инженеры, которые говорят: «Писать так — это уже не ООП!», смотрят свысока на инженеров, которые говорят: «А? Объектно-ориентированное? Разве не достаточно просто вынести повторяющийся код в функцию?»; инженеры, которые говорят: «А? Объектно-ориентированное? Разве не достаточно просто вынести повторяющийся код в функцию?», смотрят свысока на инженеров, которые копируют и вставляют один и тот же код повсюду; инженеры, которые копируют и вставляют один и тот же код повсюду, смотрят свысока на PM-ов.
Инженеры, которые пишут на статических языках, смотрят свысока на инженеров, которые пишут на динамических языках.
Инженеры, которые пишут на языке ассемблера, смотрят свысока на инженеров, которые пишут на C; инженеры на C смотрят свысока на инженеров на C++; инженеры на C++ смотрят свысока на инженеров на Java и C#; инженеры на Java и C# смотрят свысока друг на друга; инженеры на C# смотрят свысока на инженеров на Visual Basic и на инженеров, которые произносят C# как «C well»; инженеры, которые произносят C# как «C well», смотрят свысока на дизайнеров, которые считают HTML языком программирования.
Инженеры, использующие Python 3, смотрят свысока на инженеров, всё ещё использующих Python 2; инженеры, использующие Python 2, смотрят свысока на инженеров, которые сталкиваются с UnicodeEncodeError.
Инженеры, пишущие под iOS, смотрят свысока на инженеров, пишущих под Android; инженеры, пишущие под Android, смотрят свысока на инженеров, пишущих под Windows Phone.
Инженеры с годовым опытом Swift смотрят свысока на инженеров с пятилетним опытом Objective-C; инженеры, пишущие на Objective-C, смотрят свысока на инженеров, которые используют PhoneGap для упаковки приложений в нативные приложения.
Инженеры, использующие React.js, смотрят свысока на инженеров, использующих AngularJS; инженеры, использующие AngularJS, смотрят свысока на инженеров, использующих jQuery; инженеры, использующие jQuery, смотрят свысока на инженеров, использующих Vanilla JavaScript; инженеры, использующие Vanilla JavaScript, смотрят свысока на пользователей IE.
Инженеры, умеющие пользоваться отладчиком, смотрят свысока на инженеров, использующих assert; инженеры, использующие assert, смотрят свысока на инженеров, которые умеют пользоваться только print(); инженеры, отлаживающие с помощью console.log(), смотрят свысока на инженеров, отлаживающих с помощью alert().
Инженеры, пишущие на Ruby on Rails, смотрят свысока на инженеров, использующих все остальные языки.
Что? Ты сказал Ruby? Ruby — это всего лишь фреймворк Ruby on Rails, а вовсе не язык программирования!
Все инженеры смотрят свысока на инженеров PHP.
Инструменты
Инженеры, использующие текстовый редактор, смотрят свысока на инженеров, использующих IDE.
Инженеры, использующие Vim, смотрят свысока на инженеров, использующих Emacs; инженеры, использующие Emacs, смотрят свысока на инженеров, использующих Vim; инженеры, использующие либо Vim, либо Emacs, смотрят свысока на инженеров, использующих любой другой редактор; инженеры, использующие Atom, VSCode или Sublime Text, смотрят свысока на инженеров, использующих Windows Notepad.
Инженеры, использующие Android Studio или IntelliJ IDEA, смотрят свысока на инженеров, использующих Eclipse; инженеры, использующие Eclipse, смотрят свысока на инженеров, использующих NetBeans.
Инженеры, делающие отступы в коде пробелами, смотрят свысока на инженеров, делающих отступы табами; инженеры, делающие отступы табами, смотрят свысока на инженеров, смешивающих пробелы и табы для отступов.
Инженеры, использующие Git или Mercurial, смотрят свысока на инженеров, использующих Subversion; инженеры, использующие Subversion, смотрят свысока на инженеров, использующих Dropbox для контроля версий; инженеры, использующие Dropbox для контроля версий, смотрят свысока на инженеров, которые даже не знают, что такое контроль версий.
Инженеры, которые знают GitHub, смотрят свысока на инженеров, которые не знают GitHub; инженеры, у которых есть приватные репозитории на GitHub, смотрят свысока на инженеров, которые используют BitBucket для бесплатных приватных репозиториев.
Инженеры, использующие Zsh, смотрят свысока на инженеров, использующих Bash; инженеры, использующие Bash, смотрят свысока на инженеров, использующих Cygwin; инженеры, использующие Cygwin, смотрят свысока на инженеров, использующих Command Prompt; инженеры, использующие Command Prompt, смотрят свысока на инженеров, использующих GUI-интерфейсы.
Инженеры, использующие IRC, смотрят свысока на инженеров, использующих HipChat; инженеры, использующие HipChat, смотрят свысока на дизайнеров и PM-ов, использующих Slack.
Инженеры, которые пишут документацию в reStructuredText, смотрят свысока на инженеров, которые пишут документацию в Markdown; инженеры, которые пишут документацию в Markdown, смотрят свысока на инженеров, которые пишут документацию в HTML; инженеры, которые пишут документацию в HTML, смотрят свысока на инженеров, которые не пишут документацию; а инженеры, которые пишут документацию в LaTeX, смотрят свысока на всех инженеров.
Инженеры, использующие Nginx, смотрят свысока на инженеров, использующих Apache; инженеры, использующие Apache, смотрят свысока на инженеров, использующих IIS.
Инженеры, использующие Spark, смотрят свысока на инженеров, использующих Hadoop; инженеры, использующие Hadoop, смотрят свысока на инженеров, которые используют Hadoop для обработки всего лишь нескольких GB данных; инженеры, которые используют Hadoop для обработки всего 1GB данных, смотрят свысока на инженеров, использующих NoSQL; инженеры, использующие NoSQL, смотрят свысока на инженеров, использующих реляционные базы данных; инженеры, использующие реляционные базы данных, смотрят свысока на PM-ов, использующих Excel.
Инженеры, использующие Docker для развёртывания серверов, смотрят свысока на инженеров, использующих Ansible или Puppet для развёртывания серверов; инженеры, использующие Ansible или Puppet для развёртывания серверов, смотрят свысока на инженеров, использующих Fabric для развёртывания серверов; инженеры, использующие Fabric для развёртывания серверов, смотрят свысока на инженеров, которые вручную подключаются по SSH.
ОС
Инженеры, использующие Mac OS X, смотрят свысока на инженеров, использующих Linux; инженеры, использующие Linux, смотрят свысока на инженеров, использующих Windows.
Инженеры, использующие Debian, смотрят свысока на инженеров, использующих Ubuntu; инженеры, использующие Ubuntu, смотрят свысока на инженеров, использующих не-LTS-версии Ubuntu.
Аппаратные
Инженеры, использующие MacBook Pro Retina, смотрят свысока на инженеров, использующих MacBook Air; инженеры, использующие MacBook Air, смотрят свысока на инженеров, использующих ThinkPad; а инженеры, использующие Raspberry Pi, смотрят свысока на инженеров, использующих MacBook Pro Retina.
Инженеры, использующие клавиатуру Dvorak, смотрят свысока на инженеров, использующих клавиатуру Mac; инженеры, использующие клавиатуру Mac, смотрят свысока на инженеров, использующих клавиатуру QWERTY; инженеры, использующие клавиатуру QWERTY, смотрят свысока на инженеров, которые не знают, что такое клавиатура QWERTY; инженеры, которые не знают, что такое клавиатура QWERTY, смотрят свысока на дизайнеров, использующих графический планшет.
Инженеры, сидящие в креслах Aeron, смотрят свысока на инженеров, сидящих в обычных офисных креслах; инженеры, сидящие в обычных офисных креслах, смотрят свысока на PM, которые тоже сидят в обычных офисных креслах; а инженеры, пишущие код стоя, смотрят свысока на инженеров, сидящих в креслах Aeron.
Рабочее место
Инженеры, работающие с аппаратным обеспечением, смотрят свысока на инженеров, работающих с программным обеспечением.
Инженеры, пишущие ОС, смотрят свысока на инженеров, пишущих Web; инженеры, пишущие Web, смотрят свысока на инженеров, пишущих настольные приложения.
Бэкенд-инженеры смотрят свысока на фронтенд-инженеров.
Инженеры и дизайнеры смотрят свысока друг на друга.
Инженеры, которые верят в разработку через тестирование, смотрят свысока на инженеров, которые сначала пишут код, а тесты добавляют позже; инженеры, которые сначала пишут код, а тесты добавляют позже, смотрят свысока на инженеров, которые не пишут тесты; инженеры, которые не пишут тесты, смотрят свысока на PM-ов, которые, чёрт возьми, то и дело произвольно меняют требования.
Инженеры без сертификатов смотрят свысока на инженеров, которые получили кучу сертификатов.
Инженеры, которые носят повседневную одежду на работу, смотрят свысока на инженеров, которые носят костюмы, а инженеры, которые носят костюмы на работу, смотрят свысока на инженеров, которые носят форменную одежду отдела.
———
Если после прочтения этих совершенно ужасающих цепочек презрения выше ваше желание учиться программировать всё ещё не пропало, то я должен напомнить вам о самом важном: сначала найдите себе девушку, а потом учитесь писать код; потому что как только вы станете инженером-программистом, вы больше не сможете найти девушку.
Первоисточник: http://vinta.ws/blog/695