В двух словах

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

Выводы: делать сайт с нуля сложно, но весело. Делать прямые эфиры сложно и не очень весело. Записанные и по-нормальному смонтированные видео и снимать, и смотреть гораздо удобнее.

Чтобы следить за следующими сериями, подписывайтесь на рассылку.

Предыстория

Писать в блог

В прошлом году мне в руки попалась книга Остина Клеона «Show Your Work». Это короткая, емкая и вдохновляющая книга о том, зачем и как вести блог.

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

Я несколько раз пытался сформировать привычку делиться контентом. Например, завел канал в Телеграме, сделал сайт, принял участие в челендже Content Hero. Бывает, что находит вдохновение и контент дается легко. А бывает, что другие дела засасывают и блог отправляется на дальнюю полку.

Например, в блоге я написал две статьи о Pandas. Я уже не помню, когда это было. Кажется в 2017 году. В своём канале я сначала писал про аналитику, но потом идеи кончились. Подписался на Content Hero. Там все участники обязуются в течение 30 дней публиковать хотя бы по одному посту. Написал пару неплохих заметок про философию, но потом челендж закончился, и посты вместе с ним.

В общем, сформировать привычку не удалось.

Создавать продукты

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

Ну как завидовал. В принципе, именно работать программистом часто, вроде бы, довольно скучная работа. Но мне всегда казалось, что уметь прям взять и своими руками реализовать идею в продукте — очень крутая суперсила.

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

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

Документировать процесс

В Show Your Work есть одна мощная идея:

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

В декабре 2021, незадолго до начала новогодних праздников я подумал: «А почему бы мне не научиться делать сайты в прямом эфире?».

Еще полгода назад мне на глаза попалась другая книга, Test Driven Development with Django, в которой по шагам показывают, как написать сайт на Python. Я придумал, что могу идти по книге, делать задания, снимать процесс на видео и выкладывать на Youtube. Только, чтобы было интереснее, вместо примеров из книги, я решил сразу делать свой продукт. Например, переделать свой старый сайт.

С одной стороны, идея захватывающая, но с другой — страшная до ужаса.

Страшно опозориться

Я люблю нравиться. Поэтому мне некомфортно от мысли, что я вот так прям публично заявлю о том, что я чего-то не знаю. Вернее даже не заявлю, а очень наглядно продемонстрирую. Как же так, я весь такой эксперт, курс по Python продаю, а сайты делать не умею.

Но в книге и на эту мысль нашелся ответ:

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

Ну не понравятся кому-нибудь мои видео, ну отпишутся они от меня. Ну что ж теперь поделать. В общем, сделать и пожалеть круче, чем не сделать и пожалеть.

Снимаем сериал

В конце декабря сделал анонс в телеграм-канале: за новогодние праздники хочу научиться делать сайты с помощью Python и Django и планирую показывать весь процесс в прямом эфире на Youtube.

Первый эфир вышел 2 января, как только закончилась активная часть новогодних праздников. Потом я старался держать темп и выпускать один эфир раз в два дня.

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

Так выглядел сайт, когда я «доделал блог». Сайт умел сохранять статьи в базу данных и показывать их на экране. Но оформления сначала никакого не было.

Стало очевидно, что за праздники сайт доделать не получится, придется продолжать параллельно с моей работой. Но в будни делать и смотреть прямые эфиры сложно, ведь вернулась основная работа. Я, конечно рано встаю, и могу выходить в эфир в 8 утра, но, кажется, смотреть вживую это никто не будет. Поэтому решил отказаться от лайвов и вместо этого записывать прогресс на видео и продолжать выкладывать. Так получились 5 и 6, 8 и 9 эпизоды.

В итоге получилось 10 эпизодов: 6 лайвов и 4 в записи. Cуммарное время эфиров около 20 часов (там где-то час я отрезал при монтаже записанных видео). Я работал над сайтом только перед камерой. В оффлайне только иногда почитывал документацию, чтобы совсем уж не тупить.

За это время у меня получилось пройти путь от пустого экрана до полноценного блога, написанного на Django, полностью покрытого функциональными и unit-тестами, с автоматизированным деплоем. Собственно эту статью я уже опубликовал в новый блог, так что вы сейчас видите результат трудов.

Чему я научился

Делать сайты сложно, но весело

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

Работая с готовыми платформами, привыкаешь к процессу «клик-клик, сохранить, готово, оно в интернете». Даже не задумываешься о том, что там происходит под капотом.

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

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

Делать прямые эфиры сложно и не очень весело

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

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

Мой сетап: Macbook Pro, камера Sony a6400 с телесуфлером Pixaero, микрофон Shure MV7, Elgato Stream Deck

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

А эти «не так», естественно, постоянно возникали.

Например, при съемках второго эпизода, я пару раз забывал переключить экран. Объясняю: «а вот тут, смотрите, мы вводим такую команду и получаем такой-то результат». А зрители при этом видят просто мое лицо. Упс:(

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

Хорошо хоть, код видно

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

Cтрах опозориться

Когда планировал проект, я боялся опозориться. Оказалось, что я боялся не совсем безосновательно. Как только я начал публиковать видео в телеграм-канале, люди начали довольно активно отписываться.

За время эфиров от меня отписались 100 с лишним человек

Когда я смотрел на график, я, конечно же сразу рационализировал: «Это нормально! Я давно ничего не писал, за это время ко мне случайно подписались сколько-то людей, а теперь я начал активно постить, и они поняли, что контент не для них».

Рационализация — это, конечно, хорошо, но смотреть на растущий график гораздо кайфовее. В Телеграме в итоге отписалось чуть больше 100 человек то есть около 5% аудитории. Обидно!

Но, с другой стороны, на Youtube-канал добавилось тоже около 100 человек. Так что поди разберись.

На самом деле, я предполагал, что такой контент, наверняка, будет бесить 10%, оставит равнодушным 70–80% и очень хорошо зайдет другим 10%. Кажется, так и случилось. Я вижу по отзывам и комментариям к видео, что некоторым людям они очень даже полезны. Это самое кайфовое!

Что дальше

Этот пост — это как бы финал «первого сезона», в котором я прошел путь от полной пустоты до работающего в интернете блога.

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

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

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

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