Всего несколько месяцев назад я и представить не мог, что скажу то, что скажу сейчас: AI-ассистанты действительно полезны для программистов, и надо активно учиться их применять, как минимум получите

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Я много с ChatGPT чатился, и иногда кажется, что AI действительно понимает, что происходит :) Изучил ли он в самом деле программирование и модель мира в целом, или это всё ещё градиентный поиск шаблонов? Но граница становится всё более нечёткой, и "невозможное" скоро придётся всегда брать в кавычки. Ещё в прошлом году подобное казалось несбыточной мечтой где-то за горизонтом десятилетий, а сейчас свободно доступно.

ChatGPT многие специалисты сейчас активно проверяют на прочность. Универсальные оценки такие, что его IQ около 85, в SAT (вступительный экзамен для поступающих в американские колледжи и университеты на бакалавриат, оценки по английскому и математике) набирает 500+500, тоже вполне средний уровень. ChatGPT также успешно прошёл AP CS A 22 — экзамен по информатике для американских старшеклассников (32 из 36 баллов), и т. п. И на подходе уже AlphaCode и ещё несколько подобных, натренированных на математику и информатику весьма высокого уровня.

Думаю, что за считанные годы закроется множество онлайн-курсов "в профессию программист" и им подобных :) Зачем они, когда у вас под рукой есть классный ментор 24/7. А вот стратегическая тема моей Школы, наоборот, станет крайне актуальной: как проектировать сложные системы, как их правильно конструировать из готовых кусочков кода. Фактически, это работа сеньора/тимлида, у которого в подчинении виртуальные программисты, которые никогда не устают и работают бесплатно :)

Особо хочу отметить такую фишку ChatGPT, что он не просто даёт код решения задачи, но и поясняет словесно, как он работает, это крайне полезно в обучении. Более того, ChatGPT можно например попросить умышленно добавить баг в код, он это сделает и объяснит, что это за баг! Но это всё также значит, что уровень джунов стремительно обесценивается, и войти в ИТ через джуниорский уровень будет всё труднее (при том, что и сегодня уже весьма сложно). С другой стороны, хорошая весть, что с помощью AI начинающие смогут гораздо быстрее доучиваться до хорошего профессионального уровня.

Требования к программистам через три года (шутка?):

— умеет читать и писать

— знает как формулировать запросы к AI

— способен подсказывать AI в нужном направлении

— (будет бонусом, но не обязательно) может распознавать, когда AI ошибается

=

Ещё важный момент: системы уровня ChatGPT уже в этом десятилетии дадут возможность фактически любому, кто умеет ясно мыслить и генерировать хорошие идеи, воплотить их в реальном ИТ-проекте быстро и бесплатно, и затем зарабатывать на этом. Уже сейчас можно нагуглить примеры, как люди, не умеющие программировать, с помощью ChatGPT за считанные часы создают и разворачивают свои веб-системы. Это тот самый универсальный no-code, о котором мечтают десятилетиями, и вот минимально действующая версия уже тут.

1. Придумываете свою гениальную идею.

2. Спрашиваете ChatGPT, как декомпозировать её на задания для условного программиста.

3. По каждому заданию просите ChatGPT либо выдать код, либо, если это пока сложно, продолжить декомпозицию до более простого уровня.

4. Компилируете код и собираете свой продукт.

5. Профит!

=

Придёт ли AI на замену StackOverflow, сейчас уже мемы на эту тему появились? Ну пока что сам ChatGPT на StackOverflow забанили :) Он выдаёт многовато ошибочных рекомендаций, и это пока его главная беда (а также и опасность). Например, вчера его запретили в США на школьных компьютерах, потому что по разным гуманитарным запросам он подчас выдаёт жуткую ересь, а отношение к нему в народе уже как к гуглу-справочнику, а не как к AI. Пока никакая система в мире и близко не набирала такое число пользователей с такой скоростью, как ChatGPT.

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

Конечно, код ChatGPT надо очень тщательно перепроверять и тестировать. Отдельная опасность, что выдача AI всегда "выглядит правильно", синтаксически корректна и нормально компилируется :) даже если семантически она ошибочная. Поэтому получение качественных результатов от AI — это полноценный скилл, который надо целенаправленно тренировать, и тут у меня большие планы, думаю, как научить миддлов, и возможно сеньоров, получать гораздо более глубокие и точные результаты. Ну а для начинающих программистов это вообще клад.

И в целом, как программисту совершенствовать свои рабочие процессы, ChatGPT в качестве ментора может хорошо помочь. Очень здорово, что такие скиллы по сути своей творческие, изобретательские! Например, полезно призывать AI на помощь, когда мы формулируем задачу так, что решение её человеку найти трудно, но зато легко протестировать, легко отладить и легко исправить. Ведь мы сначала придумываем в уме алгоритм решения, а затем кодируем этот алгоритм в синтаксисе нашего языка программирования. И поэтому чем точнее и полнее мы словесно опишем задание, близко к уровню формальной спецификации, тем лучше и качественнее AI сгенерирует решение. Это отличная практика саморазвития для любого программиста.

=

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

Но когда я прошу его улучшить некоторый класс с очевидными проектными ошибками, он становится совсем беспомощным и только портит код ещё больше. А когда зову его на code review, он рефакторит код просто на кучу наглядно названных переменных, что только удлиняет код и добавляет в него ненужные состояния. При моих прямых подсказках ChatGPT работал реально лучше: удалял лишние проверки из кода, и даже добился stateless версии, избавившись от всех локальных переменных, прокомментировав так: "Эта пересмотренная версия функции дает тот же результат, что и предыдущие версии, но она более эффективна, поскольку устраняет ненужный флаг". Это, честно говоря, реально удивительно, несмотря на то, что AI так и не смог приблизится к наиболее предпочтительному для меня элегантному решению даже в семи строчках кода.

Кроме того, по моим первым прикидкам, в контексте проектирования, в контексте того, а как именно разрабатывать качественное программное обеспечение, ChatGPT пока совсем плавает. Почему, очевидно, говорил об этом уже много раз: материалов на эту тему в онлайне почти нету :)

В целом, пока ChatGPT — это просто зеркало интернета. Его уровень от начинающего до условного джуна, и в этом промежутке с ним вполне можно нормально общаться, консультироваться, давать задания. И "понимание" контекста безусловно в некотором объёме уже присутствует. Как оно это делает?

=

Об этом можно ещё много рассуждать. Что именно мы потенциально можем построить с помощью ChatGPT и подобных систем? Продолжит ли AI совершенствоваться так же быстро, как в этом году? Что это значит для наших рабочих мест? А если мы позволим ему управлять нашими компьютерами (технически это можно и сейчас сделать), не станет ли он очень быстро смертельно опасным?

Но даже если окажется, что нынешний уровень AI в программировании — это его потолок, и никогда не станет лучше, всё равно он значительно улучшит нашу работу, и это ещё один новый полезный инструмент в нашем арсенале, причём очень необычный и творческий. И я уверен, что скоро найду хорошие способы его использовать применительно к стратегической теме моей Школы — проектирование/design сложных систем.

P.S. AI плохого не посоветует :)

The first step to becoming the world's strongest programmer is to gain a solid foundation in computer science and programming concepts. This includes learning about algorithms, data structures, and software design, as well as mastering a few programming languages. You can do this by taking classes, attending workshops, or completing online courses. You can also try working on your own projects or participating in coding challenges and hackathons to apply your knowledge and gain practical experience. As you continue to learn and develop your skills, you should also strive to stay up-to-date with the latest developments in the field and continuously expand your knowledge.

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

P.P.P.S. Из России ChatGPT недоступен, и впн не помогает.

Как можно зарегистрироваться, в тг подробно рассказал пошагово:

https://t.me/lambda_brain/581


Источник: t.me

Комментарии: