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

Личное мнение

Послушайте, я такой же разработчик, как и многие другие, у меня как минимум дюжина незавершенных проектов. Можно сказать, что я больше склоняюсь к широким знаниям, чем к глубоким познаниям в какой-либо конкретной теме. Возможно, поэтому я никогда ничего не заканчиваю. Как только я чувствую, что освоил что-то, я просто больше не беспокоюсь. Или, может быть, это то, что я говорю себе. Звучит знакомо?

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

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

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

GitHub Copilot и почему этого было недостаточно

В прошлом году я проповедовал GitHub Copilot своим друзьям и коллегам-разработчикам. Это началось, когда я однажды днем ​​решил изучить Golang. У меня уже была бета-версия CoPilot, поэтому я решил создать API для какого-то проекта, о котором я давно думал, к полуночи у меня была запущена основная инфраструктура, что обычно занимало вдвое больше времени, чем при чтении документации. а затем читать пакетную документацию

круто подумал я..

Таким образом, CoPilot предоставил код, и если вы немного знакомы с основными потребностями создания API, это поможет вам сэкономить от 10 до 90 % времени в зависимости от того, насколько «распространен» конечными точками являются & если это до или после кофе ☕.
Тем не менее, когда позже я решил создать интерфейс в React, я все еще искал учебники, бесчисленные часы на StackOverflow в отчаянной попытке ответить на постыдный вопрос:

С чего мне начать?

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

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

Проблемы для начинающих

Входной барьер обычно представляет собой начало и конец для новичков, пытающихся изучать программирование. Давайте рассмотрим общий путь обучения:
1. Начните с изучения отпечатков, циклов for и, возможно, алгоритма сортировки.
2. Перейдите к просмотру руководства на YouTube о том, как создать игру, например. Змея или Flappy Bird в питоне.

Затем они с гордостью представляют это и говорят "Я построил это", что они и сделали. Практическая разработка — это на самом деле много копипастинга. Копирует ли он предыдущий код или копирует что-то из Stack Overflow. Функции на самом деле являются просто синтаксисом для копирования-вставки.
Разница между новичком и экспертом в том, что они знают, что, почему и почему не следует копировать-вставлять определенные строки кода.
К концу игры-учебника новичок, скорее всего, почти ничего не узнал о том, что, почему и почему нет.

Проблема в том, что обучающие программы — это общение «один ко многим», одностороннее общение.

Почему ChatGPT идеально подходит для обучения

Вот где сияет ChatGPT, ChatGPT на самом деле является двусторонним общением один на один. Почему это важно?

Это просто, тет-а-тет означает, что вы получаете конкретные советы по своим вопросам и не конкурируете за внимание преподавателей. Двусторонняя связь позволяет вам учиться за рамками намеченной цели обучения.

Это становится очевидным, когда вы думаете о других примерах:
Персональные тренеры против общего плана тренировок
Персональный репетитор против онлайн-обучения
Запись к врачу против медицинской консультации в Google

Так почему предыдущие чат-боты или Github CoPilot не были успешными для обучения?
Есть еще одна переменная для успешного преподавателя — точность. При использовании онлайн-учебника точность обычно составляет 99–100%. Это означает, что точность следующего шага в учебнике будет допустимым шагом. Именно в этом ChatGPT отличается от предыдущих моделей, просто он имеет более высокую точность как в фактическом, так и в педагогическом отношении.

В этом плане Github Copilot довольно несовершенен, точность приличная, но он также отвечает просто кодом.
Это похоже на личного тренера, которому не разрешено общаться, они просто будут следовать за вами, показывая упражнения и после того, как вы выполните упражнение, им не будет разрешено говорить что-то вроде:

«Хорошая работа»
«Вам нужна более широкая позиция»
«Вы чувствуете это прямо здесь? (указывает на конкретную мышцу)”

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

Таким образом, CoPilot отлично подходит для разработчиков, которые немного знают, что они делают, но им просто нужно быстро напомнить или ускорить процесс. Для сравнения, ChatGPT предназначен для тех случаев, когда вам нужно больше, чем просто это.

Итак, теперь, когда новички могут получать педагогическую, выше среднего точность и, что более важно, индивидуальные отзывы о своих проектах разработки, возможно, мы увидим больше змей и летающих птиц, и, возможно, вам, как новичку, пора опубликовать свой первое приложение?

Я расскажу вам, как я это сделал.

Как я создал и опубликовал настоящее мобильное приложение менее чем за 50 часов

Итак, это будет общее пошаговое руководство о том, как я буквально создал и опубликовал свое приложение менее чем за 50 часов.
Я считаю, что любой может это сделать, это может быть некрасиво, но это сработает.
Самое главное, вы, вероятно, многому научитесь.

Я использовал CoPilot в начале, это было полезно в том смысле, что когда мне было лень подсказывать ChatGPT, это могло помочь мне очень быстро. Я настоятельно рекомендую использовать оба для скорости.

Если вы хотите сделать что-то подобное, попробуйте продолжить, но попробуйте использовать свою собственную идею, возможно, другой стек. Попробуйте создать веб-сайт, приложение для iOS или почему бы и нет. Основной принцип:
Спросите ChatGPT.

Шаг 1, Идея:

Выясните, что вы хотите построить, я знал, что хочу приложение для социальных сетей, использующее изображения, GPS и аудио. Не хватает воображения?
Спросите ChatGPT.

Шаг 2, технический стек:

Выясните, какой технический стек вы хотите использовать, я знал, что хочу использовать Flutter для Android.
Я знаю, что ему нужна база данных для изображений, аудио и пользовательского контента, и я знаю, что мне нужна аутентификация пользователя.
Я также знаю, что Firebase имеет все это из коробки и хорошо интегрируется с Flutter.
Я также знаю, что для мобильной разработки можно использовать эмуляторы Android Studio.

Не знаете, какой стек подходит для вашего проекта или что нужно установить для локальной разработки?
Спросите ChatGPT

Шаг 3, начните кодировать:

Теперь у меня было все настроено: флаттер, эмулятор и запуск демонстрационного приложения для флаттера, я начал подсказывать:

Копипаст, ура openAI 🍻

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

Сначала давайте посмотрим, что он сгенерировал с помощью этих случайных кругов.

Голубой:
Что сгенерировало ChatGPT, что было визуальным представлением того, что я просил.

Остальное — это то, что мне нужно, чтобы все было готово к работе.
Если вы новичок, вы, вероятно, не знаете это.
Но это хорошо, у вас есть надежный первый шаг. 🎉
В дальнейшем вы можете задавать такие вопросы, как:

"Как добавить сюда новые элементы?"

"Подождите, когда я перезапускаю приложение, новые элементы исчезают, как мне сделать так, чтобы они остались?"

"Мой код становится довольно сложным, не могли бы вы подсказать, как разделить его на несколько файлов"

"Теперь кажется, что если я использую приложение с двумя пользователями одновременно, они не видят одинаковые элементы друг друга, как я могу поделиться ими между пользователями?"

Задавайте общие вопросы, спрашивайте о структуре, спрашивайте о лучших практиках, спрашивайте варианты. Спросите ChatGPT.

Скопируйте и вставьте свой код и скажите: «Это то, что у меня есть, но я хотел бы иметь это».

Однако, поскольку я изучал CS 5 лет и однажды использовал флаттер, прежде чем я спросил:

/Flex

Затем я задал следующие вопросы:
1. Можете ли вы поместить это в класс?
2. Как мне импортировать этот класс?
3. Создайте несколько фиктивных данных 🤖
4 , На самом деле мне нужен еще один параметр под названием «Изображение» с соответствующим типом.
5. Я хочу, чтобы прокрутка была бесконечной и перезагружалась, когда вы пролистнули вверх, знаете, как в Instagram.
И так на…

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

Ошибки в вашем коде? Копипаст и ошибка. Обычно он находит вашу ошибку.

Не ленитесь с подсказками, продуманные подсказки = лучший результат

Это приглашение буквально дало мне код, который я мог скопировать и вставить, и это сработало с места в карьер.

Теперь у меня был один экран, я то и дело подсказывал:
Как перемещаться между экранами
Как передавать данные между экранами
Как сохранять пользовательские данные
Как реализовать карту
Как сохранить запись локально
Как загрузить запись в Firebase
Как получить запись из Firebase
Как получить доступ к камере

Будьте умны, просите функции, потому что функции можно использовать повторно :)

Шаг 4, проверка вашего кода:

Когда у вас все получится, вам еще предстоит пройти долгий путь.

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

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

Шаг 4, доход (необязательно):

Ну, так как мы не хотим издавать бесплатную игру Snake, которая абсолютно ничего для нас не делает. Давайте рассмотрим более реалистичный подход.
Я хотел узнать из первых рук, как я могу на самом деле заработать 2 цента на своем приложении.
Поэтому я спросил ChatGPT, как я могу сделать доллар?
Google AdMob казался достаточно простым ✔

На самом деле, если вы дошли до этого шага, вы, вероятно, сможете реализовать это довольно быстро.

Шаг 5, выход в эфир:

Поскольку мой бэкэнд был размещен на Firebase, мне не пришлось об этом сильно беспокоиться. Но я так и не понял, как опубликовать его в Google Play.
Поэтому я спросил:

«Что нужно сделать, чтобы опубликовать приложение в Google Play?»

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

Но вы всегда можете запросить у ChatGPT бесплатные или более дешевые варианты.

Результат:

https://play.google.com/store/apps/details?id=se.nordicnexus.memgeo

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

Однако я опубликовал.