Написал книгу по C#

6 лет назад у меня появилась мечта — написать книгу по языку программирования C#. Приключение затянулось на долгие годы и я наконец-то сдаю первый том. Здесь расскажу общий концепт, ключевые идеи и сложности с которыми столкнулся.

b27cdd4f350063b9453172078c2f53c2.png

Как всё началось

В 2018-ом году я начал сбор денег на краудфандинге для написания своей книги по программированию на C#. Месяц я боролся как лев и мы собрали 85 000 рублей!

Радости моей не было предела.

Это было 6 лет назад, мне было 20 и я был молод и горяч и за пол года написал основную массу текста…, а потом наступил творческий кризис. За что мне очень стыдно.

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

Про краудфандинг

В те года это было модным и собрать деньги была возможность даже если у вас нет аудитории. Сейчас краудфандинг скорей мёртв чем жив.

Про что книга

Книга про программирования на C#… для новичков… построенная вокруг практики.

На самом деле это и был изначальный концепт, хотелось дать базу языка на примере практических задач при этом рассказав про паттерны и здоровое проектирование. Когда я начинал писать книгу у меня было всего 4 года коммерческого опыта, но хорошего с Code Review и толковыми наставниками. Но всё-таки книга не откровение для опытных.

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

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

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

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

Абстракция

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

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

Как по мне это самая база которая часто пропускается другими авторами.

Сложности

Изначально я писал книгу в Google Docs. Это оказалось не очень удобным и в дальнейшем я переехал на Wordpress. Да я просто развернул вордпресс и там писал книгу отдельными постами которые сгруппировал в иеерархию.

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

В дальнейшем я выдернул все посты обратно в Google Docs и подсветил код инструментов Code Block.

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

Итог

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

Рекомендую попробовать каждому разработчику написать свой небольшой учебник страниц на 200 на какую-нибудь тему.

Свою книгу я в итоге собрал в PDF и бесплатно выложил у себя в телеграмме — посмотреть

После публикации мне написало несколько издательств, может даже удастся выпустить бумажную версию чтобы будет очень круто. :)

Habrahabr.ru прочитано 4569 раз