» » » » Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста


Авторские права

Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста

Здесь можно купить и скачать "Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста" в формате fb2, epub, txt, doc, pdf. Жанр: Биографии и Мемуары, издательство Символ-Плюс, год 2011. Так же Вы можете читать ознакомительный отрывок из книги на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Кодеры за работой. Размышления о ремесле программиста
Издательство:
неизвестно
Год:
2011
ISBN:
978-5-93286-188-2
Вы автор?
Книга распространяется на условиях партнёрской программы.
Все авторские права соблюдены. Напишите нам, если Вы не согласны.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Кодеры за работой. Размышления о ремесле программиста"

Описание и краткое содержание "Кодеры за работой. Размышления о ремесле программиста" читать бесплатно онлайн.



Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.

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






Сейбел: Вы когда-либо были руководителем?

Завински: Не совсем. Когда я работал над Emacs в Lucid, в Lucid Emacs было много модулей, написанных другими ребятами. Формально они на меня не работали, но в каком-то смысле приходилось руководить. Многим из них явно не хватало опыта, они просто делали то, что хотели, а мои указания сводились к следующему: “Так, мне нужно вот это, но вначале мне нужно вот это и это и отсюда вот это”.

Сейбел: И вы давали им свободу действий? Говорили им, что вам нужно А, Б и В, а они уже сами решали, как это сделать?

Завински: Да. Когда мне нужно решить, включать данный модуль в конечный продукт или нет, я формулирую требования к нему. Главное, чтобы эта чертова штука работала. И я мог дать им совет: “Думаю, у вас будет больше шансов, если вы поступите так, а не иначе”. Но я хотел: 1) чтобы все работало и 2) без моего участия. Они могли применить какой-нибудь безумный способ, но если он сработал, меня это устраивало, поскольку выполнялся второй пункт: мне не нужно было писать это самому. Собственно, мои советы касались лишь того, будет ли это работать и насколько это разумно.

Сейбел: С другой стороны, когда вы были неопытным программистом, что полезного делали ваши наставники?

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

Сейбел: Это вы о Скефе, который только нависал над вами и говорил: “Ошибка”? Наверное, его компенсировал кто-нибудь, кто относился к вам более заботливо?

Завински: Ну, он не был совсем уж троглодитом. Мог и что-то полезное рассказать. Я же читал много кода и задавал кучу вопросов. Думаю, очень важно не бояться собственного незнания. Если не понимаешь, как что-то работает, спроси у того, кто понимает. Многие боятся. А что тут такого? Ведь чего-то не знаешь не потому, что тупой, а просто пока не знаешь.

Сейбел: Вы читали код, потому что работали над ним или просто хотели понять, как он работает?

Завински: Мне всегда было интересно выяснить, как что-то работает. Именно со стремления вникнуть в детали для человека начинается путь в эту профессию.

Сейбел: Вы не из тех, кто в детстве курочил тостеры?

Завински: Да. Я сделал телефон и выяснил, как набирать номер телеграфным ключом, который сделал из консервной банки. В детстве у меня были эти старые книжки, с барахолки или еще откуда, вроде “Науки для мальчиков”, издания 1930-х годов; помнится, они сильно меня раззадорили. В 1920-1930-х существовала настоящая “хакер-ская” культура: советы, как протянуть телеграф от дома к сараю, как изготовить лейденскую банку...

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

Завински: Точно не ученым и не инженером, поскольку эти понятия имеют очень четкие определения. Я не занимаюсь математикой, не создаю проекты, не провожу доказательств. Скорее, что-то среднее между ремесленником и художником, зависит от проекта. Я часто пишу скринсейверы - это ближе к искусству, к созданию красивых картин. Что-то из той же области.

Сейбел: Как считаете, вы овладели компьютерной наукой или только программированием?

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

Сейбел: Вы когда-нибудь считали это упущением? Не было желания получить более систематическое образование?

Завински: Да, были времена, особенно в Lucid, когда я осознавал, что все, о чем говорят эти парни, покрыто для меня мраком, потому что это никогда мне не требовалось и прошло мимо. Потом я освоил терминологию, разобрался в общих чертах, о чем они говорят, и немного читал, когда что-то нужно было узнать. Конечно же, иногда, особенно в молодости, я говорил себе: “Господи, я же ничего не знаю”. Просто минутная слабость, но был и испуг. Мальчишка среди всех этих парней с учеными степенями - “Ааааа, я ничего не знаю! Я идиот! Что я здесь делаю?”

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

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

Завински: Да, причем довольно часто. Но без этих мыслей вроде “Вы ребята выбрали не тот путь” или “Нас просто интересуют разные вещи”. Я не хочу быть математиком, но математиков критиковать не собираюсь.

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

Сейбел: Вы по сути самоучка. Что вы можете посоветовать программистам-самоучкам?

Завински: Тут все не так просто, поскольку мир сильно изменился. Я всегда странно себя чувствую, когда заходит разговор на тему “Как это было у меня”. Я не знаю, правильно ли я тогда поступил. А люди всегда воспринимают это в смысле “Делай, как я”.

У меня это вышло случайно. Так получилось, вот и все. Я принял решения, которые привели к другим решениям, и вот результат.

Я то и дело получаю электронные письма примерно такого содержания: “Я хочу стать программистом, что мне делать?” Или: “Идти мне в колледж или нет?” Что я могу ответить? В 1986 году я бы дал однозначный ответ. Но сегодня никто не сможет пойти по моему пути, потому что его больше нет.

Десять лет назад я бы говорил, что перво-наперво следует изучить язык ассемблера. Нужно осознать, как работает компьютер. Так ли важно это сейчас? Не знаю. Может быть, да. А может, и нет. Может, через десять лет все программное обеспечение будет представлять собой веб-приложения или распределенный код, выполняемый на арендованных кластерах, части которого, находясь на десятке серверов Google, порождают собственные копии и воссоединяются после получения результатов. Нужно ли будет для этого знать ассемблер? Или все настолько абстрагируется, что это уже будет неважно? Я не знаю.

Я был поражен, когда узнал, что люди получают дипломы программистов, не написав ни строки на Си. Начав с Java, они там и остались. Это кажется неестественным и неправильным. Но откуда мне знать, правильно это или нет? Может, дико думать: “А мы в свое время программировали с помощью девятивольтовой батареи и твердой руки!”

Сейбел: А что скажете о книгах? Есть ли книги по компьютерным наукам или программированию, которые должен прочесть каждый?

Завински: Я читал их не так много. Я всегда рекомендую книгу “Structure and Interpretation of Computer Programs”[15], которая многих пугает, потому что там много о Лиспе. Но я думаю, что она действительно учит программированию, а не конкретному языку. Мне кажется, что многие курсы для начинающих делают упор на синтаксис. Я видел это в старших классах и на вводных курсах, когда недолго учился в Карнеги-Меллоне.

Они обучают не программированию, а тому, куда поставить точку с запятой. Это отталкивает людей от программирования, потому что это не самая интересная его часть. Даже для тех, кто знает, что делает.

Была еще книга - как же она называлась? - про отладку, ее написал кто-то из Microsoft. О том, как эффективно использовать утверждения. Помню, мне она показалась стоящей, но не потому, что я узнал из нее много нового, а потому, что именно эту книгу хочется дать прочесть идиоту-коллеге.

Была и еще одна книга, которую все считали величайшим трудом своего времени: “Design Patterns”[16]. По-моему, отстой. Там учили программировать методом “вырезания и вставки”. Вместо того чтобы подумать над своей задачей, берешь сборник рецептов, ищешь там что-то более-менее похожее и просто пытаешься это воспроизвести. Это не учебник программирования, а книжка-раскраска. Но, похоже, многим она нравилась. И при встрече они перекидывались словечками из этой книги - такой паттерн, сякой паттерн. А вы о чем — о цикле? Ясно.

Сейбел: Есть ли ключевые навыки, необходимые каждому программисту?

Завински: Любопытство, желание разобрать что-то по косточкам. Стремление узнать, что там внутри происходит на самом деле. Думаю, это основа программирования. Без этого далеко не пойдешь. Это основной "путь получения знаний. Чтобы научиться создавать что-то свое, нужно разобраться в чем-то уже готовом, посмотреть, как оно устроено. По крайней мере, для меня это так. Я очень мало читал компьютерной литературы. Я учился, копаясь в исходниках и читая документацию. У меня была цель, для достижения которой я должен был знать, что делает эта штука и вот эта. Я просто шел наугад, пока не понимал, куда мне нужно.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Кодеры за работой. Размышления о ремесле программиста"

Книги похожие на "Кодеры за работой. Размышления о ремесле программиста" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Питер Сейбел

Питер Сейбел - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста"

Отзывы читателей о книге "Кодеры за работой. Размышления о ремесле программиста", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.