СТАТЬ ПРОГРАММИСТОМ
1.38K subscribers
12 photos
59 links
ЧАТ/СООБЩЕСТВО - @tobeprog_chat

Программирование. Задача канала - полностью разобрать путь становления разработчика, проведя по нему читателя наиболее эффективно
Download Telegram
CodeWars https://www.codewars.com 
Кратко - платформа с кучей задач на разных ЯПах, с необычной стилизацией на тему восточных боевых искусств(к примеру, прогрессируя тут можно получать кю и даны) и просто великолепной реализацией.

Не знаю, можно ли назвать это минусом, но на codewars отсутствует локализация. Если это все же минус, то он буквально единственный(кстати несколько следующих постов будут как раз про английский в контексте изучения программирования).

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

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

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

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

P.S. при регистрации нужно решить простенькую задачку(дописать чего не хватает в коде), обычно это return
#инструменты #задачи #алгоритмы
Github Copilot

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

Очень крутой обзор/разбор с демонстрацией вышел на канале Fireship - https://youtu.be/4duqI8WyfqE [англ.]

#youtube #ии #github #инструменты
https://youtu.be/ks4MPfMq8aQ
На канале sentdex есть серия видео посвященная созданию бота для гта5 на opencv. И это один из лучших туториалов по теме(возможно даже лучший). 

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

Вообще, гта5 идеальная песочница для подобных проектов, и если понять как они строятся, то все ограничится разве что фантазией разработчика.

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

Это крутые, и в тоже время очень не сложные(проект из видео в разы сложнее описанных) в реализации проекты.

Как и другие туториалы с канала sentdex, этот имеет текстовую версию - https://pythonprogramming.net/game-frames-open-cv-python-plays-gta-v

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

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

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

Специально неделю назад потестил этого бота, запускал разные версии, чуть менял, собирал крупных размеров дату(раз пять точно), и вроде бы все норм, но для этого взял игру на новый акк, с основного так бы делать точно не стал.
#ии #youtube #python #opencv
В дополнение к предыдущему посту

https://youtu.be/KecMlLUuiE4 серия видео[англ.] с канала Learn Code By Gaming, в ней автор пишет игрового бота, так же с opencv, все очень простенько и подробно, и так же как у sentdex-а есть текстовые варианты.
 
Есть небольшой минус - код не очень pythonic style(автор явно не python разработчик), это не прям чтобы плохо, тем более в туториале, но этот момент все же надо учитывать.

P.S. как и предыдущем посте, напомню, за такие эксперименты(тем более в онлайне, где подобное делать ну совсем не стоит) можно улететь в бан. Впрочем, автор говорит об этом в начале видео.
#ии #python #youtube #opencv
Python и отсутствие претендентов

Буквально вчера общался со знакомым .NET-разработчиком, мне во всех красках было описано какой F# замечательный ЯП, почему он превосходит С#(основной инструмент .NET-разработчиков), и почему за ним, очевидно, будущее отрасли.

Разумеется все эти разговоры, что в будущем все предпочтут его C# - крайне спорная штука. Мы все прекрасно понимаем, что все упрется в задачи бизнеса, и если бизнесу будет выгоден такой переход, то он случится, аналогично и обратное(вот такая она суровая реальность).

Однако F#, действительно мощный претендент на место, в каком то смысле это переосмысление, возможно неоднозначное(все таки смена парадигмы), но при этом вполне конкурентоспособное. Он можно сказать дышит в спину C#.

Так вот, довольно интересно, то что буквально все “главные” ЯПы сейчас имеют таких “конкурентов”. 

Еще раз скажу, это действительно конкуренты, не из разряда-так чуть красивше/чуть удобней, здесь речь именно о технической стороне вопроса, закрытии каких-то больших проблем(которые, например, рано легли в основу языка и находятся настолько глубоко, что исправить их просто не представляется возможным).

Java -> Kotlin
C++ -> Rust ежегодно на stackoverflow проходит опрос программистов, и именно этот ЯП лидирует как самый любимый у разработчиков(отрыв от второго места - солидные 20%)
С# -> F#
Js -> TypeScript и Dart

И только питон выделяется из всех, у него вроде как подобных ‘конкурентных’ аналогов нет. Есть много экспериментов на тему ‘так чуть красивше/чуть удобней’, но чего-то серьезного - нет. Справедливо сказать, что таким претендентом в свое время стал сам Python 3, потеснив Python 2, но во-первых, это случилось не вчера, во-вторых, этот пример все равно отличается от выше перечисленных.

Это не значит, что питон лучше/хуже других ЯПов(подобные оценки с инженерной точки зрения просто нелепы), но это значит, что путь развития питона крайне необычен. И судя по реакции сообщества, это движение в верную сторону. И как по мне, это весомый плюс языка, о котором редко говорят.
#python #мысли
Я там парочку постов написал для второго канала, однако мне кажется, они будут уместны и здесь.
Нейронки vs программисты

Серия постов ниже - комплексный ответ на вопрос “конкуренции” со стороны нейронных сетей для разработчиков. Я разбил все на такие небольшие посты-подтемы, которые по итогу должны сформировать полную картину.
#ии #мысли
Робот превратит кусок холста в шедевр искусства?
Прежде чем, перейдем к программированию, поговорим о чем-то более творческом(разве что-то может быть более творческим?)

https://youtu.be/ACKnrECORG4 видео с канала CG Speak, в нем говорится об artbreeder - нейроночке, превратившейся из забавной игрушки в пугающее мощный инструмент, вызывающий немалые опасению у арт комюнити.
Давайте попробуем artbreeder, представим диалог арт-директора и художника(номера соответствуют картинкам):
1. Приходит арт-директор, говорит: - нужен персонаж, вот фото актрисы, сделай пож максимально реалистично, но черты сохрани, ну ты знаешь

2. Первый попавшийся рисунок(главное правило программирования, чем проще-тем лучше, работает и в других областях, поэтому дальше первой выдачи рандомных рисунков не пошел, кстати фото “актрисы” тоже сгенерированный арт)

3. Приходит арт-директор, говорит: - все круто, ты большой молодец, потратил кучу часов на арт, самое время внести правки, правка всего одна, мы решили что это будет анимационный проект в стиле дисней(арт усредненной диснеевской принцессы(4), тоже рандомная выдача), так что будь добр, перерисуй все с нуля, типа как дисней, но как бы реалистично, ну ты понял

5. - Ну в целом молодец, вот ток чет эмоция не читается, вроде и улыбается, а вроде и нет, сделай чтоб точно улыбалась(насколько я понимаю, в рисовании такая коррекция эмоций максимально неприятная/сложная для художника штука)(6)

7. - Еще нужно чтоб это же персонаж, но как бы в старости

В целом, меня впечатляет, учитывая, что все картинки первые попавшиеся, а добавление эмоции и возраста - всего лишь сдвиг соответствующих ползунков. Этого арта(3, 5, 6, 7)минуту назад не существовало(на все ушло буквально несколько минут), а теперь он есть, и на его создание были потрачены какие то смешные усилия.
Разве робот может написать симфонию?

Как фанат Азимова, не мог обойти стороной и этот вопрос.

https://youtu.be/PmL31mVx0XA [англ.]замечательное видео - два профессиональных виолончелиста угадывают кто автор музыкального произведения: человек или ии.
Ох уж этот скайнет
Не помню где именно(вроде это был доклад на какой то программисткой конференции, года 4 назад), услышал такую как бы шутку, знаете из разряда не особо смешных, скорее заставляющих задуматься:

“единственное, что отличает разработчиков нейронок от всех остальных - они в курсе, что скоро нейронки будут делать их работу”

Специально начал с “искусства”, поскольку бытует мнение, что машинам эта штука недоступна. Хотя я понимаю, насколько подобное ошибочно, признаюсь, тот же artbreeder меня впечатлил куда больше чем победа AlphaGo в 2016(ссылочка на Википедию, тому матчу посвящена отдельная страница).

В материале, ссылка на который выше, очень забавен последний абзац:
“Многие игроки выразили желание стать следующим соперником AlphaGo, тем не менее среди наиболее вероятных кандидатов называли Кэ Цзе, который заявлял, что победит программу. Матч с Кэ Цзе состоялся с 23 по 27 мая 2017 года, AlphaGo выиграла все три партии.”

Все это можно подытожить так - нейронки оценивают крайне парадоксальным образом, с одной стороны - удивляются результатам, с другой их(нейронные сети) будто бы недооценивают. Artbreedert из игрушки превратился в конкурента, проф. музыканты могут ошибочно принять работы ИИ за человека, а AlphaGo разгромно победил в самой “человеческой”(в отличии от тех же шахмат, до появления нейронок, в го человек опережал компьютер)интеллектуальной игре.
Программисткое

https://xn--r1a.website/tobeprog/11 этот пост я написал в середине прошлого лета(будем считать, что прошел год), короткая заметка GPT-3, цитата оттуда:

“Наверно самый впечатляющий, для меня, пример - подается словесное описание приложения, нейронка сама его создает”

https://xn--r1a.website/tobeprog/81 эта заметка про Github Copilot, вышла чуть больше месяца назад.

https://xn--r1a.website/tokovIT/22 ну и собственно виновника торжества, из-за которого и выходит этот цикл постов - OpenAI Codex. Пост вышел несколько дней назад.

Всего лишь год, но прогресс просто поразительный.