И так, продолжаю рассказывать о том, как я создавал своего бота.
❗️ Внимание: здесь будет много технички, но я постараюсь объяснить всё просто.
Первую версию бота я сделал с помощью Symfony, MySQL, RabbitMQ и Docker.
• Symfony на тот момент я знал не очень хорошо. Подключил к нему Doctrine для работы с базой данных MySQL, Messenger для связи с RabbitMQ и использовал пакет boshurik/telegram-bot-bundle для создания Telegram-бота.
• MySQL выбрал по привычке с прошлых проектов на Bitrix. Создал две таблицы: User и Key. Потом добавил третью — Server. Решил, что всё должно быть анонимно, поэтому собирал только Telegram ID пользователей. Позже добавил поля Email (для отправки электронных чеков) и Language (для поддержки разных языков).
• RabbitMQ использовал для обработки очереди сообщений от пользователей и рассылок.
• Docker применял для разработки на своём компьютере, и первая версия бота работала внутри контейнера. Сейчас всё переехало на Kubernetes (k8s).
🎶 После покупки домена арендовал два сервера: один для бота, другой для Outline. Сначала установил Outline через Outline Manager на DigitalOcean, но потом пришлось переехать на другой хостинг по двум причинам:
1. Лимит трафика: 7000 пользователей очень быстро его сжирали.
2. Нарушение правил хостинга: какой-то"хрен" 🤬 начал качать торренты через сервер, за что мне от DigitalOcean прилетело "письмо счастья" на почту. Хорошо, что это было лишь предупреждение, а не штраф)
Интегрировать Symfony с Outline оказалось несложно благодаря открытому коду последнего и хорошей документации по API. Но пришлось дорабатывать функционал, так как изначально нельзя было отключать и включать выданные ключи. Поэтому я освежил свои знания по Node.js и начал изучать TypeScript.
Схема работы получилась следующая:
1. Пользователь пишет боту сообщение или вводит команду /start.
2. Telegram отправляет данные на мой webhook, который обрабатывается с помощью boshurik/telegram-bot-bundle.
3. Пакет вызывает событие UpdateEvent, которое я обрабатываю и отправляю пользователю сообщения с кнопками.
4. Когда пользователь нажимает кнопку “Получить ключ”, бот обращается к API Outline, выдаёт ключ и сохраняет его в базе данных. База данных служит как кэш, чтобы ускорить работу.
В следующий раз расскажу подробнее про трудности, с которыми столкнулся, и как я их решал😉
Если вам интересно — ставьте лайк!👍
Первую версию бота я сделал с помощью Symfony, MySQL, RabbitMQ и Docker.
• Symfony на тот момент я знал не очень хорошо. Подключил к нему Doctrine для работы с базой данных MySQL, Messenger для связи с RabbitMQ и использовал пакет boshurik/telegram-bot-bundle для создания Telegram-бота.
• MySQL выбрал по привычке с прошлых проектов на Bitrix. Создал две таблицы: User и Key. Потом добавил третью — Server. Решил, что всё должно быть анонимно, поэтому собирал только Telegram ID пользователей. Позже добавил поля Email (для отправки электронных чеков) и Language (для поддержки разных языков).
• RabbitMQ использовал для обработки очереди сообщений от пользователей и рассылок.
• Docker применял для разработки на своём компьютере, и первая версия бота работала внутри контейнера. Сейчас всё переехало на Kubernetes (k8s).
1. Лимит трафика: 7000 пользователей очень быстро его сжирали.
2. Нарушение правил хостинга: какой-то
Интегрировать Symfony с Outline оказалось несложно благодаря открытому коду последнего и хорошей документации по API. Но пришлось дорабатывать функционал, так как изначально нельзя было отключать и включать выданные ключи. Поэтому я освежил свои знания по Node.js и начал изучать TypeScript.
Схема работы получилась следующая:
1. Пользователь пишет боту сообщение или вводит команду /start.
2. Telegram отправляет данные на мой webhook, который обрабатывается с помощью boshurik/telegram-bot-bundle.
3. Пакет вызывает событие UpdateEvent, которое я обрабатываю и отправляю пользователю сообщения с кнопками.
4. Когда пользователь нажимает кнопку “Получить ключ”, бот обращается к API Outline, выдаёт ключ и сохраняет его в базе данных. База данных служит как кэш, чтобы ускорить работу.
В следующий раз расскажу подробнее про трудности, с которыми столкнулся, и как я их решал
Если вам интересно — ставьте лайк!
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍18🔥4🤮1
Думали, я пропал? А нет... (наебал 😉 )
Продолжаем! Первые трудности... 🚧
После резкого наплыва пользователей, к которому я не был готов, пришлось открывать новые серверы. 💻🌐
Как я писал ранее, поначалу я использовал Digital Ocean. Там одна нода (сервер) держала достаточно много пользователей, но нужно было переезжать по двум причинам:
1️⃣ Ограничение трафика. Пользователи быстро его сжирали. Поэтому я создавал новые ноды. 📈💥
2️⃣ Нарушение правил. Пользователи качали торренты, из-за чего мне прилетело "письмо счастья" и попросили молча закрыть серверы. 📩🚫
Проблема первая: Поиск серверов. 🔍🖥
Нужно было найти хостинг с VPS/VDS с безлимитным трафиком и где не будут придираться. Для этого пришлось прошерстить законодательства на предмет штрафов за пиратский контент. Я выбрал 🇳🇱Нидерланды. Затем искал хостинг, где будет хороший канал связи минимум 100 Мб/с. ⚡️
Через неделю я арендовал первый сервер. Написал скрипт для переноса ключей пользователей. Запустился! 🚀
Проблема вторая: Высокая нагрузка. 📊🔥
Оказалось, что сервер не может выдержать такое количество пользователей. Я начал арендовать новые серверы и постепенно перекидывать туда пользователей. Опытным путем выяснил, что один сервер (самый дешевый) выдерживает примерно 500 пользователей. На тот момент база состояла примерно из 1000 пользователей. Напомню, что в день приходило примерно по 250–400 новых пользователей. Поэтому каждый день я после работы открывал новые серверы и перенастраивал бота, чтобы у новых пользователей создавались ключи уже на новых серверах. 😅🛠 В какой-то момент я сразу создавал несколько серверов с заделом на будущее. Тогда бот еще не умел автоматически балансировать нагрузку по выпуску ключей, поэтому приходилось все делать вручную. 🤖👐
Проблема третья: Финансы. 💰💸
Так как бот был бесплатным, я не хотел оплачивать все из своего кармана. Поэтому было решено создать рассылку для сбора донатов и отправлять ее раз в месяц. В итоге донатов вполне хватало, чтобы окупать всю инфраструктуру, и проблема была решена. 🎉🙏
Проблема четвертая: Время. ⏰⌛️
Из-за того, что рост был слишком быстрым, открытие новых серверов и постоянная перенастройка бота занимали много времени. В какой-то момент я просто устал от этого и решил все автоматизировать. Арендовал еще несколько серверов, но уже с лучшей конфигурацией. Дописал бота, чтобы он научился балансировать нагрузку. Тогда это работало на основе количества выпущенных ключей на сервере. Бот искал сервер с минимальным количеством ключей и создавал новый ключ на нем. 🤖⚖️
Сейчас этот алгоритм работает еще более хитро. В итоге это сократило мое время на поддержку бота в разы. 🥳⏳
О других проблемах расскажу в следующий раз! 😉
Пишите комментарии, о чем еще хотели бы узнать, и ставьте лайки! 👍❤️
Продолжаем! Первые трудности... 🚧
После резкого наплыва пользователей, к которому я не был готов, пришлось открывать новые серверы. 💻🌐
Как я писал ранее, поначалу я использовал Digital Ocean. Там одна нода (сервер) держала достаточно много пользователей, но нужно было переезжать по двум причинам:
1️⃣ Ограничение трафика. Пользователи быстро его сжирали. Поэтому я создавал новые ноды. 📈💥
2️⃣ Нарушение правил. Пользователи качали торренты, из-за чего мне прилетело "письмо счастья" и попросили молча закрыть серверы. 📩🚫
Проблема первая: Поиск серверов. 🔍🖥
Нужно было найти хостинг с VPS/VDS с безлимитным трафиком и где не будут придираться. Для этого пришлось прошерстить законодательства на предмет штрафов за пиратский контент. Я выбрал 🇳🇱Нидерланды. Затем искал хостинг, где будет хороший канал связи минимум 100 Мб/с. ⚡️
Через неделю я арендовал первый сервер. Написал скрипт для переноса ключей пользователей. Запустился! 🚀
Проблема вторая: Высокая нагрузка. 📊🔥
Оказалось, что сервер не может выдержать такое количество пользователей. Я начал арендовать новые серверы и постепенно перекидывать туда пользователей. Опытным путем выяснил, что один сервер (самый дешевый) выдерживает примерно 500 пользователей. На тот момент база состояла примерно из 1000 пользователей. Напомню, что в день приходило примерно по 250–400 новых пользователей. Поэтому каждый день я после работы открывал новые серверы и перенастраивал бота, чтобы у новых пользователей создавались ключи уже на новых серверах. 😅🛠 В какой-то момент я сразу создавал несколько серверов с заделом на будущее. Тогда бот еще не умел автоматически балансировать нагрузку по выпуску ключей, поэтому приходилось все делать вручную. 🤖👐
Проблема третья: Финансы. 💰💸
Так как бот был бесплатным, я не хотел оплачивать все из своего кармана. Поэтому было решено создать рассылку для сбора донатов и отправлять ее раз в месяц. В итоге донатов вполне хватало, чтобы окупать всю инфраструктуру, и проблема была решена. 🎉🙏
Проблема четвертая: Время. ⏰⌛️
Из-за того, что рост был слишком быстрым, открытие новых серверов и постоянная перенастройка бота занимали много времени. В какой-то момент я просто устал от этого и решил все автоматизировать. Арендовал еще несколько серверов, но уже с лучшей конфигурацией. Дописал бота, чтобы он научился балансировать нагрузку. Тогда это работало на основе количества выпущенных ключей на сервере. Бот искал сервер с минимальным количеством ключей и создавал новый ключ на нем. 🤖⚖️
Сейчас этот алгоритм работает еще более хитро. В итоге это сократило мое время на поддержку бота в разы. 🥳⏳
О других проблемах расскажу в следующий раз! 😉
Пишите комментарии, о чем еще хотели бы узнать, и ставьте лайки! 👍❤️
1👍7❤3
К чему был этот великолепный мем в предыдущем сообщении 🤪 ?
Когда я начинал вести этот канал, мне искренне казалось, что научиться кодить — проще простого. А если ещё и подключить ментора (в данном случае в роли которого выступал я), то процесс обучения должен был идти как по маслу. 😄
Но, оглядываясь назад и анализируя полученный опыт, понимаю, что допустил немало ошибок. Давайте разберем основные из них:
1. Мотивация 📉
99% людей не завершат обучение из-за недостаточной мотивации. И это моя ошибка, ведь я не смог её правильно донести. Есть множество способов поддерживать мотивацию: игровые механики, поощрения, плотное общение с аудиторией, а также платное обучение и другие. На тот момент я не знал о многих из этих методов, а брать плату за обучение мне не хотелось по следующим причинам:
• Изначально ко мне обратились мои друзья с просьбой помочь им научиться. С друзей брать деньги, конечно же не хотелось
• Просить деньги у новой аудитории было бы нечестно, ведь я сам не знал, как пройдет этот эксперимент.
• И главная причина: «Кто я такой, чтобы брать за это деньги?». Ведь меня практически никто не знал, не было уверенности, что я смогу кого-то обучить и где гарантии, что результат будет? 🤷♂️
2. Неправильная оценка сроков выполнения заданий ⏳
Я рассчитывал, что одну домашку можно сделать за неделю. Но на практике её почти никто не выполнял, а если и выполняли, то это занимало намного больше времени. В результате участники стали терять интерес. 🙈
3. Неправильная подача информации 📝
Большинство материалов я просто давал в виде ссылок на статьи. За редким исключением я проводил стримы на YouTube или писал свои статьи (кстати, ими до сих пор пользуются новички). Вот пример одной из статей: Git для начинающих.
4. Не научил правильно мыслить 🤔
Объём информации, который нужно знать, действительно огромен, поэтому стоило с самого начала подавать её ещё более мелкими порциями и научить вас разбивать задачи на более мелкие. Тут Дуров недавно подметил эту мысль очень правильно:
Один мой хороший друг однажды сказал:
Поэтому мой вам совет: выделите для себя комфортное время на выполнение одной мелкой задачи и используйте это время, чтобы не перегружаться и сохранять мотивацию! 🚀
А теперь вопрос к вам: 🤔
Что бы вас мотивировало сменить вашу профессию на программиста? 🧑💻
Свои версии можете смело оставлять в комментариях!
⚠️ Только давайте без упоминания зарплаты — эта мотивация, как выяснилось, работает не так эффективно, как кажется на первый взгляд. 😅
Жду ваши ответы! 👇
Когда я начинал вести этот канал, мне искренне казалось, что научиться кодить — проще простого. А если ещё и подключить ментора (в данном случае в роли которого выступал я), то процесс обучения должен был идти как по маслу. 😄
Но, оглядываясь назад и анализируя полученный опыт, понимаю, что допустил немало ошибок. Давайте разберем основные из них:
1. Мотивация 📉
99% людей не завершат обучение из-за недостаточной мотивации. И это моя ошибка, ведь я не смог её правильно донести. Есть множество способов поддерживать мотивацию: игровые механики, поощрения, плотное общение с аудиторией, а также платное обучение и другие. На тот момент я не знал о многих из этих методов, а брать плату за обучение мне не хотелось по следующим причинам:
• Изначально ко мне обратились мои друзья с просьбой помочь им научиться. С друзей брать деньги, конечно же не хотелось
• Просить деньги у новой аудитории было бы нечестно, ведь я сам не знал, как пройдет этот эксперимент.
• И главная причина: «Кто я такой, чтобы брать за это деньги?». Ведь меня практически никто не знал, не было уверенности, что я смогу кого-то обучить и где гарантии, что результат будет? 🤷♂️
2. Неправильная оценка сроков выполнения заданий ⏳
Я рассчитывал, что одну домашку можно сделать за неделю. Но на практике её почти никто не выполнял, а если и выполняли, то это занимало намного больше времени. В результате участники стали терять интерес. 🙈
3. Неправильная подача информации 📝
Большинство материалов я просто давал в виде ссылок на статьи. За редким исключением я проводил стримы на YouTube или писал свои статьи (кстати, ими до сих пор пользуются новички). Вот пример одной из статей: Git для начинающих.
4. Не научил правильно мыслить 🤔
Объём информации, который нужно знать, действительно огромен, поэтому стоило с самого начала подавать её ещё более мелкими порциями и научить вас разбивать задачи на более мелкие. Тут Дуров недавно подметил эту мысль очень правильно:
В этом мире нет сложных задач — только множество маленьких, которые выглядят страшно, когда их объединяют. Разделите большую задачу на более мелкие части, организуйте их в правильной последовательности — и «вы справитесь».
Один мой хороший друг однажды сказал:
Если задача занимает больше 8 часов, это не задача. Дроби на более мелкие.
Поэтому мой вам совет: выделите для себя комфортное время на выполнение одной мелкой задачи и используйте это время, чтобы не перегружаться и сохранять мотивацию! 🚀
А теперь вопрос к вам: 🤔
Что бы вас мотивировало сменить вашу профессию на программиста? 🧑💻
Свои версии можете смело оставлять в комментариях!
⚠️ Только давайте без упоминания зарплаты — эта мотивация, как выяснилось, работает не так эффективно, как кажется на первый взгляд. 😅
Жду ваши ответы! 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3🆒3❤🔥1
Итак, продолжаю историю про развитие моего бота. 🚀
Кратко о предыдущем посте:
• Аудитория растет 📈
• Купил сервера с запасом на свои деньги 💸
• Бот бесплатный, но есть возможность поддержать донатом 💰
После первых трудностей бот работал сам по себе около полугода. Я никогда раньше не запускал проект в одиночку. Был опыт запуска новых проектов в команде, где я работал по найму, но одиночку никогда. Поэтому я быстро выгорел от бессонных ночей и постоянного стресса. 😅
Version 2.0
Через полгода мне стало скучно, и я решил переписать всё с нуля. 😎 Код был полон багов, и добавление новых фич стало адом. Так как бот был написан за один вечер, каждая новая функция занимала у меня почти 2 недели! 😤
Я полностью стёр весь код и начал писать все заново. Стек технологий остался прежним, но в этот раз я продумал всю систему на бумаге, а затем приступил к разработке. Это заняло у меня около 2 месяцев. ✍️
Появились новые фичи:
• Логирование ошибок 📋
• Уведомления для пользователей и админов об ошибках 🚨
• История действий пользователей 🕵️♂️
• Админка внутри бота, где можно было управлять ключами, мониторить активность серверов и скорость их работы ⚙️
• Оптимизации, которые ускорили работу бота ⚡️
• Главная фича — смена страны 🌍. Теперь можно было выпускать ключи для разных стран.
После этого нужно было перенести пользователей со старого бота на новый, чтобы ничего не сломалось. На миграцию ушло ещё полмесяца.
Но, как водится, в день запуска всё пошло не по плану. 😅 Начались ошибки, но, к счастью, всё решилось за один вечер.🌙
После этого бот стал работать стабильнее, отвечал быстрее, а пользователи остались довольны.😎 👍
Однако оставалась одна большая проблема. Многие пользователи, особенно старшего возраста, не понимали, как добавить ключ в приложение. 😕 Молодежь справлялась быстро, но старшему поколению было сложно. Нужно было:
1. Обучить пользователей добавлять и менять ключи 📝
2. Сократить количество действий до запуска подключения по ключу 🛠
Для этого я оптимизировал меню бота и добавил инструкции, которые должны были помочь пользователю сократить время.
Параллельно с этим ломались сервера из-за проблем с хостингом, и мне приходилось разбираться с техподдержкой. 🛠
Проработав так ещё 4 месяца, я снова выгорел. 😩 Но впереди было самое интересное — введение оплаты! 💵
И тут начиналось самое интересное:
• Поиск юристов и бухгалтеров 🧐
• Дизайн и графика🎨
• Подключение провайдеров для оплаты и заключение договоров🤝
• и т д
Но об этом расскажу в следующий раз!
И под конец вопрос: запускали ли вы свои проекты (в команде или в одиночку)? Если да, с какими трудностями вы сталкивались?🤔
Кратко о предыдущем посте:
• Аудитория растет 📈
• Купил сервера с запасом на свои деньги 💸
• Бот бесплатный, но есть возможность поддержать донатом 💰
После первых трудностей бот работал сам по себе около полугода. Я никогда раньше не запускал проект в одиночку. Был опыт запуска новых проектов в команде, где я работал по найму, но одиночку никогда. Поэтому я быстро выгорел от бессонных ночей и постоянного стресса. 😅
Version 2.0
Через полгода мне стало скучно, и я решил переписать всё с нуля. 😎 Код был полон багов, и добавление новых фич стало адом. Так как бот был написан за один вечер, каждая новая функция занимала у меня почти 2 недели! 😤
Я полностью стёр весь код и начал писать все заново. Стек технологий остался прежним, но в этот раз я продумал всю систему на бумаге, а затем приступил к разработке. Это заняло у меня около 2 месяцев. ✍️
Появились новые фичи:
• Логирование ошибок 📋
• Уведомления для пользователей и админов об ошибках 🚨
• История действий пользователей 🕵️♂️
• Админка внутри бота, где можно было управлять ключами, мониторить активность серверов и скорость их работы ⚙️
• Оптимизации, которые ускорили работу бота ⚡️
• Главная фича — смена страны 🌍. Теперь можно было выпускать ключи для разных стран.
После этого нужно было перенести пользователей со старого бота на новый, чтобы ничего не сломалось. На миграцию ушло ещё полмесяца.
Но, как водится, в день запуска всё пошло не по плану. 😅 Начались ошибки, но, к счастью, всё решилось за один вечер.
После этого бот стал работать стабильнее, отвечал быстрее, а пользователи остались довольны.
Однако оставалась одна большая проблема. Многие пользователи, особенно старшего возраста, не понимали, как добавить ключ в приложение. 😕 Молодежь справлялась быстро, но старшему поколению было сложно. Нужно было:
1. Обучить пользователей добавлять и менять ключи 📝
2. Сократить количество действий до запуска подключения по ключу 🛠
Для этого я оптимизировал меню бота и добавил инструкции, которые должны были помочь пользователю сократить время.
Параллельно с этим ломались сервера из-за проблем с хостингом, и мне приходилось разбираться с техподдержкой. 🛠
Проработав так ещё 4 месяца, я снова выгорел. 😩 Но впереди было самое интересное — введение оплаты! 💵
И тут начиналось самое интересное:
• Поиск юристов и бухгалтеров 🧐
• Дизайн и графика
• Подключение провайдеров для оплаты и заключение договоров
• и т д
Но об этом расскажу в следующий раз!
И под конец вопрос: запускали ли вы свои проекты (в команде или в одиночку)? Если да, с какими трудностями вы сталкивались?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨💻3❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда решил залить обновление в пятницу…
😁3😱3
✨ Вопрос к вам, друзья! ✨
Думаю над следующими постами и хочу узнать ваше мнение! О чём было бы интереснее прочитать?
🤔 Вот три темы, из которых вы можете выбрать:
1️⃣ Продолжение истории про монетизацию бота
Если вам интересно, как получать доход с вашего Telegram-бота и какие шаги я уже прошёл, дайте знать!
2️⃣ Интересные истории из старых проектов
Могу поделиться самыми необычными и забавными моментами из своих первых IT-проектов, когда работал в найме
3️⃣ Полезные инструменты для изучения программирования
Расскажу о сервисах, приложениях и подходах, которые помогли мне и могут помочь вам в изучении кода.
Думаю над следующими постами и хочу узнать ваше мнение! О чём было бы интереснее прочитать?
🤔 Вот три темы, из которых вы можете выбрать:
1️⃣ Продолжение истории про монетизацию бота
Если вам интересно, как получать доход с вашего Telegram-бота и какие шаги я уже прошёл, дайте знать!
2️⃣ Интересные истории из старых проектов
Могу поделиться самыми необычными и забавными моментами из своих первых IT-проектов, когда работал в найме
3️⃣ Полезные инструменты для изучения программирования
Расскажу о сервисах, приложениях и подходах, которые помогли мне и могут помочь вам в изучении кода.
Друзья, уходящий год был насыщенным и полным вызовов. Пусть следующий год принесет вам новые возможности, вдохновение и много успешных проектов! А чтобы начать год продуктивно, я подготовил для вас подборку проектов для изучения программирования. Они помогут улучшить ваши навыки и зарядиться новыми идеями! 🚀
Один из самых эффективных способов понять программирование — это читать чужой код. 📖 Разбирая готовые проекты, вы учитесь видеть подходы к решению задач, находить ошибки и вдохновляться новыми идеями. Особенно полезно разбирать небольшие проекты, которые легко понять и можно доработать. Я долго искал для вас самые подходящие проекты, которые помогут вам на практике. Вот несколько примеров на популярных языках программирования:
—————
Python
➡️ Калькулятор с интерфейсом: Простой графический калькулятор на Tkinter, чтобы познакомиться с GUI.
Simple Python Calculator
➡️ Список задач: Веб-приложение на Flask, которое помогает освоить создание API и работу с базой данных.
Flask-Todo
—————
JavaScript
➡️ Приложение для погоды: Подключение к API, работа с динамическим интерфейсом.
Weather App
➡️ Игра “Найди пары”: Небольшая игра на JavaScript для тренировки логики и работы с DOM.
Memory Game
—————
PHP
➡️ Простой блог: Учебный проект для работы с базой данных и создания CRUD-функционала.
PHP Blog
➡️ Форма обратной связи: Обработка данных пользователя с серверной стороны.
PHP Contact Form
—————
Swift
➡️ Калькулятор чаевых: Простое iOS-приложение для работы с пользовательским интерфейсом.
Tip Calculator
➡️ Приложение задачник: Мини-проект для работы с базами данных на iOS.
To-Do App
—————
Go
➡️ Сокращатель ссылок: Минималистичный веб-сервис на Go, чтобы изучить серверную разработку.
URL Shortener
➡️ Простой веб-сервер: Обработка HTTP-запросов на Go для создания небольших сервисов.
Go Web Server
—————
Kotlin
➡️ Конвертер валют: Приложение на Android, демонстрирующее базовые принципы работы с API.
Currency Converter
➡️ Приложение для погоды: Android-приложение с интеграцией внешних API.
Weather App
Как работать с этими проектами
1. 📖 Изучите код: Разберитесь, как устроена структура проекта, и как разные части программы взаимодействуют.
2. ⚙️ Запустите проект: Настройте среду разработки и попробуйте воспроизвести проект у себя.
3. ✏️ Модифицируйте: Добавьте новую функцию, измените дизайн или улучшите код.
4. 💡 Напишите что-то своё: Используйте идеи из этих проектов в своих приложениях.
Чтение и разбор чужого кода — это важный шаг в развитии навыков программирования.
Не бойтесь пробовать и улучшать!
С вас лайк
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥11👍4🎄3
Программирование — как собирать LEGO 🎨👾
Когда я был маленьким, мой отец и брат часто залипали в гараже за ремонтом машин. Мне казалось это чем-то магическим, но в то же время абсолютно непонятным. Я был слишком мал, чтобы разбираться в деталях. Однако позже мой брат всё-таки сумел зажечь во мне интерес к этой теме.
Спустя годы, когда я стал старше, у меня появилась новая страсть — LEGO. И началось всё с хардкорного набора Lego Technic Porsche. Это была настоящая головоломка, но меня захватил процесс: детали, инструкции, сборка. В каждой стране, где мы с моей семьёй долго жили, я покупал или жена дарила мне новый набор. Недавно, например, мы собрали с ней скутер Vespa из одноимённого набора LEGO. Это занятие реально помогает расслабить голову после сложного рабочего дня.
И вот пока мы собирали этот скутер, мне пришла мысль:
программирование похоже на сборку LEGO! 🤯
💡 Почему программирование — это как LEGO?
1. Детали — это функции и константы
Представьте, что каждый язык программирования — это огромный набор деталей. У вас есть функции, переменные, константы, которые можно комбинировать, чтобы создать что угодно.
2. Не все детали подходят друг другу
В LEGO не все блоки стыкуются из-за их формы. Так же и в программировании: типы данных (числа, строки, массивы) нужно “стыковать” правильно, чтобы всё работало.
3. Библиотеки и пакеты — это другие наборы LEGO
Вам не хватает деталек? Нужно что-то уникальное? Скачайте библиотеку или установите пакет — они как новые наборы, из которых можно собрать свою конструкцию.
4. Вы не одни в этом мире
В LEGO вы всегда можете подсмотреть чужие сборки, вдохновиться и использовать чужие идеи. В программировании это происходит через GitHub, форумы или открытый код — вы учитесь у других и делитесь своим.
💡 Главное — это творчество
Программирование, как и LEGO, — это искусство. Нет границ для того, что вы можете создать. Каждый проект — это ваша уникальная конструкция, ваш способ выразить себя.
Так что не бойтесь экспериментировать, комбинировать и учиться. Станьте архитектором своего цифрового мира! 🌐💻
Какие у вас ассоциации с программированием?
Go to comments ! 👇
Когда я был маленьким, мой отец и брат часто залипали в гараже за ремонтом машин. Мне казалось это чем-то магическим, но в то же время абсолютно непонятным. Я был слишком мал, чтобы разбираться в деталях. Однако позже мой брат всё-таки сумел зажечь во мне интерес к этой теме.
Спустя годы, когда я стал старше, у меня появилась новая страсть — LEGO. И началось всё с хардкорного набора Lego Technic Porsche. Это была настоящая головоломка, но меня захватил процесс: детали, инструкции, сборка. В каждой стране, где мы с моей семьёй долго жили, я покупал или жена дарила мне новый набор. Недавно, например, мы собрали с ней скутер Vespa из одноимённого набора LEGO. Это занятие реально помогает расслабить голову после сложного рабочего дня.
И вот пока мы собирали этот скутер, мне пришла мысль:
программирование похоже на сборку LEGO! 🤯
💡 Почему программирование — это как LEGO?
1. Детали — это функции и константы
Представьте, что каждый язык программирования — это огромный набор деталей. У вас есть функции, переменные, константы, которые можно комбинировать, чтобы создать что угодно.
2. Не все детали подходят друг другу
В LEGO не все блоки стыкуются из-за их формы. Так же и в программировании: типы данных (числа, строки, массивы) нужно “стыковать” правильно, чтобы всё работало.
3. Библиотеки и пакеты — это другие наборы LEGO
Вам не хватает деталек? Нужно что-то уникальное? Скачайте библиотеку или установите пакет — они как новые наборы, из которых можно собрать свою конструкцию.
4. Вы не одни в этом мире
В LEGO вы всегда можете подсмотреть чужие сборки, вдохновиться и использовать чужие идеи. В программировании это происходит через GitHub, форумы или открытый код — вы учитесь у других и делитесь своим.
💡 Главное — это творчество
Программирование, как и LEGO, — это искусство. Нет границ для того, что вы можете создать. Каждый проект — это ваша уникальная конструкция, ваш способ выразить себя.
Так что не бойтесь экспериментировать, комбинировать и учиться. Станьте архитектором своего цифрового мира! 🌐💻
Какие у вас ассоциации с программированием?
Go to comments ! 👇
👍10🔥4
Step by step 🧑💻
Я настолько в спешке писал этот пост, что неправильно скопировал все ссылки)
Теперь все исправлено)
Теперь все исправлено)
😁4
Недавно я снова перепрошел «Ведьмак 3: Дикая Охота» ⚔️ вместе со всеми DLC и дополнительными заданиями. А вчера решил заглянуть в Steam в поисках чего-нибудь свеженького 🎮 для вечерних посиделок.
Так вот, наткнулся на игру JOY OF PROGRAMMING: Software Engineering Simulator, которая вышла буквально вчера (18 января). Это симулятор, в котором можно прокачивать навыки программирования на Python 🐍, решая разнообразные задачи в трёхмерном мире. Вот самые интересные моменты, которые я выделил из описания:
🤖 Развитие навыков кодинга: игра учит автоматизации и управлению реалистичными машинами, роботами и дронами.
🚀 Многообразие миссий: от логистики и навигации для робота-пылесоса до взлома паролей и настройки умного дома.
⚙️ Автоматизированные системы: можно разрабатывать автономный транспорт, внедрять машинное обучение и компьютерное зрение, а также стабилизировать роботов (например, с помощью алгоритма PID).
🖥 Проектирование GUI: есть возможность сделать дэшборды для умного дома своими руками.
🏆 Геймифицированный подход: для новичков предусмотрены обучающие уровни, плюс встроенный редактор головоломок для творчества.
🔬 Современные технологии: в ход идут LiDAR, камеры, датчики удара и многое другое.
⭐️ Система достижений: зарабатывайте звёзды, открывайте новые возможности и получайте сертификаты за прохождение уровней.
Если вы увлекаетесь программированием или просто хотите узнать, как выглядит процесс разработки софта в игровом формате, советую обратить внимание на эту игру.
Так вот, наткнулся на игру JOY OF PROGRAMMING: Software Engineering Simulator, которая вышла буквально вчера (18 января). Это симулятор, в котором можно прокачивать навыки программирования на Python 🐍, решая разнообразные задачи в трёхмерном мире. Вот самые интересные моменты, которые я выделил из описания:
🤖 Развитие навыков кодинга: игра учит автоматизации и управлению реалистичными машинами, роботами и дронами.
🚀 Многообразие миссий: от логистики и навигации для робота-пылесоса до взлома паролей и настройки умного дома.
⚙️ Автоматизированные системы: можно разрабатывать автономный транспорт, внедрять машинное обучение и компьютерное зрение, а также стабилизировать роботов (например, с помощью алгоритма PID).
🖥 Проектирование GUI: есть возможность сделать дэшборды для умного дома своими руками.
🏆 Геймифицированный подход: для новичков предусмотрены обучающие уровни, плюс встроенный редактор головоломок для творчества.
🔬 Современные технологии: в ход идут LiDAR, камеры, датчики удара и многое другое.
⭐️ Система достижений: зарабатывайте звёзды, открывайте новые возможности и получайте сертификаты за прохождение уровней.
Если вы увлекаетесь программированием или просто хотите узнать, как выглядит процесс разработки софта в игровом формате, советую обратить внимание на эту игру.
Steampowered
JOY OF PROGRAMMING - Software Engineering Simulator on Steam
Use real Python code to automate machines, robots, drones and more: Program self-driving vehicles; crack passwords; apply machine learning; automate logistics; use image processing to guide missiles. Gain real coding skills and solve exciting bite-sized programming…
🔥5
Создать игру без строчки кода? Я попробовал — вот что вышло😅
Чтобы не отставать от трендов, полгода назад я себя заставил погрузиться в мир AI.
Месяц назад у меня появилась идея создать игру. Но мне так лень её писать, что я придумал себе челендж — сделать её только с помощью AI, с минимальным написанием кода собственноручно😅
Поэтому я полез разбираться, как заставить AI работать автономно, без моего участия. Или хотя бы с минимальным.
Я протестировал кучу разных сервисов, моделей, AI-агентов и в этом посте хочу поделиться с вами своим «очень важным» мнением и небольшой историей😄
---
1. ChatGPT
Проект от OpenAI. Очень мощный инструмент буквально во всём — от бизнес-консультирования до разработки и дизайна.
Теперь 90% информации я ищу не в Google, а спрашиваю у ChatGPT.
Почти 30% кода он пишет за меня. Так что можно сказать, я нанял его в качестве разработчика-консультанта 😎
Кстати, новый лого для канала тоже сделал он!
Плюсы:
- Умеет генерировать картинки
- Умный и хорошо запоминает контекст диалога
Минусы:
- Нет автономности — ему каждый раз нужно писать самому
- Не справляется с долгими задачами
---
2. Ollama
Позволяет запускать разные модели локально, прямо у себя на компе. Прост в установке и настройке. Используется через терминал/консоль.
Позволяет запускать почти все LLM с открытым кодом.
Мне даже удалось на нём запустить нашумевшую Deepseek-R1 👀
Плюсы:
- Всё локально → бесплатно 💸
Минусы:
- Модели, которые я тестил, не умеют рисовать или генерировать звук
- Или я просто не разобрался 😅
---
3. AutoGPT
Задумывался как полностью автономный AI, который делает за тебя любую задачу.
Но по факту превратился в некий конструктор агентов, похожий на n8n.
Чтобы его запустить, вам понадобятся: бубен, Google и молитвенник.
И это только полбеды.
Интерфейс вроде дружелюбный, но чтобы разобраться — придётся знатно покурить и отсмотреть вагон видео на YouTube.
Для новичков — крайне не рекомендую.
Я перестал использовать, потому что слишком много времени уходит на настройку.
---
4. Cursor
Это среда разработки со встроенным AI, основанная на VS Code.
Пишет за тебя код, запускает его и даже правит ошибки.
Очень удобна, особенно для новичков.
Пробовал пару дней. Но сам редактор для меня непривычный — я больше по JetBrains.
Главный плюс:
- Можно использовать локальные модели из Ollama
- Есть какая-никакая автономность — AI может писать код прямо в редакторе, не нужно копипастить как в ChatGPT
---
5. CrewAI
Для меня, как для разработчика, это самый перспективный инструмент.
Это framework на Python для создания полностью автономного, мультимодального агента.
Описываешь роли — разработчик, дизайнер, тестировщик.
Для каждой роли — задачи. Всё это в YAML.
А в основном скрипте указываешь, какие AI и инструменты будут использовать роли.
Запускаешь — и ждёшь результата 🚀
Плюсы:
- Можно использовать любые AI: ChatGPT или локальные через Ollama
- Есть куча встроенных инструментов: интернет-поиск, файловая работа, запуск кода и т.д.
- Можно создавать свои инструменты
Минусы:
- Нет визуального интерфейса
- Весь код надо писать на Python
---
А теперь самое интересное 👀
Получилось ли мне создать того самого AI агента?
Ответ:нет, но когда-нибудь — да 😄
Какие были проблемы?
Хотел запускать только локальные модели, но даже на моём Mac с M2 Max не хватало ОЗУ, чтобы всё одновременно держать.
Если запускать по очереди — выходит нескоординированно и медленно.
В итоге часть задач отдал внешним моделям — ChatGPT, DALL·E и т.д.
Плюс прикручивал память, чтобы агенты «знали» друг о друге.
---
Подитожим 💭
Идею я пока отложил на дальнюю полку. Пусть пылится до лучших времён.
Для реализации нужно слишком много времени или больше разработчиков, чем один я.
---
А теперь вопрос к вам:
Как часто вы пользуетесь AI и для каких задач?
Так же с вас лайк и коммент, за историю и идею)
Чтобы не отставать от трендов, полгода назад я себя заставил погрузиться в мир AI.
Месяц назад у меня появилась идея создать игру. Но мне так лень её писать, что я придумал себе челендж — сделать её только с помощью AI, с минимальным написанием кода собственноручно
Поэтому я полез разбираться, как заставить AI работать автономно, без моего участия. Или хотя бы с минимальным.
Я протестировал кучу разных сервисов, моделей, AI-агентов и в этом посте хочу поделиться с вами своим «очень важным» мнением и небольшой историей
---
1. ChatGPT
Проект от OpenAI. Очень мощный инструмент буквально во всём — от бизнес-консультирования до разработки и дизайна.
Теперь 90% информации я ищу не в Google, а спрашиваю у ChatGPT.
Почти 30% кода он пишет за меня. Так что можно сказать, я нанял его в качестве разработчика-консультанта 😎
Кстати, новый лого для канала тоже сделал он!
Плюсы:
- Умеет генерировать картинки
- Умный и хорошо запоминает контекст диалога
Минусы:
- Нет автономности — ему каждый раз нужно писать самому
- Не справляется с долгими задачами
---
2. Ollama
Позволяет запускать разные модели локально, прямо у себя на компе. Прост в установке и настройке. Используется через терминал/консоль.
Позволяет запускать почти все LLM с открытым кодом.
Мне даже удалось на нём запустить нашумевшую Deepseek-R1 👀
Плюсы:
- Всё локально → бесплатно 💸
Минусы:
- Модели, которые я тестил, не умеют рисовать или генерировать звук
- Или я просто не разобрался 😅
---
3. AutoGPT
Задумывался как полностью автономный AI, который делает за тебя любую задачу.
Но по факту превратился в некий конструктор агентов, похожий на n8n.
Чтобы его запустить, вам понадобятся: бубен, Google и молитвенник.
И это только полбеды.
Интерфейс вроде дружелюбный, но чтобы разобраться — придётся знатно покурить и отсмотреть вагон видео на YouTube.
Для новичков — крайне не рекомендую.
Я перестал использовать, потому что слишком много времени уходит на настройку.
---
4. Cursor
Это среда разработки со встроенным AI, основанная на VS Code.
Пишет за тебя код, запускает его и даже правит ошибки.
Очень удобна, особенно для новичков.
Пробовал пару дней. Но сам редактор для меня непривычный — я больше по JetBrains.
Главный плюс:
- Можно использовать локальные модели из Ollama
- Есть какая-никакая автономность — AI может писать код прямо в редакторе, не нужно копипастить как в ChatGPT
---
5. CrewAI
Для меня, как для разработчика, это самый перспективный инструмент.
Это framework на Python для создания полностью автономного, мультимодального агента.
Описываешь роли — разработчик, дизайнер, тестировщик.
Для каждой роли — задачи. Всё это в YAML.
А в основном скрипте указываешь, какие AI и инструменты будут использовать роли.
Запускаешь — и ждёшь результата 🚀
Плюсы:
- Можно использовать любые AI: ChatGPT или локальные через Ollama
- Есть куча встроенных инструментов: интернет-поиск, файловая работа, запуск кода и т.д.
- Можно создавать свои инструменты
Минусы:
- Нет визуального интерфейса
- Весь код надо писать на Python
---
А теперь самое интересное 👀
Получилось ли мне создать того самого AI агента?
Ответ:
Какие были проблемы?
Хотел запускать только локальные модели, но даже на моём Mac с M2 Max не хватало ОЗУ, чтобы всё одновременно держать.
Если запускать по очереди — выходит нескоординированно и медленно.
В итоге часть задач отдал внешним моделям — ChatGPT, DALL·E и т.д.
Плюс прикручивал память, чтобы агенты «знали» друг о друге.
---
Подитожим 💭
Идею я пока отложил на дальнюю полку. Пусть пылится до лучших времён.
Для реализации нужно слишком много времени или больше разработчиков, чем один я.
---
А теперь вопрос к вам:
Как часто вы пользуетесь AI и для каких задач?
Так же с вас лайк и коммент, за историю и идею)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3❤2👏2