Книги Джоэла Спольски о программировании

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

Книги я читал в разное время своей жизни неравномерно часто. Бывали времена, когда читал много. Так, например, женившись, я переехал жить в квартиру жены, а там была подписка Зарубежной фантастики. Я сразу ее прочел всю, все тома. Фантастику я читать любил, и были проблемы где ее достать, а когда дома стоит, то нет проблем. Читал я и кое-что другое, но не очень старался искать книги и читать постоянно. Новый виток постоянного чтения произошел в начале 2004-го года, когда я купил свой карманный компьютер. На нем можно было читать электронные книги, достать которые не было проблем. Я тогда прочитал много книг, пока не надоело.

Сейчас у меня есть смартфон, у которого экран в два раза больше и читать проще, но, увы, глаза уже надо беречь. В метро я читать перестал, читаю дома на компьютере. Правда это произошло не сразу, и я успел прочитать еще много разных книг. Старый список книг, прочитанных на карманном компьютере,  я выставил в интернет на свой сайт [1]. Список книг, которые я прочитал в последнее время, я стал делать с комментариями к каждой книге и выделил в отдельный сайт [2]. В тот момент, когда читать стало вредно для глаз, выбор книг стал особенно важен. Не хочется читать а бы что, а только самое интересное. А как про это узнать?

Я стал искать блоги интересных людей и смотреть что они рекомендуют почитать. Так я вышел на книгу "Черный лебедь", а потом и на книги Джоэла Спольски о программировании. Я уже написал на Прозе три рецензии на прочитанные книги, данный рассказ представляет сразу две книги Джоэла Спольски. Первая называется  "Джоэл о программировании", вторая "Джоэл еще раз о программировании". Возможно предмет этой книги не всем покажется интересным, очень много людей вообще не знают что такое программирование.

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

Вся прелесть этих книг в том, что их автор очень способный рассказчик. Есть такое мнение что не важно о чем говорить, важно как говорить. Это в полной мере относится к Джоелу Спольски. О чем бы он ни говорил (писал) любой будет его слушать (читать) с открытым ртом даже не понимая почти ничего из того, что говорится. Просто потому, что любую мысль он приводит к так называемому бытовому уровню, который понимают все. В книге очень много советов о том как надо работать, каким должно быть рабочее место, отношения рабочего (программиста) и начальника. Я сам ученый-теоретик, и у нас очень похожие условия работы и взаимодействия с начальством.

Проблема в том, что в любом творчестве главным является именно исполнитель, а начальство, как правило, плохо понимает что конкретно и как делают его подчиненные и в этом есть своя сложность. Такую работу очень трудно организовать, в разных местах это делают по разному. А автор излагает свой взгляд на эти проблемы. При этом он рассказывает философские анекдоты и вообще по ходу дела высказывается о разных явлениях. Фактически, обе книги не являются чем-то целым, это просто сборник рассказов на разные темы, объединенные под одной обложкой.

Автор долгое время вел свой блог в интернете, на котором писал эти разные статьи и получал много комментариев. А потом все это было издано в двух книгах примерно 350 страниц каждая и переведено с английского на русский язык. Надо сказать, что я потратил какое-то время на поиски этих книг в интернете. Одну я нашел только в djvu формате, то есть сканированный бумажный текст в виде картинок, вторую -- только в pdf формате. Для тех, кто захочет их почитать, даю собственные ссылки для скачивания [3] и [4], хотя можно и в интернете поискать. Может быть найдете другие форматы.

Надо сказать, что программа, которую выпускает фирма Джоела, довольно специфическая и требуется немногим профессионалам. Она описана в интернете, в том числе и на русcком языке, у нее есть свой сайт на английском, но про то, что же она делает, я ничего не могу сказать. Это и не важно, важно то, что в книгах Джоела много говориться об известных программах, как тех, которыми все пользовались в прошлом, так и новых. И о проблемах, которые возникают при разработке программ массового спроса. Говорится и о языках программирования, пусть немного, но тоже оригинально.

Переcказывать все содержание книг я здесь не буду, вместо этого я приведу один отрывок из второй книги, который дает представление о том как написаны эти книги [5]. В заключение хочу сказать, что и черного лебедя Джоел тоже упоминает, он тоже читал эту книгу.

[1] http://kohnvict.ucoz.ru/a/4/booklist.htm
[2] http://kohnvict.ucoz.ru/a/4/bookcom.htm
[3] [4] [5] Видеть с высокой степенью разрешения вы можете только в относительно небольшой области, и даже там, в самом ее центре, есть крупное пятно, в котором видимости нет, и несмотря на это, вы полагаете, что у вас панорамное зрение со сверхвысоким разрешением. Почему? Потому что ваши глаза очень быстро двигаются, и в обычной ситуации они мгновенно перенаправляются туда, куда вам требуется. А ваш мозг поддерживает это совершенно абстрактное представление, создавая иллюзию полного обзора, тогда как на самом деле вы располагаете очень маленькой областью острого зрения, обширной областью очень слабого зрения и способностью загружать отсутствующую страницу памяти для всего, что хотите видеть, так быстро, что можно не сомневаться: этот маленький театр в вашем мозгу показывает всю картину.

Это чрезвычайно полезная схема, применяемая и во многих других ситуациях. Ваш слух способен улавливать важные части разговора. Ваши пальцы шарят повсюду и ощупывают все, что нужно, шерстяной свитер или внутренность носа, давая полную картину ощущений. Во время сна ваш мозг задает органам чувств те же вопросы, что и наяву (взгляни-ка, что там?!), но органы чувств временно отключены (вы же спите, в конце концов), и мозг, подставляя ответы как попало, сплетает причудливые рассказы, называемые снами. А утром, пытаясь пересказать приятелю свой сон, несмотря на кажущееся ощущение абсолютной реальности происходившего, вы вдруг обнаруживаете, что на самом деле ничего не помните, и сочиняете что-то на ходу. За следующую минуту-другую сна ваш мозг успел бы спросить у органов чувств, что это за млекопитающее плавает вместе с вами в розовом кусте, и получить любой дурацкий ответ (утконос!), но вы проснулись и даже не осознавали отсутствие потребности определить, что было рядом с вами в розовом кусте, до попытки связно передать свой сон приятелю. Что у вас никогда не получится. Так что прошу не рассказывать мне свои сны.

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