Как я писала книгу Python для сетевых инженеров
Этот пост не только о том как я писала книгу, но и о том как я пришла к программированию.
Как всё начиналось
Несколько лет назад я решила, что надо бы заняться программированием. Я считала и считаю, что это важный навык для инженера. Я начала читать книжки по Python, решать задачки. Через какое-то время забросила. Так повторялось два-три раза.
Забрасывала иногда потому что уставала от того, что всё как-то непонятно, иногда потому что непонятно было как всё это применить к реальной жизни. Периодами находили настроения, что мне просто “не дано” и всё. Конечно, сейчас для меня это выглядит странным, но так было.
За это время я немного нахваталась основ, немного порешала задачек. Но процесс не особо двигался вперед и не было понимания куда двигаться.
Но всё изменилось, когда я стала применять это к практическим вещам: к обработке конфигураций, генерации шаблонов и подобного. Даже выдуманные примеры, которые были просто связаны с сетевой сферой, помогали очень сильно. Они давали практическую направленность происходящему. Плюс, из-за того, что это была реальная ситуация, реальные данные, многое развивалось само по себе.
Несомненно, свою роль сыграло и то, что я уже немного разобралась с основами. Но главное было то, что теперь программирование было связанно с реальной жизнью, с реальными примерами и задачами.
Это был такой заметный эффект, что когда я сама уже поднатаскалась в Python, мне захотелось поделиться этим. Так родилась идея книги.
Начало
Я придумала содержание книги и начала его писать. Конечно в итоге многое изменилось, так как в процессе написания приходило понимание какие темы надо добавить, какие убрать.
Потом я начала придумывать короткое название. А когда придумала решила загуглить его, чтобы не попасть в существующее. И, конечно загуглила заодно и полное название курса на английском и русском. И тут оказалось, что моя идея совсем даже не оригинальна :) А я думала, что это придумала такую крутую и оригинальную идею.
С другой стороны, на русском ничего подобного не было. Плюс, те материалы, которые были на английском, почти все, были платными.
К концу 2015 года были написаны несколько разделов. По большей части по основам языка.
Первый онлайн курс
И тут в январе 2016 мне пишет Павел Пасынок с вопросом о статье на xgu.ru (там раньше размещалось содержимое книги). В итоге разговора выясняется, что у отдела Павла есть конкретные задачи по Python, а у меня желание прочитать курс по Python людям, которым это нужно. Мы договариваемся, что я прочитаю бесплатно курс в обмен на отклик о том, что в итоге получилось сделать с этими знаниями.
Можно сказать, что сам курс это отдельная история. Но, так или иначе, он помог мне убедиться, что это всё действительно нужно и правильная затея.
И этот курс определил то, что если я буду читать этот курс онлайн или офлайн, я не хочу читать его как стандартные курсы 5 дней подряд. То, как мы занимались на этом первом курсе было идеально - по выходным, в сб-вс по 4 часа. Я видела по решениям заданий, что уровень знаний у ребят растет. И, хотя иногда информации всё же получалось многовато, так было намного проще её усвоить, чем в пятидневном курсе.
Тогда я ещё наивно полагала, что закончу книгу к лету. Но потом наступил отличный проект “CCIE за год” и надежда пропала :)).
И хотя я работала над книгой достаточно много с сентября 2016, я всё равно закончила намного позже, чем я ожидала. Главным образом, потому что написала больше, чем думала изначально. Часть книги откололась в отдельную книгу по Ansible.
GitBook
Главное событие конца сентября - я нашла для себя GitBook. Я рассматривала пару вариантов подобных платформ, но GitBook для меня победил все. В нём всё очень удобно, аккуратно, никаких лишних баннеров, рекламы и так далее. Для меня было важно, чтобы можно было писать в markdown или wiki формате. Чтобы были разные итоговые форматы, как минимум, PDF. И тут было абсолютно всё из этого. А после обнаружения синхронизации в GitHub, было решено, что платформа для книги найдена.
И, хотя я думала, что закончу в середине января и накидывала при этом пару недель запаса, я закончила только в феврале. При этом январь был совершенно ударным, но и это не помогло :).
После завершения книги, его нужно было перечитать. Я думала, что только один раз )
На прочитку ушла неделя. Я проверяла текст и задания на явные ошибки и поисправляла всё, что нашла. Продолжила сочинять задания и тут внезапно мне бросилось в глаза, что текст написан не от третьего лица.
Конечно, кому-то может показаться это не таким уж важным аспектом. Но всё же, я пишу статьи уже порядка десяти лет и привыкла писать от третьего лица. Но этой темой я настолько болела, что не заметила, что периодически срывалась на “мы, вы и нам” и писала так, например, целый раздел.
Привет прочитка номер два
Я решила, что раз мне предстоит читать всё ещё раз, то я для начала почитаю советы по написанию технической литературы. В итоге, у меня родился чеклист, по которому я проверяла весь текст. Это была очень полезная прочитка. На неё опять ушла неделя, но я многое переформулировала в лучшую сторону, убрала все лишние “мы” и “вы”.
Во время этой прочитки, я полюбила vim с новой силой. Мне никогда не приходилось редактировать такое количество текста в нем. И, хотя я это знала теоретически, но в этот раз я на практике увидела насколько крут vim в редактировании. Даже учитывая то, что я не супер пользователь vim, моих знаний хватало, чтобы выполнять редактирование очень быстро. У меня никогда не было ощущения, что мне надо именно править текст, скорее мне надо было придумать как переделать его, а само редактирование происходило незаметно.
Я писала в анонсе книги, что использовала vim для написания курса. Одну составляющую я описала - в нём очень удобно редактировать текст. Но вторая, не менее важная для меня - в нём нет ничего лишнего. Поясню.
Я люблю работать в черном окошке :)
Вообще-то в сером, а точнее в #3F3F3F :)
Я люблю работать так, чтобы меня ничего не отвлекало. У меня выключены мессенджеры, звук на телефоне, всё, что может отвлечь. Но, даже лишние окна в браузере или какие-то открытые приложения могут отвлечь. Например, если оставить открытым телеграм, то я вижу его значок краем глаза и мне автоматом лезут мысли кому можно написать и поболтать. Если у меня открыта вкладка со статьей, которую я хочу прочитать, я вижу её и начинаю про неё думать. Аналогично и с интерфейсом редактора - если в редакторе много всяких фич, окон, дерева файлов, они меня отвлекают.
Тут надо пояснить, что речь о концентрированном написании текста, а не о поиске материалов или подобном. Конечно, когда я ищу какую-то информацию, у меня открыто куча окон и я могу бродить туда-сюда по ним и файловой системе.
Но, когда я пишу, надо чтобы ничего лишнего не было. Аналогичная ситуация у меня и с кодом. Например, если я включаю подсказку по синтаксису, которая выпадает, когда я набираю код, я работаю намного менее эффективно.
И, как оказалось, для писателей, даже есть редакторы и приложения, в которых есть специальный режим, который отключает всё и остается только окно для текста. Значит такой эффект не только у меня.
Вот в этом контексте мне очень нравится vim. В нем есть только текст или код и всё. Конечно у меня установлены всякие плагины. Но, когда мне надо сосредоточенно поработать, у меня они все выключены.
Конечно, я не говорю, что все всё бросайте и идите пишите в vim :) Но это то, что лично для меня очень важно и очень влияет на продуктивность.
Статистика
И под конец, немного статистики.
Я пользуюсь Toggl для того чтобы засекать сколько времени я потратила на задачу. И всегда записываю только чистое время. Правда, изредка я выпадаю и не пользуюсь Toggl, но за период написания курса такое было разве что один месяц. Так что, скорее всего, времени было потрачено всё же немного больше.
На момент публикации этого поста, на книгу “Python для сетевых инженеров” было потрачено 644 часа. Ниже, отчеты Toggl по годам.
В 2016 хорошо видно, когда начался проект “CCIE за год” (апрель) :)
Спасибо всем за отклик!
Когда так долго что-то пишешь, иногда сомневаешься будет ли это кому-то нужно. А это самый большой писательский проект, который у меня был. Поэтому, я очень рада тому какая реакция была на книгу. Рада, что многим она будет полезной и что многим она интересна. Спасибо большое всем за отклик!