Учите иностранные языки Клаус Маркардт

Программистам нужно общаться. И общаться много.

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

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

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

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

Если вы общаетесь с бухгалтерами, нужно примерно представлять, что такое «учет затрат по местам их возникновения», «вложенный капитал», «чистые активы» и т. п. Если вы беседуете со специалистами по маркетингу или юристами, их жаргон и язык (а значит, миропонимание) должны быть в какой-то мере известны и вам. Всеми этими языками, специфическими для предметной области проекта, должен владеть кто-то из проекта — в идеале программисты. В конечном счете программисты отвечают за практическую реализацию идей посредством компьютеров.

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

Загрузка...