Мне до сих пор пишут что-нибудь вроде: “Привет, у меня появилась идея: я хочу сайт, который уделал бы Википедию, YouTube,...” Каждый хочет сделать веб-сайт, поскольку четыре его любимых веб-сайта не совсем правильны, и хочет что-то внешне похожее.
То, что Арр Engine предоставляет всего одну кнопку Put this on the Web (Выложить в Сеть) и можно писать все на одном языке - Python, который кажется довольно простым для изучения, - просто прекрасно. Это отличное введение в программирование - вас избавляют от множества уровней всякой ерунды.
Сейбел: Как же это вяжется с вашим расстройством по поводу поклонников Java, когда они говорят: “Java позаботится об этом за вас”. Разве это не одно и то же, когда вы говорите: “Арр Engine позаботится об этом за вас”?
Фицпатрик: Не знаю. Может, просто мне известно, что происходит на самом деле. В принципе, JVM не так уж плоха. Думаю, проблемы начинаются тогда, когда люди принимают на веру некие абстракции, не понимая, что происходит на самом деле.
Сейбел: У вас был большой опыт программирования к тому времени, как вы поступили в колледж и начали слушать курс по компьютерным наукам. Как это вам помогло учиться?
Фицпатрик: Поначалу я пропускал много занятий по компьютерным наукам - такая была там скука. Я появлялся только на экзаменах.
Дальше, на третьем-четвертом курсе стало поинтереснее. Но тут, как назло, я окончил колледж. А на занятия магистров меня не пускали, ведь я не учился в магистратуре.
Помню, на курсе по компиляторам последнее задание было таким: взять один из существующих языков, с которыми мы возились, и добавить определенный набор возможностей, включая одну функцию по своему выбору, за которую полагались дополнительные баллы. Я решил реализовать проверку выхода за границы массива во время выполнения. Преподаватель взял мой скомпилированный код и запустил на нем свой набор тестов, и выполнение нескольких из них завершилось неудачно. Тогда он сказал: “Извините, но ваш код не прошел мои модульные тесты. Вы получаете тройку”. Я посмотрел на код его тестов и сказал: “Так ваш тест содержит ошибку диапазона (off-by-one error)”. Он исправил оценку на пятерку. Но дополнительных баллов я так и не получил и разозлился на колледж.
Еще помню курс по базам данных, который читал человек, видимо, без реального опыта работы с базами данных. А я в то время уже работал с Oracle, Microsoft Server и особенно плотно с MySQL. И я задавал вопросы практического характера, на которые хотел получить ответы - тогда они были актуальны для меня, - но мне выдали стандартную фразу из учебника. Я сказал: “Нет-нет, это не работает”.
Сейбел: Вы окончили колледж в 2002 году. Теперь вы можете лучше оценить то, чему вас учили, или нет?
Фицпатрик: Половина курсов мне очень нравилась, я или узнавал что-то новое, чего в то время еще не знал, или получал соответствующие базовые знания и изучал правильную терминологию. До того я неплохо знал программирование, но у меня не было достаточного словарного запаса, чтобы объяснить то, что я делаю. Я мог выдумать собственную терминологию, но в результате люди могли бы подумать, что я не знаю, о чем говорю. В этом плане формальное образование помогло мне.
Сейбел: Вы сожалеете о том, что приходилось совмещать работу с учебой? Может быть стоило заниматься либо одним, либо другим?
Фицпатрик: Нет, мне кажется, это был наилучший вариант. У меня были приятели, которые только учились, но я уже знал так много, что мне было бы скучно. Один мой приятель был действительно знающим, но он считал, что пошел в колледж за знаниями, а вовсе не за дипломом, - и параллельно изучал арабский, китайский и японский. И все эти безумные языки программирования. Каждую неделю он говорил: “У меня теперь новый любимый язык. Эту неделю я программирую только на OCaml». Таким образом, он был постоянно занят. Я тоже был постоянно занят и боролся со скукой, но по-другому.
У меня были приятели, которые бросили колледж в первый же год и стали делать всякую ерунду для Сети. Некоторые занялись порносайтами и всяким таким, типа “мы заработаем кучу денег”. И они с головой уходили в работу, но делали только деньги, больше ничего. Колледж - прекрасное место для общения и вечеринок. Если бы я занимался только Живым Журналом, я бы умер от стресса.
Сейбел: Вы довольны тем, что изучали компьютерные науки?
Фицпатрик: Пожалуй, я мог бы обойтись и без этого. Но я много делал и такого, чего сам бы никогда не сделал, так что, думаю, это было полезно. Мне хотелось бы, наверное, заняться чем-нибудь еще, например остаться еще на один год и изучить что-то совершенно постороннее, скажем лингвистику. Мне немного жаль, что я учился в колледже вполсилы из-за того, что много уже знал изначально. На первых курсах я вообще почти не появлялся на занятиях, а когда под конец стало интересно, получилось так: “Поздравляем, вы закончили обучение”.