Уважаемые гости!
С сегодняшнего дня на сайте стартует проект по созданию книги с рабочим названием Программирование: введение в профессию. Согласно замыслу, книга должна охватить весь материал, необходимый начинающему программисту, чтобы пройти путь с нулевого уровня до уровня самообучающегося профессионала, используя при этом в качестве учебного пособия Unix-системы (в основном, скорее всего, Linux) и доступное в этих системах свободное программное обеспечение. Если эта книга когда-нибудь будет написана, в ней найдёт отражение практически весь мой опыт преподавания программирования и обучения программированию.
Как можно легко убедиться, я, в принципе, умею писать книги и уже написал не одну и даже не две. До сей поры я всегда обходился своими силами; задумав книгу, я просто садился и писал её. Некоторые из моих учебных пособий были изданы в учебных заведениях, где я работаю или работал, другие я благополучно издавал за свой счёт, окупая такое издание продажей части тиража (при тираже в сотню-другую экземпляров это, в принципе, не так сложно). Несколько раз я предпринимал попытки взаимодействия с издательствами; если бы я согласился на их условия, то мне не пришлось бы издавать за свой счёт некоторые из моих книжек, но и на этом сайте этих книжек бы не было: издатели всегда и везде требуют полной передачи им имущественных прав на книгу, что полностью исключает легальное распространение электронной версии. Спасибо, господа, не надо: я пишу свои книги, чтобы их читали, а не чтобы вы на них зашибали деньги, обдирая моих читателей.
Всё было хорошо, пока мои задумки не отличались масштабностью; мне всегда удавалось выкроить пару более-менее свободных недель, чтобы написать текст, и десять-пятнадцать тысяч рублей, чтобы издать написанную книжку. Но в этот раз реальность несколько отличается.
Задуманная мною книга по своему объёму по меньшей мере в семь-восемь раз превосходит самые большие тексты, которые мне приходилось писать до сих пор; трудозатраты на её создание я оцениваю примерно в 500 часов рабочего времени, это никак не пара недель и даже не пара месяцев; с учётом наличия основной работы на написание книги уйдёт по меньшей мере полгода, если на это время отказаться от фрилансерских подработок и частных уроков (а жить, между тем, на что-то всё же надо). Кроме того, издание хотя бы небольшого бумажного тиража в наше время всё ещё является обязательным условием успешности книги. Издавать такую книгу в виде ризографической брошюрки не получится просто хотя бы в силу её объёма (она развалится раньше, чем вы дочитаете её до половины), здесь нужен полноценный офсетный тираж, желательно в жестком переплёте, и цена вопроса здесь может оказаться на уровне 250-300 тысяч рублей, а то и выше; такую сумму мне не потянуть.
Можно было бы обратиться к издателям; скорее всего, мне удалось бы найти кого-нибудь, кто согласился бы заключить со мной так называемый договор авторского заказа и даже заплатил бы мне какой-нибудь символический гонорар. Но дело тут не в гонораре. Распространение такой книги в электронном виде, как я делаю это со всеми своими книгами, оказалось бы тогда полностью исключено; прочитать книгу можно было бы либо только на бумаге, либо, что ещё хуже, купив электронную версию. Такой вариант противоречит моим убеждениям; в частности, я глубоко убеждён, что платить за электронные книги можно разве что электронными же сканами денег.
Прежде чем окончательно отказаться от своей идеи, я хочу попробовать последнюю возможность, которую вижу: модный в последнее время краудфандинг.
Итак, я обращаюсь к своим читателям и другим гостям сайта с просьбой потратить немного времени, чтобы оценить проект книги «Программирование: введение в профессию». На странице, посвящённой проекту, вы найдёте, в частности, подробный план-проспект будущей книги и финансовое обоснование проекта. С благодарностью принимаются любые пожертвования размером от одного рубля; донорам я могу предложить ряд вознаграждений, как нематериальных, так и вполне осязаемых в знак признательности за поддержку проекта.
В конце концов, давайте уже, наконец, покажем копирайтным паразитам (чьё время давно прошло), что мы можем жить без них.
Просто хочется
Просто хочется выразить человеческое спасибо за ваши труды!
С удовольствием дочитал первую книгу и не планирую останавливаться.
Финансирование проектов
Есть маленький вопрос - а не рассматривали ли Вы возможность использовать для получения необходимых средств разницу курсов рубля и доллара (60/1) - чем больше она, тем проще набрать средства в стране со "слабыми" деньгами: если, скажем делать книжки двуязычными или мультиязычными из 5-6 европейских и не только, языках (найдя переводчиков, скажем, в МГУ) и принимая пожертвования в валюте, то можно набрать нужные суммы быстрее?
_________
Даже применение пакета parallel для LaTeX уже позволит сверстать такую книжку, на двух языках. А если озаботиться и написать свой пакет, то можно из единого исходника генерировать локализованные PDF, либо же локализованный XML дизайнеров из типографии - с помощью xmltex, jadetex, passivetex.
Вряд ли
По-моему, это путь совершенно тупиковый. Сам я могу сделать перевод разве что на английский, причём моего upper intermediate заведомо не хватит на создание грамотного англоязычного текста, учитывающего смысловые нюансы (а ни в каком другом виде я бы его видеть на английском не хотел). Ну а услуги профессиональных переводчиков, во-первых, стоят настолько до чёрта, что это повысило бы бюджет проекта в разы, и, во-вторых, как ни странно, даже профессиональный перевод не всегда бывает адекватным.
В общем и целом, утопия какая-то :-)
Поиск по тексту
В ваших пдфках (полагаю всех) текстовый слой из кракозяблов. Поиск в таком случае не возможен. В новой большой книге на 1000 страниц проблема начнёт выпирать. Планируете ли исправлять ситуацию?
Про все пдфки
Про все пдфки вы абсолютно правы, причём, как уже говорилось, это сделано намеренно. В принципе, я не вижу здесь большой проблемы, бумажными книгами люди как-то пользуются без поиска.
Иной вопрос, что эта новая книга принадлежит не одному мне, но и всем тем, кто пожертвовал деньги на её создание. Так что да, здесь нужно будет подумать.
Вопросы
1. Почему краудфандинг не через спец. сайты, такие как планета.ру?
2. Я так понял, что проект будет продвигаться по мере поступления денег, что будете делать если деньги будут приходить очень редко и в очень малом количестве?
3. Почему бы не объявить дату завершения сбора средств, после которой станет ясно увидит проект мир или нет?
4. Будет ли сделан какой-нибудь Live дистр. Linux (ведь мало кто захочет сносить свою ОС, особенно когда не знаешь как устанавливать ОС)?
5. Хотелось бы видеть какие задачи будут разбираться в учебнике? Какие будут для самостоятельного решения? В каком виде будут ответы на задачи (ведь надо как-то убедиться что ты верно решил задачу)?
6. Почему уделено так много внимания программированию терминала?
Спасибо за вопросы
Отвечаю по порядку.
1) Среди краудфандинговых сайтов я не нашел ни одного, на котором официальные условия использования показались бы мне сколько-нибудь приемлемыми. Вот, в частности, планета: http://planeta.ru/welcome/private-info.html пункт 3, подпункты 3.4--3.9. За такое надо по меньшей мере четвертовать. Я уже молчу о том, что работать при отключённом JS они все как один категорически отказываются.
2) В этом случае проект будет реализован частично. Например, части предполагаемой книги, которые посвящены Паскалю и Си, могут быть изданы как отдельные книги; если придётся пойти этим путём, то доноры, успевшие прислать деньги, будут соответствующим образом перечислены в качестве спонсоров такой книжки. С подарочными экземплярами тоже что-то придётся придумать.
3) Я затрудняюсь указать такую дату. У вас есть конкретные предложения?
4) Хорошая идея, спасибо. Во всяком случае, я на эту тему подумаю.
5) Составление задач и примеров — это часть работы. Пока эта часть работы не выполнена (ну, кроме C++, там уже всё есть)
6) Предполагается, что для читателя книги, решившего по ней освоить программирование, командная строка станет (по крайней мере на время обучения, но скорее всего в итоге навсегда) основным средством работы с компьютером. В этой ситуации вопросы "а как сделать вот это, вот то и вон то" у учеников возникают практически всегда. Если же известно, что вопрос возникнет, то лучше дать на него ответ в книге. Кроме того, если говорить про собственно termios и ncurses, то было бы странным не объяснить читателю, как сделать на Си то, что он раньше делал на Паскале (с помощью модуля Crt), а эти возможности, в свою очередь, очень полезны для, во-первых, освоения циклов, и, во-вторых, возможность написать какую-нибудь простенькую полноэкранную игрушку на ранних стадиях обучения — просто бесценна. Так что паскалевский Crt нужно рассказывать по-любому, а значит, не упомянуть ncurses в рассказе о Си уже просто никак нельзя.
Update: Поскольку вопрос о том, что будет, если сумма не соберётся, как оказалось, беспокоит не только Вас (мне тут в джаббере ещё двое задали тот же вопрос), я на эту тему написал отдельную страничку: «А если не получится».