Речь в Йельском университете 3
From The Joel on Software Translation Project
Автор: Джоэл Спольски
Переводчик: Вадим Кадученко
В оригинале статья называлась Talk at Yale: Part 3 of 3 и была написана 5 декабря 2007
Перевод 1 части статьи - Речь в Йельском университете 1.
Перевод 2 части статьи - Речь в Йельском университете 2.
Я отчаялся найти компанию, в которой к программистам относились бы как к талантам, а не как к наборщикам, и решил основать свою фирму. В те дни я видел, как много глупых людей с глупыми бизнес-планами создавали интернет-компании. И я подумал – эй, если бы я смог быть на 10% умнее их, а это легко, то я мог бы создать свою компанию, а уж в ней мы бы делали всё как надо. Мы бы относились к программистам с уважением, мы бы выпускали высококачественные продукты, мы бы не слушали вице-президентов или 24-летних «как бы президентов». Мы бы заботились о наших клиентах и решали бы их проблемы, как только они обратятся к нам, вместо того, чтобы валить всё на Microsoft, и мы бы дали нашим клиентам право выбора: платить нам или нет. В компании Fog Creek мы вернём деньги каждому и не будем задавать никаких вопросов и ни при каких обстоятельствах. Всё по-честному.
Это было летом 2000 года, я немного отдохнул от работы, думал об устройстве компании Fog Creek Software и много загорал на пляже. В это же время я начал писать о том, что узнал во время моей работы, на сайте «Джоэл о программировании». Тогда, ещё до того, как придумали блоги, программист Дэйв Винер создал систему под названием EditMyPage.com, где каждый мог публиковать сообщения в формате, похожем на блог. Сайт «Джоэл о программировании» быстро рос, и он дал мне возможность писать о программировании и привлекать внимание других людей к тому, что я пишу. Сайт содержит довольно неоригинальные мысли вперемешку с шутками. Он был успешным потому, что я использовал чуть больший шрифт, чем на других сайтах, поэтому его было легче читать. Подсчитать, сколько людей читают сайт, всегда непросто, особенно если вас это не очень-то заботит. Обычно статьи на сайте читало от ста тысяч до миллиона человек, в зависимости от популярности темы.
Как писать статьи, я тоже научился здесь, на факультете компьютерных наук. Сейчас я расскажу об этом. В 1989 году направление искусственного интеллекта в Йеле было очень развито, и один из известных профессоров, Роджер Шанк, приехал и выступил с лекцией о сценариях, схемах, слотах, и так далее. Теперь я читаю его работы, и мне кажется, что эту же самую лекцию он читал последние 20 лет, и все эти 20 лет он писал небольшие программы, которые были построены на его теориях. Эти программы не работали, но теории почему-то никогда не опровергались. Он казался очень умным человеком, я хотел ходить на его занятия, но все знали, что он не любит студентов младших курсов. Поэтому попасть к нему можно было только одним способом: выбрать курс под названием Алгоритмическое Мышление (CS115), обзорный курс ни о чём, предназначенный для гуманитариев. Формально он относился к факультету компьютерных наук, но там были настолько разочарованы этим курсом, что он не мог идти в зачёт диплома по компьютерным наукам. Хотя этот курс был самым большим по посещаемости на всём факультете, я чувствовал отвращение всякий раз, когда мои друзья-историки называли его «компьютерная наука». Типичным заданием было написать эссе о том, способна ли машина думать. Теперь ясно, почему этот предмет не мог идти в зачёт диплома по компьютерным наукам. Вообще я не очень удивлюсь, если вы аннулируете мой диплом задним числом, на основании того, что я посещал этот курс.
Самым лучшим в этом предмете было то, что требовалось много писать. Было 13 письменных работ, по одной в неделю. Оценок не было. Ну, вообще-то были. Ладно, сейчас я расскажу об этом. Одной из причин, по которой Шанк ненавидел студентов младших курсов, была их излишняя забота об оценках. Он хотел говорить о том, могут ли компьютеры мыслить, а студенты хотели говорить о том, почему у них «хорошо», а не «отлично». В начале семестра он произнёс длинную речь о том, что оценки – зло, и решил, что единственной оценкой, которую можно получить за письменное задание, будет маленькая галочка, подтверждающая, что работа проверена. Со временем, он захотел выделить действительно хорошие работы, и начал ставить галочки с плюсом, а для очень плохих работ – галочки с минусом. Кажется, как-то я получил галочку с двумя плюсами. Но оценок как таковых никогда не было.
Несмотря на то, что этот курс не учитывался в дипломе, опыт написания эссе на полутехнические темы оказался наиболее полезным из всего, чему меня научили на факультете компьютерных наук. Умение понятно писать на технические темы отличает лидера от рядового программиста в команде. Моей первой работой в Microsoft была должность руководителя проекта в команде, составлявшей спецификацию для огромной программной системы Visual Basic for Applications в Excel. Этот документ занимал 500 страниц, и каждое утро сотни людей приходили на работу и читали его, чтобы понять, что делать дальше. Среди них были программисты, тестировщики, маркетологи, технические писатели и локализаторы по всему миру. Я заметил, что по-настоящему хорошие руководители проектов были те, кто умел очень хорошо писать. Microsoft развернула всю стратегию компании на 180 градусов из-за одного очень убедительного письма Стива Синофски под названием “Cornell is wired!” (Корнеллский университет уже в сети!). Люди, которые умеют хорошо писать, принимают окончательные решения в спорах. Язык С стал столь популярен потому, что книга «Язык программирования С» Кернигана и Ричи просто великолепна.
Итак, это была краткий обзор компьютерной науки. Курс CS115, на котором я научился хорошо писать на околотехнические темы, одна лекция по динамической логике, после которой я решил не идти в магистратуру, и курс CS322, на котором я узнал обряды и ритуалы церкви Unix и хорошо провёл время, написав много кода. То, чему вы точно не научитесь, получив диплом по компьютерным наукам – как же разрабатывать программы. Но вы точно узнаете много того, что впоследствии очень пригодится, если вы решите заниматься именно разработкой программ. Если же вы хотите научиться тому, как разрабатывать программы, то отправьте резюме на jobs@fogcreek.com и запишитесь на летнюю стажировку, и мы научим вас кое-чему. Большое спасибо за внимание.
