Читаем Кодеры за работой. Размышления о ремесле программиста полностью

Кнут: Мне просто нужно узнать и признать свои грехи. Если использовать богословскую терминологию, то можно сказать, что все люди нуждаются в отпущении грехов.

Сейбел: То есть вы замечали ошибки в своих программах и думали про себя: «Ох, я снова сделал ту же самую ошибку».

Кнут: Да.

Сейбел: Почему же так? Может быть, дело в какой-то особой природе ошибок, что особенно затрудняет усвоение урока и недопущение подобных ошибок в будущем?

Кнут: Думаю, скорее всего, дело в том, что я пытаюсь заниматься все более сложными вещами. Я всегда пробую то, что требует от меня максимум усилий. Если бы мне нужно было сейчас вернуться и написать эти программы еще раз — те, которые полегче, — я бы не допустил так много ошибок. Но теперь, зная немного больше, я пытаюсь писать более сложные программы. То есть я совершаю ошибки, потому что всегда работаю на пределе своих способностей. Работать, никогда не покидая зоны комфорта, — это же скучно.

Сейбел: То есть теоретически вы могли бы продолжать писать системы для верстки текста до конца своей жизни?

Кнут: Да, они бы у меня выходили весьма неплохо. Но мы постоянно поднимаем для себя планку и неизбежно задеваем ее. Мы работаем с тем, как уже говорилось, что находится на пределе человеческих возможностей, и то, что мы делаем сейчас, еще сложнее того, с чем нам приходилось сталкиваться раньше.

Если же мы ограничиваем себя лишь тем, что действительно очень просто, то нам этого недостаточно, потому что наши аппетиты постоянно растут, мы всегда стремимся расширить границы своих возможностей, чтобы двигаться вперед, пока не доходим до того, что удается нам с величайшим трудом. А добравшись до этого момента, мы снова хотим расширить границы своих возможностей и так далее.

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

Последние два-три года новой панацеей считалось экстремальное программирование. До этого было еще что-то. Потом еще кто-нибудь придумает очередное решение всех проблем, и многие вспрыгнут на подножку этого поезда, но потом им придется задуматься: «Черт, а ведь по-прежнему не все так уж легко».

Сейбел: Изменился ли со временем тип человека, который может стать хорошим программистом?

Кнут: Судя по моему многолетнему опыту, практически всегда, когда я встречаю 100 человек из той или иной группы населения (не считая студентов специальности «компьютерные науки»), двое из них — программисты, в том смысле что действительно находят общий язык с машиной. В городе Василла (Аляска) проживает 10 000 человек, соответственно там должно быть 200 программистов.

Сейбел: Так изменилось ли программирование за это время настолько, что изменился тип людей, попадающих в эти два процента? Или тут все по-прежнему?

Кнут: Не знаю, ведь понятие «программирование» можно трактовать по-разному. Мы всегда пытаемся создавать инструменты, благодаря которым компьютерные процессы как можно больше походили бы на то, что происходит в мозгу человека. Я скорее говорю о таком способе работы машины, когда она пытается раздвинуть горизонты, а не просто решить задачу.

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

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

Сейбел: Но вам ведь все еще интересно программировать самому?

Кнут: Разумеется, да. Мне просто необходимо программировать. Я просыпаюсь утром, и у меня уже готово несколько предложений литературной программы. Перед завтраком — уверен, поэтам это знакомо — я должен сесть за компьютер и записать этот абзац, и только потом могу идти есть, и я счастлив. Без этого я не могу, должен это признать.

Перейти на страницу:

Похожие книги

Адмирал Советского Союза
Адмирал Советского Союза

Николай Герасимович Кузнецов – адмирал Флота Советского Союза, один из тех, кому мы обязаны победой в Великой Отечественной войне. В 1939 г., по личному указанию Сталина, 34-летний Кузнецов был назначен народным комиссаром ВМФ СССР. Во время войны он входил в Ставку Верховного Главнокомандования, оперативно и энергично руководил флотом. За свои выдающиеся заслуги Н.Г. Кузнецов получил высшее воинское звание на флоте и стал Героем Советского Союза.В своей книге Н.Г. Кузнецов рассказывает о своем боевом пути начиная от Гражданской войны в Испании до окончательного разгрома гитлеровской Германии и поражения милитаристской Японии. Оборона Ханко, Либавы, Таллина, Одессы, Севастополя, Москвы, Ленинграда, Сталинграда, крупнейшие операции флотов на Севере, Балтике и Черном море – все это есть в книге легендарного советского адмирала. Кроме того, он вспоминает о своих встречах с высшими государственными, партийными и военными руководителями СССР, рассказывает о методах и стиле работы И.В. Сталина, Г.К. Жукова и многих других известных деятелей своего времени.Воспоминания впервые выходят в полном виде, ранее они никогда не издавались под одной обложкой.

Николай Герасимович Кузнецов

Биографии и Мемуары
100 великих гениев
100 великих гениев

Существует много определений гениальности. Например, Ньютон полагал, что гениальность – это терпение мысли, сосредоточенной в известном направлении. Гёте считал, что отличительная черта гениальности – умение духа распознать, что ему на пользу. Кант говорил, что гениальность – это талант изобретения того, чему нельзя научиться. То есть гению дано открыть нечто неведомое. Автор книги Р.К. Баландин попытался дать свое определение гениальности и составить свой рассказ о наиболее прославленных гениях человечества.Принцип классификации в книге простой – персоналии располагаются по роду занятий (особо выделены универсальные гении). Автор рассматривает достижения великих созидателей, прежде всего, в сфере религии, философии, искусства, литературы и науки, то есть в тех областях духа, где наиболее полно проявились их творческие способности. Раздел «Неведомый гений» призван показать, как много замечательных творцов остаются безымянными и как мало нам известно о них.

Рудольф Константинович Баландин

Биографии и Мемуары
100 великих интриг
100 великих интриг

Нередко политические интриги становятся главными двигателями истории. Заговоры, покушения, провокации, аресты, казни, бунты и военные перевороты – все эти события могут составлять только часть одной, хитро спланированной, интриги, начинавшейся с короткой записки, вовремя произнесенной фразы или многозначительного молчания во время важной беседы царствующих особ и закончившейся грандиозным сломом целой эпохи.Суд над Сократом, заговор Катилины, Цезарь и Клеопатра, интриги Мессалины, мрачная слава Старца Горы, заговор Пацци, Варфоломеевская ночь, убийство Валленштейна, таинственная смерть Людвига Баварского, загадки Нюрнбергского процесса… Об этом и многом другом рассказывает очередная книга серии.

Виктор Николаевич Еремин

Биографии и Мемуары / История / Энциклопедии / Образование и наука / Словари и Энциклопедии