Диалоги с программистами. Часть I00: ветераны кода
АрхивИнтерактивСерия интервью с программистами - начинающими и не очень - продолжается (по многочисленным просьбам читателей) беседой с человеком, максимально похожим на стереотипного программиста из анекдотов.
Читатели просили поговорить со старым матерым программистом. Что ж, мы нашли такого человека. Нам его представили как реликтовый экземпляр, принадлежащий вымирающей породе динозавров — тех, что до сих пор пользуются FAR’ом, мыслят в двоичной системе счисления и проповедуют собственное видение идеального интерфейса программы. А еще (по о-о-очень большому секрету) сообщили, что почти все анекдоты про программистов писались именно с Виталия Чумакова, которого все зовут просто Чум.
Виталий Чумаков
По профессии программист
По образованию педагог (на программистов тогда не учили)
Успел поработать учителем, программистом, программистом, программистом, учителем, программистом
Любит пятницу, завтрак, обед, ужин, спорить, компьютерные игры, башорг, фэнтэзи, жену
Не любит беспочвенную критику, задерживаться на работе
Живет в Минске
Сейчас занимается тем, что видно, и тем, чего не видно, на сайте interfax.by
В будущем мечтает поиграть в Fallout 3, а еще лучше – Fallout 4
В ближайшее время собирается поиграть в Civilization 3
Воображение не подвело, заранее нарисовав образ раннего Стива Возняка — и он материализовался. Чум оказался большим человеком с густой растительностью на лице и большим компьютером. Мы очень обрадовались знакомству, ведь классических программистов осталось совсем мало. Это те самые герои дебага и трейса для уникальных платформ, о которых сегодня никто не помнит. Они - представители зари компьютерной эры, когда все программисты слыли злыми хакерами, днями и ночами играли в компьютерные игры, имели темное прошлое и туманное будущее. По крайней мере, такими их показывают по телевизору. Как и любой порядочный программист, он с радостью согласился отвлечься от работы, благо, начальство любезно дало на это свое официальное "ну, ладно".
- Давайте начнем со списка программистских достоинств. Что вы успели попробовать?
- Все началось в далеком 1992 году, а с 2002 года могу называть себя профессиональным программистом, то есть, человеком, который регулярно и стабильно получает деньги за программирование.
Начинал с Basic, потом Pascal в университете, затем на Perl писал магистерскую диссертацию (жутко навороченная вещь была). Затем начал работать с PHP. Попутно смотрел множество языков, но сказать, что знаю их профессионально, не могу. Так, если надо, напишу средней сложности код, а для серьезного надо будет потратить некоторое время. Еще знаю HTML, JavaScript и CSS, но это не языки программирования.
Успел серьезно позаниматься web-программированием и распознаванием смысла введенного текста. Искусственный интеллект, который оценивает правильность ответа на вопрос.
- Ух ты, звучит впечатляюще... И каков результат?
- Я это использовал, но примеров привести не могу. Военная тайна.
Замечательно, подходит, ставим галку в графе "темное прошлое". Теперь – о будущем.
- Какие тренды в мире? Какие перспективы?
- По программированию могу говорить только за web. Тут все сведется к нескольким большим CMS для всех. К примеру Google сделает некий инструмент для создания сайтов и, конечно, Microsoft и Adobe с этим не согласятся. Возможно, появится еще кто-то. А множество программистов будет делать для этого всего модули, для каждого - свою, несовместимую версию.
При этом самописные CMS никогда и некуда не денутся, в этом я полностью убежден. Cайт Васи Пупкина и сложный сайт уровня корпорации делать на одном движке очень сложно и очень глупо. Унификация и сближение будет происходить, но особые задачи требуют особых решений.
Будущее выглядит зловеще и монополистично. Похоже на взгляд злого гения? Теперь начнем исследование настоящего.
- Столько всяких новых технологий появилось, которые должны улучшать жизнь программиста. Стало легче работать?
- Сейчас работать удобнее. Хотя, наверное, это опыт и некий набор программ и решений, который наработан за эти годы. А вообще, ничего сильно не изменилось. Я специализируюсь на нестандартных задачах с нестандартными решениями. Тут никаких революций не произойдет: как ломал голову над задачами, так и ломаю. Разве что код в редакторе FAR уже не пишу.
Какая досада, FAR был нашим главным критерием и достоинством при выборе собеседника. Разве можно быть настоящим программистом старой закалки без FAR’а-то? Ладно, пройдемся по остальным параметрам образа классического программиста.
- Пункт 4 – гейминг.
- Да, я - геймер. Я получаю удовольствие, когда играю. Наверное, я даже тру-геймер, но умею остановиться. Наверное.
Но вообще, вся наша жизнь - игра: кто-то играет на компьютере, кто-то играет в догонялки на городских магистралях, кто-то выстраивает отношения с противоположным полом. Это все ИГРА, с маленькой, заглавной или прописными - это уже зависит от фанатизма, а на компьютерных игроков просто вешают всех собак.
Обычно я играю во все, что выходит, даже "детские" и "девичьи" игры - так, для общего представления - смотрю. Ну а любимые – «Вовка» (World of Warcraft), EverQuest. Из старого - Dawn of War (Слава Императору), Majesty (лучшая игра непрямого контроля), симулятор отряда – это SilentStorm, симулятор космического корабля и экономика - это X3, Вторая мировая - это ИЛ2, когда хочется пострелять – Star Wars Battlefront, ну, и любимые - FALLOUT 1-2, Might and Magic 6-8. И вообще, иногда просто подходишь к полочке с коллекцией игр и выбираешь, выбираешь... Да, точно, давно я в «Цивилизацию» не играл.
Окей. Все правильно и сходится с нашим списком. Теперь стандартные вопросы.
- Игры оригинальные или пиратские? Мультиплеер платный или коммунистический?
Обязательно платное - всё. Я пробовал играть на пиратских шардах, вспоминаю с содроганием: многое не работает, монстры заоблачного уровня в "детской песочнице", потеря персонажей. В общем бесплатный шард платной игры это секс с использованием брезентового презерватива.
Игры покупаю, но придерживаюсь принципа "использовать программу только после первого патча".
Так, геймер окончательно засчитан. Теперь копаем в сторону хакинга.
- Ну как, было дело?
- На вопросы по темам, за которые могут посадить, не отвечаю. :) Хотя, конечно, было, кто этим не занимался...
- А подробнее? Хотя бы самое безобидное?
- Ну, скажем так, кое-где находил кое-какие ошибки и этим пользовался. Всё.
Всё? Руководство явно не оценит. Уважаемые читатели, вы когда-нибудь видели скромного хакера? Хорошо, подойдем с другой стороны.
- Виталий, а что вы в жизни успели напрограммить полезного?
Биллинг и статистику продавца трафика IP-телефонии. Там одна контора продавала трафик розничным компаниям по всему миру. Миллионы записей, базы данных измерялись гигабайтами.
Еще был сайт с n-тысячами картинок с описаниями разных хитрых штук, все надо было превратить в базу данных. Сайт рукодельный, HTML верстался для каждой страницы.
Ага, оба проекта узнаются. Первый источник бесплатного трафика – а второй – картинки, ну, догадаемся, какого содержания. Это всего лишь наши догадки. Как было на самом деле, знает только наш герой.
- А что было кроме программирования?
Занимался интеллектуальными играми. Стоял у истоков Витебского клуба знатоков, присутствовал и, по мере возможностей, участвовал в развитии движения знатоков Беларуси. Был капитаном первой и лучшей команды знатоков Витебска. В свое время бесплатно и за деньги обучал "компьютеру". Занимался "наукой": теория вероятности, микробиология, обучающие технологии. А еще я работал учителем...
- Ух ты, (так и запишем) строгим, злым и жестоким?
И да и нет. Ну как можно кричать и ругаться на ребенка 5-6 лет который с глазенками в пять копеек смотрит на тебя? Или на девушку-"филолога" которой компьютер нужен, скажем так, не всегда и не на долго? Или на заочников, которые мне годятся в матери или даже бабушки? Но при этом как можно не строить и не... э... ругать будущих прикладных математиков, которые забивают на учебу в первом семестре?
Учитель, по моему мнению, должен придерживаться неких основных вещей: строгость, принципиальность и честность должны быть всегда. Надо заставить ученика выучить основы и потом научить его наращивать на основах знания, которые ему нужны в жизни. Главное, научить человека "учиться".
- Дети, бабушки и матери?! Где же вы преподавали?
- Преподавал на всех ступенях. Дошкольное образование - преподавал информатику в детском саду. Внешкольное образование - учил информатике и вел кружок "интеллектуальных игр". Школа - преподавал информатику и математику. Высшая школа - преподавал все что связанно с "компьютером". Всего мой преподавательский стаж составляет примерно 5 лет.
Как мило! Большой программист, который учил деток в детском саду. На самом деле впечатляет. А вы говорите, что программистам ничего в этой жизни не надо кроме их железок!
- Вот, чтоб добить читателя: программист – это призвание, профессия или стиль жизни?
- Тут несколько постулатов:
1) программистами не рождаются, но некоторые задатки должны быть (дальше следует пространное рассуждение про абстрактно-логическое мышление);
2) для того чтобы ты был профессионалом, программирование должно быть твоим призванием;
3) программирование - не стиль жизни, вот тут я абсолютно уверен.
Ну что ж. Образ рыцаря командной строки у нас получился. Или мы его сами придумали? Наверное, в людях, которые пишут Microsoft Windows и менее злые программы, каждый видит то, что хочет. Кто-то справедливого учителя, а кто-то злобного вредителя.