У меня наконец есть проблема, которая подходит для Elixir гораздо больше, чем для Ruby on Rails.
Добро пожаловать в первую программу Coding Spectacle - я Spec (сокращение от Spectacle), и вы, возможно, догадались, что я программирую на Ruby.
В этой статье мы рассмотрим:
- Какие проблемы я пытаюсь решить ✍️
- Что мешало мне изучать эликсир в прошлом 😔
- Как я собираюсь выучить это раз и навсегда 💪
Я запустил канал twitch в ноябре 2020 года, что было частью задачи по списку желаний, и у меня все получалось довольно плохо, пока… я не начал делать интерактивные викторины, написанные на Ruby on Rails. Я все еще крошечный стример, потоковое воспроизведение игр 20-летней давности - это ниша, но люди остаются ради моих картинок и викторин - я нашел своих друзей-фанатов Final Fantasy 🥳.
Самый популярный из них - это викторина по обнаружению изображений, квадраты медленно удаляются, и первый человек в чате, который напечатает правильный ответ, получает очки!
У меня большие планы на этот проект, и я хочу превратить его во что-то, что другие более мелкие стримеры также могут использовать для развития своих каналов. Это будут не просто викторины, но и небольшие мини-игры для чата, и я хочу сделать СУПЕР простой анимацию изображений, звуков, а также веб-камер в потоке на основе событий twitch.
Почему именно Эликсир?
Я смотрю на Elixir, потому что мне нужно что-то действительно хорошее:
- Управление подключениями к серверам чата Twitch
- Отличная поддержка веб-сокетов для оверлейного сеанса браузера.
Это основные потребности, которые делают Elixir подходящим, но что, как я думаю, делает Elixir еще более подходящим и, наконец, побудило меня изучить его должным образом, это:
- Нет необходимости запускать отдельный процесс Redis для поддержки веб-сокетов.
- Он может обрабатывать слишком много соединений без необходимости масштабирования
- Похоже, в нем есть потрясающие инструменты для мониторинга.
Все это дает мне душевное спокойствие, когда я думаю о создании этого продукта. В нем меньше хлопот, он более прозрачен и может управлять процессами.
Упрощение и удешевление инфраструктуры - ключевые моменты для меня.
Если кто-то добавляет определенные эмоции в чат, мы получаем более крупную вспышку на экране со звуковым эффектом на временной шкале, и я поставил их в очередь в браузере с помощью indexedDB, но это кажется неправильным способом сделать это! Я с нетерпением жду возможности сделать это в стиле Эликсира.
Это отличный момент. Я должен сначала изучить Эликсир !!!! И я не в первый раз пытаюсь…
Подбирая эликсир (снова…)
Я, должно быть, три или четыре раза пытался подобрать Эликсир, и мне не удавалось снова и снова по одним и тем же причинам, однако на этот раз я знаю, как их смягчить.
Усилие обучения
То, что я создавал, мне было намного проще построить в Ruby on Rails, поэтому усилия по созданию этого в Elixir не стоили того, и я сдавался через неделю или две. Да, строительство по-другому было в новинку, но я не замечал разительных отличий, и все шло очень медленно.
Мои ожидания полностью оправдались, я думал, что заработаю в считанные дни, бегло начну через пару недель, выбивая приложения Phoenix, как прототипы RoR - этого, очевидно, никогда не было, и когда это не проявлялось Я разочаровался и двинулся дальше.
Изучив учебные путешествия других людей, я думаю, что теперь это месяцы, а не дни! Я считаю, что это немного более реалистично, особенно потому, что у меня есть примерно 8 часов в неделю, чтобы посвятить это этому, поэтому мне нужно смотреть в будущее.
Большая картина
У меня есть цель помочь маленьким стримерам, и я пытаюсь развивать свой собственный стрим с помощью этого проекта. В этом проекте больше ставок, чем в любой побочной суете, которую я пробовал раньше, у меня есть небольшая аудитория на Twitch, которую я обожаю, потому что я могу тестировать свои творения и транслировать друзьям, чтобы получить отзывы о том, что должен делать продукт и как Улучши это.
Я не делаю этого в изолированном пузыре, в котором обычно кратковременно существуют мои идеи, где я могу сдаться, и всем плевать. Кажется, это прекрасная возможность использовать эти связи для обратной связи, и я очень рад этому элементу постепенного создания продукта.
Проблемы с обязательствами по проекту
У меня есть УЖАСНАЯ УЖАСНАЯ привычка отказываться от проектов в течение недель, дней или даже часов после их зачатия. Я всегда сдаюсь, когда становится немного сложно, но я нашел для этого способ.
Делайте что-то публично.
У меня была такая же проблема с видеоиграми. Я думаю, что единственной игрой, которую я когда-либо завершал, были микромашины в детстве на Sega Magadrive. Пока я не начал стримить!
С момента стриминга я завершил все игры, которые выбрал, потому что у меня есть люди, которые ожидают, что это будет сделано, и регулярные стримы, чтобы увидеть, как я продвигаюсь. Это своего рода причина для всей этой серии, чтобы попытаться применить ту же самую регулярную публикацию прогресса к ожидаемому кругу зрителей / читателей (даже если это только мои друзья).
Тем не менее, есть еще одна причина, по которой потоковая передача помогает завершить игры, и это потрясающая поддержка, которую я получаю, помощь и подсказки, которые помогут мне в сложных ситуациях. Так что мне все еще нужно придумать, как имитировать это для изучения эликсира, я слышал, что сообщество потрясающее, поэтому я посмотрю, смогу ли я опираться на них время от времени.
Я должен сделать небольшое признание. Еще в 2017 году у меня было несколько пачек https://elixircards.co.uk/, и я начал документировать, куда меня привело мое любопытство, пока я их использовал, но через MEASLY 7 дней я подошел с следующей идеей перейти на этот блог и отказом от этого блога, более слабый ход!
Я не осознавал, каким идиотом я был, пока годы спустя не нашел этот комментарий в одной из публикаций в блогах:
Я ЧТО-ТО БЫЛ ЗДЕСЬ и не знал об этом, я не дал ему времени, чтобы оно могло вздохнуть. Это еще одна мысль в моей голове, которая будет поддерживать меня. Мне до сих пор хочется думать об этом.
Но на самом деле как вы собираетесь изучать Эликсир?
Я собираюсь использовать несколько разных методов, которые, надеюсь, будут работать в гармонии друг с другом.
Обучение с интервалом повторения
Мне очень удалось использовать Execute Program для изучения современного JS, и я хочу сделать что-то подобное для Elixir.
Мне очень повезло, что я дружу с создателями эликсирных карт, и они подарили мне весь набор, когда мы в последний раз были у них. Поэтому я буду ежедневно учиться для них, просто собирая три стопки:
- знаю это
- вроде знаю это
- не знаю
Прорабатываю столько карточек за раз, пока все они не окажутся в стопке «знай это» (на которой я также буду регулярно проверять себя).
Ориентация на 10–15 минут в день за чашкой чая ☕.
Я воспользуюсь своим любимым трекером привычек Timecap.
- 🍎: https://apps.apple.com/us/app/timecap-time-habit-tracker/id1494584871
- 🤖: https://play.google.com/store/apps/details?id=com.ziggycrane.time
КНИГИ!
В золотой век рубиновых книг я проглотил их все! Я бы вкладывал деньги в P ragProg как можно быстрее, чтобы читать следующие, я даже просмотрел первую книгу эликсиров, теперь я думаю об этом, и я люблю снова разжечь это поглощение знаний с помощью Elixir.
Но я хочу сделать это помедленнее и на самом деле выполнять в них упражнения, по-настоящему попробовать, обдумать их концепции, самостоятельно исследовать части, делать заметки и писать обзоры для всех вас :)
Я начну с этих двух основополагающих книг.
Дайте мне знать, о каких еще книгах можно углубиться в комментариях!
Курсы
Я получил курс феникса от PragProg в прошлом году, я думаю, вижу, я пробовал это столько раз, чтобы научиться, что я прошел около часа. Так что у меня это есть, но если у вас есть еще какие-то рекомендации, дайте мне знать.
Решение небольших проблем
Мне очень понравилось работать с https://www.codewars.com/, когда я уже давно немного изучил Clojure, так что это, вероятно, будет моим источником для регулярной работы с дуршлагом.
Я пока не умею решать даже самые простые вопросы, я на этом уровне:
Я всегда хотел испытать и https://exercism.io/, так что это тоже на моем радаре!
Ваши рекомендации?
Есть ли что-то, что вы хотели бы, чтобы я попробовал, или ресурс, с которым вы добились успеха?
График «»
Возможно, вас это не волнует, но для меня мое время будет разбито на:
- Карты с эликсиром на 10 минут в течение дня
- 3x 2-часовых занятия перед работой над книгой или курсом
- 1x 2-часовая сессия перед работой над codewars / execism.io
Посмотрим, как это получится! Я буду накачивать здесь контент, пока буду учиться и пробовать разные вещи.
#BackseatingRequired
В моих сообщениях о кодировании не стесняйтесь поправлять меня, если я когда-либо делаю что-то некачественное.
Следуй за тобой?
Если вы хотите стать частью этого приключения со мной, вы можете:
- Следуйте по средству 🎉
- Поговори со мной в твиттере 📝
- Заходи ко мне на твич (см. Прототип / продукт в действии 💪)
Я тоже должен иметь список рассылки? Кто знает, может, когда-нибудь.
Спасибо за чтение, хорошего дня!
TTFN
Расширенная компьютерная визуализация моей головы после изучения Elixir: