Завершение вводной части

Как водится, у меня для вас две новости, одна хорошая (и даже, пожалуй, очень хорошая), а вторая просто отвратительная.

Хорошая состоит в том, что вводную главу я, кажется, закончил. Как водится, получилось длиннее, чем я ожидал, ну да ладно. Общий объём рукописи достиг 374 страниц; странички, содержащие оглавление в его текущем виде, для интересующихся прилагаю к посту.

Следующий этап работы — часть, посвящённая программированию на Паскале, и вот теперь мне, к сожалению, придётся сделать в работе серьёзный перерыв. Я уже пытался прервать работу в конце февраля — между частью про Си и вводной частью, но это у меня получилось, как все помнят, не слишком убедительно. Отчасти так получилось, потому что некоторые наброски для вводной части у меня уже были; отчасти — потому что финансирование тогда ещё в минус не ушло.

Между тем, сейчас ситуация другая. Часть про Паскаль обещает стать самым заковыристым этапом работы над книгой. Когда-то давно я вёл по этому языку (точнее, по Турбо-Паскалю) кружок, но это было больше двадцати лет назад; ежегодно мне приходится учить программировать на Паскале абитуриентов, но это тоже не совсем то: индивидуальные уроки всегда строятся в соответствии с потребностями данного конкретного ученика, это отличается от аудиторных занятий с группой или лекций для потока, а текст книги обычно походит скорее на лекции и семинары, нежели на то, что рассказывается на индивидуальном уроке.

Кроме того, общее количество времени, потраченного на книгу, сейчас составляет 231,5 часов; из расчёта 600 р/час это 138900 рублей. Учитывая, что 42600 р. было потрачено на создание резервов, проект нынче пребывает в глубоком и прочном «минусе» на сумму в 20200 р. Причём это ещё не самое страшное. На днях я навёл справки о текущей ситуации с типографско-издательскими услугами; результат можно описать двумя словами: "всё плохо". Абсолютно минимальное издание, которое просто позволит обеспечить спонсоров обещанными "плюшками", никак не получится сделать дешевле, чем за 150000 р., а что-то приличное начинается, как я и предполагал, при моём ожидаемом объёме рукописи примерно от 300000 рублей.

Факт тот, что с написанием рукописи теперь можно не торопиться: при имеющихся темпах поступления пожертвований издать её получится ещё не скоро. Да и мне, если честно, пора заработать немного денег, ведь впереди лето; в исходном финансовом плане я не зря заявлял компенсацию рабочего времени из расчёта 600 р/час, это хотя и в разы меньше, чем реально стоит моё время, но всё же, пока проект не ушел в минус, потребности в поиске подработок я не ощущал. А вот сейчас, увы, такая потребность вновь возникла и теперь уже вряд ли куда-то денется.

Итак, выложив на обозрение почтенной публики оглавление рукописи в её текущем состоянии, я на сей раз беру таймаут по-серьёзному. Выход проекта из гибернации на этот раз возможен по одной из трёх причин:

  1. внезапное появление у меня абсолютно свободного времени, которое нечем заполнить (вообще-то практически нереальная ситуация, если честно);
  2. прошествие большого количества времени; где-нибудь в сентябре-октябре я, скорее всего, решу, что рукопись пора дописывать, просто потому что нельзя же её навсегда оставлять в нынешнем состоянии;
  3. наконец, самый предпочтительный вариант — если опять пойдёт волна пожертвований, которая выведет проект из "минуса" и заставит меня поверить в то, что мне хватит денег на издание книги; такие вещи вообще очень сильно стимулируют, каждое свалившееся на счёт пожертвование приводит к обострению трудоголизма :)

Безотносительно всего этого негатива, хочу сказать огромное спасибо всем, кто принял участие в финансировании проекта.

Прикрепленный файлРазмер
full_contents.pdf194.16 кб

А почему

А почему Паскаль, а не Scheme/Lisp? Подготовка к Си?

admin аватар

Совершенно верно

Именно что подготовка к Си. В роли языка для начального обучения нужен такой язык, в котором (а) есть указатели, причём в полный рост, без всякой сборки мусора; (б) без указателей можно обходиться, пока обучаемый не окажется более-менее готов к их восприятию; и (в) начав использовать указатели, обучаемый расширит свои возможности, то есть в указателях должна быть реальная потребность.

Замечу, без пункта (в) можно было бы применять C++/STL, но когда уже есть всякие vector/list/etc, стимула для применения низкоуровневых указателей уже нет, соответственно умения самостоятельно создавать сложные структуры данных не появится никогда. А вот всем трём пунктам одновременно удовлетворяет только Паскаль, других таких языков я не видел.

В приниципе, можно было бы начать и с лиспоподобных языков, как это когда-то делали авторы SICP'а, но Паскаль потом всё равно придётся изучать — как переходную ступеньку к Си. Само по себе это ничем не плохо — начать с рекурсивного программирования, а потом уже переходить к фоннеймановскому, вместо того чтобы делать наоборот, как это обычно делается, вот только где найти такое количество преподавателей, готовых адекватно рассказать рекурсивное программирование.

Fortran

>А вот всем трём пунктам одновременно удовлетворяет только Паскаль, других таких языков я не видел.

А как же Fortran 90, например?

admin аватар

Что-то я сомневаюсь

Судя по описаниям, это не указатели, это монстры какие-то. Указатель и так концепция достаточно сложная, даже когда это просто "переменная, хранящая адрес области памяти, например, другой переменной". А тут (вот например тут), пардон, даже мне сложно понять, о чём идёт речь.

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

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

Даёшь Rust!

Даёшь Rust!

admin аватар

Штука интересная

Rust -- штука интересная, но сырая и уж точно не для начинающих. Там, если мне склероз не изменяет, сборка мусора; ну а заставлять новичков сходу писать с [nostd] или как там это в Rust'е называется, по-моему, малость перебор.

Таки уже нет

Таки уже нет

admin аватар

Вполне возможно

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

Почему же тогда

Почему же тогда не начать сразу с Си?

admin аватар

rtfm

Этот вопрос, как и мой ответ на него, подробно расписаны в статье Язык Си и начальное обучение программированию, там же довольно длинное обсуждение; прежде чем писать туда что-то ещё, просьба прочитать всё, что там уже есть, а ещё принять во внимание, что я не открываю на своём сайте комментарии, которые мне не интересны.

600 руб/час * 8

600 руб/час * 8 часов * 22 дня = 100800 руб/месяц

"это хотя и в разы меньше, чем реально стоит моё время"

"у меня самого денег на выпуск книги нет"

Мне кажется, Вы где-то лукавите.

admin аватар

работа над ошибками

Честно говоря, настолько занятно стало, что я даже решил этот коммент открыть, в смысле пропустить его через премодерацию.

Итак, начнём, пожалуй, со стоимости моего времени. Поищите в Интернете на сайтах по подбору репетиторов, сколько примерно стоит в Москве частный урок в исполнении университетского преподавателя, имеющего учёную степень и собственные авторские методики. Это будет, собственно говоря, реальная стоимость моего времени.

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

Впрочем, учитывая, что свой час я всё же обычно продаю не за 600 рублей, а существенно дороже — ваша оценка моих ежемесячных доходов не так уж далека от истины: в особо удачные месяцы у меня получается даже больше. Правда, такие месяцы бывают не так часто: частные уроки штука такая, сейчас они есть, завтра их нет. Это можно было бы скорректировать, активнее формируя клиентскую базу, там в какой-то момент количество переходит в качество и поток учеников становится самоподдерживающимся; но я вполне сознательно предпочитаю продавать меньше своего времени, чтобы иметь больше времени, например, на науку и философию. Если бы моей целью была максимизация дохода, я бы, наверное, всё-таки работал программистом, благо я это умею.

То, что большую часть своего времени я трачу, не получая за это денег, как можно догадаться, никоим образом не отменяет всего вышесказанного по поводу стоимости моего часа: эта стоимость определяется теми и только теми часами, которые я продаю. Если я их продаю мало (в сравнении с большинством ударников капиталистического труда), так это уже моё дело.

Ну и последнее, про то, что у меня "нет денег на выпуск книги". В принципе, если бы выпустить эту книгу было моей единственной целью, то деньги бы у меня нашлись, тут вы правы; но я, собственно, и не утверждал, что у меня вообще денег нет. Просто у меня нет вот конкретно на это и конкретно столько. Если бы "конкретно на это" нужно было, скажем, раз в десять меньше, у меня бы столько нашлось; с другой стороны, у меня, если слить все ликвидные активы, то наберётся, видимо, даже больше — просто я не готов грохнуть на этот проект все свои сбережения и даже сколь бы то ни было значительную часть таковых; равно я не готов взять и ухнуть на издание очередной книжки свои доходы за несколько месяцев. А почему, собственно, я должен быть к такому готов? Вы что, всерьёз полагаете, что у меня нет других интересов в жизни, ну там в Европу лишний раз съездить, или квартиру отремонтировать, или недостающие зубы вставить, словом, потратить деньги на себя, любимого?

Вообще, конечно, подсчёт денег в чужих карманах — дело изначально гнилое, и данный случай сие только подтверждает; но уж если занимаетесь подсчётами, стоит уметь чуть больше, чем перемножать целые числа.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".