Сообщество - Программирование на python
Добавить пост

Программирование на python

374 поста 9 935 подписчиков

Популярные теги в сообществе:

12

Soulcatcher voice changer 1.2 "Идеи из комментариев"

Привет! Эта серия посвящена процессу разработки моего бота для распознавания и модификации голосовых сообщений в Telegram. Статья, является продолжением предыдущего поста из этой серии: Ответ на пост «Я сделал приложение для разумных трат»


Время чтения ~ 7 минут.


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

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

Вкратце для ЛЛ, список изменений выглядит следующим образом:

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

В принципе, дальше вы можете не читать, а перейти в бота и потестить самостоятельно: https://t.me/Soulcatcher_voice_changer_bot а я пока расскажу о каждом изменении и связанными с ними сложностями (мы же любим сложности?) по отдельности.

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

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

Перевод происходит с любого из 180 поддерживаемых языков (которые я, естественно не тестировал) на язык пользователя. Пользовательский язык достается из метаданных сообщения. Несомненно, перевод, обладает некоторой степенью всратости, но мы к этому еще вернемся. Сейчас важно лишь то, что в качестве языкового движка использован Google Translate API. Для безлимитного (относительно) доступа к этой библиотеки, используется библиотека Translators, авторы которой, любезно предоставили свой приватный ключ. Как вы уже заметили, вместе с результатом перевода возвращается и флаг страны, язык которой был определен переводчиком - удобно. Для достижения этого результата я модифицировал библиотеку Translators, заставив ее возвращать не только перевод текста, но и код языка, для которого произведен перевод. По какой то причине, "из коробки", этого функционала небыло.


Машинная переозвучка тоже получила языковую поддержку. Выглядит это так:

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

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


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

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

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


Итак, мы подошли к самому важному и неоднозначному нововведению в этой версии - мультиязычному распознаванию речи. Не смотря на то, что используемая технология позволяет распознавать речь с огромного количества языков, в предыдущей версии Soulcatcher, распознавание было возможным лишь с русского. Связано это с одной фундаментальной проблемой текущих решений в сфере распознавания речи: Я провел опредеенное время в изысканиях, после чего пришел к выводу, что на данный момент, не существует сервисов или отдельных технических решений, способных достаточно эффективно распознавать речь с заранее неизвестного языка. Даже такие гиганты как Google, не предоставляют своим клиентам (речь идет о коммерческих решениях) подобный функционал, что говорить о бесплатных сервисах? Обратите внимание на нижнюю часть скриншота:

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

Все дело в том, что современное распознавание речи производится при помощи языковых моделей, что само по себе, достаточно дорогой (в контексте аппаратных возможностей) процесс.  Для того, чтобы понять почему это сложнее, чем анаогичное автораспознавание языка в тексте, нужно понять, как это распознавание устроено. Хорошее объяснение одного из популярных подходов представлено на этой странице: https://translatedlabs.com/определение-языка (Не реклама, мне до работы в таких компаниях еще далеко)

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

Простыми словами, происходит сравнение переводимого текста с заранее загруженными образцами. В чем же проблема сравнить переводимый голос, с заранее записанными файлами? Дьявол кроется в деталях. Текст по своей сути так-сказать "стабилен", вне зависимости от автора, стиля и назначения текстовой информации, одни и те же слова, дадут предсказуемый, одинаковый результат при любом форматировании. Голос же, имеет такие неочевидные для компьютера свойства как тональность, интонация, акцент. Именно для этого существуют голосовые модели, уникальные для каждого языка и предназначенные для обработки этих, свойственных только человеческому голосу данных. Если еще проще, то при попытке сравнения одного и того же текста, продиктованного разными людьми с некими контрольными показателями, мы всегда будем получать разные результаты. Поэтому голос предварительно необходимо привести в "стабильный" вид при помощи голосовой модели. Для точного распознавания, необходимо применить к записи голоса все доступные языковые модели и только после этого, производить сравнение. Как было отмечено выше, для массового применения, это слишком дорогая (долгая) операция. По этой причине, я пошел по проторенной дорожке и ввел необходимость явно указывать язык распознавания:

Soulcatcher voice changer 1.2 "Идеи из комментариев" Разработка, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Длиннопост, Python, Программирование

Языки были выбраны по принципу "топ семь смешных лягушек 9 самых популярных языков мира"  =)

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


Следующая версия будет сосредоточена на функционале для бесед, ибо текущая реализация со стейтами, хранимыми в оперативной памяти не только не устраивает меня с точки зрения производительности, но так-же не позволяет ввести функционал администрирования бота админами каналов. Кое-какие идеи, на этот счет уже есть. Еще раз хочу обратить внимание, на то, что без вашего внимания к посту и справедливым замечаниям под ним, это обновление никогда бы не вышло.  А на этом у меня все, еще раз спасибо =)

P.S. Возвращаясь к проблеме выбора API Google Translate в качестве штатного переводчика. Один находчивый человек в комментариях, посоветовал использовать DeepL для этих целей, в целом, я присоединяюсь к его мнению, DeepL реально превосходит все остальные решения на две головы за исключением одного но: Он не доступен в России. Клянусь, я пытался подделать эстонскую кредитку, чтобы зарегистрироваться на их ресурсе, но все тщетно. Если у кого то есть идеи, как это обойти не тратя кучу денег - буду рад их услышать.


-----


По ссылке ниже, вы попадете в репозиторий бота на моем Github, где сможете подробнее ознакомиться с функционалом, стеком использованных технологий, а так же узнать тайну отсылки в его названии. Мой телеграм для связи можно найти как в самом боте, так и на Github.

https://github.com/Raiksler/Soulcatcher-voice-changer

Предыдущий пост в серии
Показать полностью 8
23

TMNT Fight NES переработка меню и коллизии

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


Кароч, дела разобрал, стало полегче. Можно и покодить. Честно, не сразу разобрался в своем коде спустя пару месяцев)


В этой версии переработал меню, теперь выбор кнопками, а не мышкой. Добавил выбор персонажа и локации. Сделал обработку коллизий.


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

Вот видосик по классике:

Код на GitHub

124

Ответ на пост «Я сделал приложение для разумных трат»

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


Еще до введения соответствующего платного функционала в телеграм премиум, я разработал бота, преднозначенного для распознавания и\или модификации речи в голосовых сообщениях. Да, прямо как в ВК. Хотя скорее, как в ВК образца 2017 года, т.к. в угоду бесплатности, а так-же в силу ограниченности аппаратных возможностей сервера, бот использует не самые совершенные технологии распознавания, но тем не менее. Хочется быстро пробежать глазами длинное голосовое? Или в силу физических особенностей, нет возможности слушать голосовые? А может нужно отправить голосовое сообщение не "засветив" голос? (И зачем это вам...) О том, как реализовать все это (и немного более) при помощи моего бота, я расскажу ниже!


Как это работает? На самом деле просто. Заходим в бота по ссылке: https://t.me/Soulcatcher_voice_changer_bot или вбиваем в поиск тг "Soulcatcher"...

Ответ на пост «Я сделал приложение для разумных трат» Разработка, Python, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Ответ на пост, Длиннопост

Переходим в бота, тыкаем Start...

Ответ на пост «Я сделал приложение для разумных трат» Разработка, Python, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Ответ на пост, Длиннопост

Кликаем help, для выбора режима работы

Ответ на пост «Я сделал приложение для разумных трат» Разработка, Python, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Ответ на пост, Длиннопост

На данный момент, реализовано три режима, представленные на скрине. Все предельно просто. Суть первого режима понятна из названия - бот принимает входящее голосовое, распознает речь и возвращает ответ в текстовом формате. Машинная переозвучка работает по тому же принципу, за исключением того, что в качестве ответа, бот пришлет голосовое сообщение с синтетически переозвученным текстом. Изменение тональности вернет исходное голосовое, с измененной на случайнуюю величину (внезапно!) тональностью, прямо как в фильмах про шпиёнов.


Пример использования функции распознавания речи. Выбираем режим, отправляем боту голосовое сообщение, получаем ответ о начале обработки:

Ответ на пост «Я сделал приложение для разумных трат» Разработка, Python, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Ответ на пост, Длиннопост

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

Ответ на пост «Я сделал приложение для разумных трат» Разработка, Python, Telegram, Telegram бот, Общение, Анонимность, Распознавание голоса, Ответ на пост, Длиннопост

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


Обращаю отдельное внимание на то, что обработка голосовых сообщений происходит на 3rd party сервере (на моем), что звучит как потенциальная угроза утечки информации. Я, разумеется, даю честное слово, что голосовые сообщения не остаются на сервере по окончании процесса обработки, но тем не менее, заклинаю вас не использовать Soulcatcher, для совершения противоправных действий, а так же, для обработки чувствительных данных, таких как пароли, логины и имена ваших котеек.


Благодарю вас за время, потраченное на чтение поста и надеюсь, что бот окажется кому-то полезным =)


По ссылке ниже, вы попадете в репозиторий бота на моем Github, где сможете подробнее ознакомиться с функционалом, стеком использованных технологий, а так же узнать тайну отсылки в его названии. Мой телеграм для связи можно найти как в самом боте, так и на Github.


https://github.com/Raiksler/Soulcatcher-voice-changer

Следующий пост в серии
Показать полностью 5
20

Задумался о резкой смене рода деятельности. Прошу совета!

Всем доброго дня!

Холодным ноябрьским утром, по пути на работу, пришло осознание - пора что-то менять. В той сфере, где тружусь я - денег не заработать, а обстоятельства складываются так, что какое-либо повышение и продвижение по карьерной лестнице мне не светит. Короче говоря, зарабатывая небольшие деньги, я тружусь 5/2 с 9 до 18 часов, не имея здесь никаких перспектив, а стало быть, просто теряю время, которое мог бы использовать с бОльшей пользой и выгодой.


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


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


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

1. Реально ли обучится Python с нуля, не имея математического образования?

2. С какой литературы мне стоит начать изучение вопроса?

3. Может, вы сами проходили какие-то онлайн курсы и можете поделиться впечатлениями и что-то порекомендовать?

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

И снова, буду благодарен за развернутые и информативные ответы. Без рейтинга.

Показать полностью
20

Вязаный маскот GitHub

Вязаный маскот GitHub Авторская игрушка, Вязание, Амигуруми, Вязание крючком, Мягкая игрушка, Брелок, Github, Программирование, Подарки, Рукоделие, Рукоделие без процесса, Ручная работа, Творчество, Длиннопост

Всем доброго утра, с Вами Дима 🍁

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

Вязаный маскот GitHub Авторская игрушка, Вязание, Амигуруми, Вязание крючком, Мягкая игрушка, Брелок, Github, Программирование, Подарки, Рукоделие, Рукоделие без процесса, Ручная работа, Творчество, Длиннопост

Итак, спустя год, когда все планеты и звезды встали в ряд, Маша все же связала мне Октокета. Я не могу сказать о том, сколько времени Маша потратила на вязание данного чуда, так как меня не было рядом, однако не было рядом меня где-то час, а после она приносит мне его со слова "У меня для тебя сюрприз". И правда, этому сюрпризу я был невероятно рад.

Вязаный маскот GitHub Авторская игрушка, Вязание, Амигуруми, Вязание крючком, Мягкая игрушка, Брелок, Github, Программирование, Подарки, Рукоделие, Рукоделие без процесса, Ручная работа, Творчество, Длиннопост

Он оказался даже лучше, чем я мог себе представить, ибо до этого дня я уже успел повидать фотографии вязяного маскота Github, однако качество их было совсем посредственным. Я не мог нарадоваться материализовавшемуся Октокету прямиком из монитора - он получился точь-в-точь как оригинал и сразу занял свое почетное место у моего ноутбука, помогая мне с написанием кода.

Вязаный маскот GitHub Авторская игрушка, Вязание, Амигуруми, Вязание крючком, Мягкая игрушка, Брелок, Github, Программирование, Подарки, Рукоделие, Рукоделие без процесса, Ручная работа, Творчество, Длиннопост

Пряжа которую Машка использовала для вязания:
— Черный – «Пехорка «Детская новинка»
— Кожа лица – «Карапуз «Эко СЕМЕНОВСКАЯ» светло-бежевый (для своих игрушек я использую только эту пряжу в качестве телесного цвета, он просто идеальный!)

Вязаный маскот GitHub Авторская игрушка, Вязание, Амигуруми, Вязание крючком, Мягкая игрушка, Брелок, Github, Программирование, Подарки, Рукоделие, Рукоделие без процесса, Ручная работа, Творчество, Длиннопост

Больше работ вы сможете найти в нашей группе в Вк

Вязаный маскот GitHub Авторская игрушка, Вязание, Амигуруми, Вязание крючком, Мягкая игрушка, Брелок, Github, Программирование, Подарки, Рукоделие, Рукоделие без процесса, Ручная работа, Творчество, Длиннопост
Показать полностью 6
38

Бесплатный сервис сокращения ссылок с отправкой статистики на почту

Предыстория: Зародилась как-то у новичка в программировании идея сделать небольшой простенький проект, чтобы гитхаб не пустовал да было что показывать людям, собрать что-то на подобие команды из незнакомых людей и опробовать командную работу. Получилось, к сожалению, не с первого раза, кто-то просто потерялся, у кого-то желание пропало, и из-за подобных казусов приходилось переписывать прилично логики под скилы нового front-end разработчика. В итоге с 3-го раза удалось найти людей, которые смогли найти время и желание закончить проект для своего портфолио, а именно:

1 тестировщик, 1 фронтендер, 1 дизайнер и я бекендер :)
Изначально планировалось потратить недели 3 максимум, а по факту ушло почти 4 месяца....

Бюджет проекта: 0 рублей и 2 бутылки пива.
Адрес сайта: https://e-lnk.ru

Что можно сделать через сервис(доступно для гостей):
1) Сделать из длинной ссылки короткую
2) Получить QR-код короткой ссылки


Опции по желанию(для зарегистрированных):

3) Установить лимит переходов по ссылке (до 1 миллиона)
4) Установить пароль на ссылку

5) Ограничить время действия ссылки с точностью до 1 минуты*

*можно выбрать дату и время, С которой ссылка начнет работать

и / или

*можно выбрать дату и время, ДО которой ссылка будет работать

6) Установить имя ссылки, которое будет отображаться в отчетах

Бесплатный сервис сокращения ссылок с отправкой статистики на почту Сервис, Проект, Сайт, Ссылка, Разработка, Бесплатно, Python, Длиннопост

Панель управления:
1-я диаграмма устройства, делится на 3 типа: Телефоны, ПК, Другое.
2-я диаграмма операционные системы

3-я диаграмма топ 10 стран, из которых перешли по ссылке (если стран больше, то не вошедшие в топ 10 отобразятся суммарно как "Другое")

Нижний график показывает количество переходов по временной шкале за ТЕКУЩИЕ 24 часа (после 00-00 по вашему местному времени статистика обнулится).

Бесплатный сервис сокращения ссылок с отправкой статистики на почту Сервис, Проект, Сайт, Ссылка, Разработка, Бесплатно, Python, Длиннопост

Нажав на "календарик", показывает общее количество переходов за текущую неделю (в понедельник статистика обнуляется)
Нажав на "шестеренку", можно редактировать имя ссылки или пароль

Бесплатный сервис сокращения ссылок с отправкой статистики на почту Сервис, Проект, Сайт, Ссылка, Разработка, Бесплатно, Python, Длиннопост

В настройках помимо стандартных функций можно:

1) Изменить свой часовой пояс, если вы переехали (при регистрации выставляется ваше системное время по умолчанию)

2) Включить отправку PDF отчетов на почту по ссылкам за прошедший день, отчет будет отправлен, как только у вас настанет полночь (00:00 по вашему местному времени)

Бесплатный сервис сокращения ссылок с отправкой статистики на почту Сервис, Проект, Сайт, Ссылка, Разработка, Бесплатно, Python, Длиннопост

Быстрое создание ссылки, не заходя на сервис:


Работает на aliexpress.ru, ozon.ru, wildberries.ru
В начало одного из 3-х сайтов добавить префикс "ee" и короткая ссылка автоматически скопируется и вернет вас обратно на страницу товара.

Пример:

p.s если нажмете открыть в новой вкладке, автокопирование не сработает :)
просто кликните
https://www.eeozon.ru/product/bryuki-hola-654688976/?avtc=1&...
https://www.eealiexpress.ru/?spm=a2g2w.productlist.0.0.4f074...
https://www.eewildberries.ru/promotions/hellouin-rasprodazha...

Данный функционал работает только в зоне .ru и НЕ поддерживает поддомены.


Пример ссылок с поддоменами (которые не получится сократить через "ee"):

https://www.promo.eealiexpress.ru

https://www.subdomain.eeozon.ru

https://www.xxxxx.eewildberries.ru


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

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

Немного технической информации:

Используемые технологии: Django, DRF, Nginx, PostgreSQL, Redis, Celery, Gunicorn, Docker, Locust, Flower, Linux-server(Ubuntu), Python, Telegram API +капелька Swagger

Почему Django с надстройкой DRF, а не FastAPI, который сюда прямо напрашивается, или на худой конец Flask?

Ответ: Как упомянул выше, люди теряются на определенном этапе проекта, изначально концепт был совсем другой, реализация была полностью на шаблонах(сейчас SPA приложение) и подразумевалось использовать готовый инструментарий Django, который хорошо бы подошел к проекту, поэтому рассчитывал весь проект завершить за 3 недели. Но в итоге пришлось львиную долю кода переписывать под REST (не ful) архитектуру и под нового frontend разработчика для SPA приложения. Переписывать проект полностью под другой фреймворк не было ни желания, ни сил.

Часть кода проекта + технические подробности по ссылке на гитхаб:
e-lnk.ru/oWUxlgEY37p
Для связи: t.me/georg2022bcknd НЕ канал! :)
Бесплатный сервис сокращения ссылок с отправкой статистики на почту Сервис, Проект, Сайт, Ссылка, Разработка, Бесплатно, Python, Длиннопост
Показать полностью 5
6

Учебник/курсы по статистике

Здравствуйте! Честно пытался искать на пикабу, но ничего особо не нашел, ибо по тегу "Статистика" много всякого интересного, но про обучение не увидел ничего. Посоветуйте, пожалуйста вменяемый учебник и/или бесплатные курсы по статистике на русском языке, желательно с задачами. На степике "Основы статистики" ну очень не понравился, слишком мало примеров и задач, слишком быстрый переход от темы к теме, в голове каша. Без рейтинга, спасибо.

13

Обучение python для школьника

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

Отличная работа, все прочитано!