В этой статье мы поговорим о том, как ChatGPT и GitHub Copilot от OpenAI изменят то, как мы проводим интервью, и почему это хорошо.
Часть 2 уже в эфире:
Прошло менее двух недель с тех пор, как ChatGPT был выпущен в дикую природу, а GitHub Copilot существует уже целый год (выпущен 29 октября 2021 г.) и даже больше. Похоже, самое время поговорить о том, как устарел Copilot, который изначально был «этот ИИ лишит нас работы», и как новый претендент (честно говоря, я бы назвал его бесплатным инструментом) вписывается в него.
Что такое второй пилот? И мой опыт в этом.
Реквизит GitHub, честно говоря, их маркетинговая команда точно знала, как называть Copilot. Взгляните на первую строку на странице продукта.
И это именно то, что всегда было. Я получил доступ к раннему доступу через месяц после его выхода, и с тех пор я ежедневно езжу на втором пилоте, а также подписался на годовой план, как только он был запущен. Говоря о себе, я создавал и масштабировал свой стартап skillShack(⚡); уже 2 года, и за это время я использовал Copilot для генерации тонн шаблонного кода и смарт-блоков. Написание аннотаций типов на TypeScript при наличии достаточного контекста Copilot предложит их вам. Вам просто нужно написать нужное количество кода, и тогда он предложит код, который сэкономит время.
Обычно код, который я находил наиболее используемым, представлял собой аннотации типов по обе стороны API, когда я смешивал языки (некоторые из моих API были построены на FastAPI для обслуживания моего режима Tensorflow для аналитики), в то время как оставшийся стек был PERN (Postgres Express React/Next NodeJS), это сделало большую часть моей разработки беспроблемной, потому что я не переключал панели и не перегружал память, пытаясь запомнить все эти свойства.
Это также был отличный способ написать модульные тесты, большую часть времени я просто нажимаю Tab, чтобы создать модульные тесты и просмотреть их в конце, на мой взгляд, это недооцененный вариант использования Copilot.
И в некоторых местах, где я чувствовал себя особенно ленивым, я просто тратил некоторое время на написание подробного комментария о том, что я хотел, например, в одном случае с переворачивающейся каруселью, и это давало мне логику, чтобы гарантировать, что вы вернетесь к началу. после последней страницы и CSS-преобразования, чтобы идти с ней, в зависимости от направления, в котором вы прокручивали, это легко сделать обычно, но потребовалось бы несколько настроек, чтобы заставить его работать именно так, как я хотел. Большая часть сгенерированного кода требует проверки, но это меньше умственных накладных расходов, если вы знаете, с чем работаете, именно здесь помогает знакомство с тем, с чем вы работаете, поскольку синтаксис или особенности библиотеки/фреймворка не будут смущать вас. Это было бы нечто большее: «О, я понимаю, почему здесь решили использовать мемоизацию, почему я не подумал об этом?» а не «Что здесь происходит?». Вы склонны ошибаться и иногда использовать неправильную стратегию во время работы, и Copilot, как «парный программист», поможет вам в этом.
Это похоже на переключение с простого текстового редактора на написание кода в IDE с подсветкой синтаксиса и выделением ошибок, вы получаете больше контекста и подсказок, которые помогают вам сосредоточиться на том, что вы делаете, а не сканировать строки вручную на наличие проблем и опечаток. уверен, что хороший программист должен уметь смотреть на синтаксис и выяснять, что не так, или исправлять ошибки на основе предупреждений, о которых некоторые могут спорить, но это буквально улучшение качества жизни.
Восприятие было неоднозначным, некоторые считают, что подсказки мешают работе (я обычно отключаю и включаю подсказки, когда это необходимо, чтобы избежать этого беспорядка), а другие хорошо разобрались с «подсказками» (которые, как вы увидите, так же важно с ChatGPT). В общем, это инструмент. Я использую Neovim, в то время как другие используют VSCode, я продуктивно работаю с Neovim, потому что я изучил его особенности и научился использовать их, чтобы получить преимущество, в то время как другие привыкли к рабочему процессу в VSCode и, вероятно, в некоторых случаях могут работать как быстро, как я мог. Все дело в том, как вы используете инструмент.
Что такое ChatGPT? И мой опыт в этом.
ChatGPT вышел 30 ноября 2022 года и сразу же попал в заголовки, как и Copilot в прошлом году, о том, как он, вероятно, отнимет у вас работу. Да, ChatGPT является значительным обновлением по сравнению с Copilot, и он делает это, а также может отвечать на вопросы, не связанные с CS, такие как нюансы того, почему Свет ведет себя как частица и волна одновременно.
Спасибо инженерам и командам ChatGPT и Copilot, прогресс за год просто выдающийся. Когда я начал работать с NLP и NLU в 2014 году, я пробовал различные языковые модели на ранних стадиях и методы создания базы знаний, когда работал над своим собственным Jarvis вы можете увидеть его в действии здесь, и когда я масштабировал его и изучил такие вещи, как BERT / ALBERTA и GPT-1, я мог видеть ограничения и компромиссы в то время и ожидал, что он достигнет этого уровня в лучшем случае к 2025 году, так что лично это похоже на супер захватывающее вещь для меня!
Кроме того, ChatGPT, по крайней мере, в контексте CS, может использоваться для генерации кода для вас. С Copilot вы интегрируете его в свою IDE, и он будет сканировать ваш код и давать себе контекст для подсказок. Таким образом, комментарии, которые вы написали бы перед объявлением функции, и код над ним помогут дать вам наилучшую подсказку. Как следует из названия, ChatGPT более разговорчив. Вы должны дать ему умную подсказку, чтобы он написал код для вас вместе с пояснениями (в этом случае Copilot создает хорошую документацию, в то время как вы можете использовать ChatGPT, чтобы получить лучшее объяснение ELI5 кода, который он вам дал).
Вот пример, в котором предположим, что вы новичок в python и пытаетесь получить некоторый код для генерации простых чисел и застряли на логике. Вы можете попросить ChatGPT сгенерировать для вас код, и он предоставит вам рабочее решение с пояснениями.
Теперь, если оставить в стороне мемы о токсичности StackOverflow, это хороший способ получить некоторые полезные объяснения, когда материал, на который вы ссылаетесь, не так ясен (не все материалы идеально подходят для каждой темы). Я бы по-прежнему рекомендовал обратиться за помощью к StackOverflow или Reddit, вы встречаете крутых людей, как только владельцы вил уходят, и это всегда хорошо.
В следующем разделе я расскажу о том, как это изменит то, как мы проводим собеседования.
Как это изменит то, как мы проводим интервью?
Подготовка к собеседованию по программированию всегда была, Grind LeetCode и надеждой на лучшее. Хотя я не против соревновательного программирования и способов улучшить код с помощью LeetCode/HackerRank, многие люди в конечном итоге работают над ними и никогда практически не создают проекты, выходящие за рамки учебных пособий. На мой взгляд, это порождает собственный оттенок синдрома самозванца. Тем не менее, на сегодняшнем рынке никого нельзя обвинить в том, что он перемалывает LeetCode, чтобы получить большую работу в FAANG (теперь MANGA?) и начать с нее свою карьеру. Тем не менее, с появлением Copilot и ChatGPT сцена собеседования должна серьезно взглянуть на то, как на самом деле должны измениться собеседования, чтобы увидеть, как потенциальные кандидаты используют эти инструменты для создания более качественного кода за меньшее время без введения технического долга.
Ради интереса я забросил проблему Hard
LeetCode в ChatGPT и просто скопировал описание проблемы (никаких других изменений в подсказке), вот что я получил:
Если бы я немного подправил подсказку, я мог бы получить больше, чем псевдокод, но на самом деле это очень удобно, поскольку для большинства из нас получение правильного псевдокода является самой сложной частью проблемы, для тех, кто пытается использовать это для обмана, будет трудно придумать код, потому что им, вероятно, не хватает опыта работы с языком для правильной реализации псевдокода (и будет хуже с более сложным языком, таким как C++, по сравнению с Python, который прямо вперед от псевдокод).
Вывод для людей, разрабатывающих интервью сейчас, будет заключаться в том, чтобы переключиться на более практическое решение проблем, связанных с объемом работы на работе, больше домашних проблем, работу с доской и, желательно, обсуждение личных проектов и их разбивку, чтобы увидеть качество работы. разработчик перед вами. Потому что, если вы понимаете, как все сочетается друг с другом, вы можете использовать эти инструменты для создания надежной системы с большей скоростью. Это небольшая смена ролей, когда вы теперь руководите командой, а Copilot и ChatGPT становятся членами вашей команды, которым вы даете указания и работаете над выполнением своей работы. Вам придется планировать все более подробно, теперь у вас есть время и энергия, чтобы внедрить TDD (огромное повышение качества жизни для большинства разработчиков в небольших командах в стартапах) и многие другие методы устойчивого развития.
Заключительные мысли
В какой-то момент умение писать умные подсказки станет обязательным навыком, точно так же, как гугление является обязательным навыком. В конце концов, мне все еще нравится думать, что 90% кода, который мы пишем (CRUD-операции, целевые страницы, формы), можно было бы сгенерировать с их помощью, но творческая часть и часть решения проблем написания кода, UX и оптимизации не учитываются. не уйдет в ближайшее время. На данный момент я не удивлюсь, если вы сможете использовать Stable Diffusion для создания мокапов.
В каждой области происходят сбои, когда вводится более высокая степень автоматизации, и некоторые рабочие места прерываются, и это всегда неинтересно, когда это происходит с вами, но в сфере технологий мы можем быстро учиться, быстро строить и быстро повышать квалификацию.
Тем временем вы можете создавать проекты и готовиться к грядущим изменениям в том, как будут проходить собеседования.
И если вы один из таких людей или группа, то загляните в skillShack(⚡️); — Платформа для вас, чтобы делать именно это:
- Сеть
- Поделитесь своими проектами (получите отзывы о вашем коде или его исполнении от нашего сообщества)
- Документируйте свой прогресс
- Общайтесь с другими разработчиками
- Сотрудничайте, находите возможности и многое другое!
Вы можете собрать всю свою деятельность в одно замечательное резюме, которое вы можете взять с собой куда угодно, и сертификаты, которые хвалят вас за каждый проект, над которым вы работали!
Спасибо, что дочитали до конца, продуктивного дня! Рассмотрите возможность подписаться на меня, если хотите присоединиться ко мне в моем путешествии (вы можете прочитать о моем путешествии здесь), поскольку я создаю и масштабирую эту компанию, чтобы привлечь больше разработчиков, таких как вы!