Не будьте хорошим программистом: формируйте свою программистскую жизнь в эпоху искусственного интеллекта
Не будьте хорошим программистом: формируйте свою программистскую жизнь в эпоху искусственного интеллекта

Не будьте хорошим программистом: формируйте свою программистскую жизнь в эпоху искусственного интеллекта

В мире программистов число 1024 — это не только двоичный символ, но и самое привычное «целое число» в сердцах наших технических людей. Каждый год 24 октября программисты используют это как возможность подвести итоги роста и достижений прошлого года. В этом году, в День 1024 программиста, мы положили начало энергичному развитию технологии искусственного интеллекта, которая глубоко повлияла на наши методы программирования, мышление и будущее.

image-20241020211401814
image-20241020211401814

1. Воспользуйтесь преимуществами ИИ, чтобы написать потрясающий «код».

Благодаря постоянному развитию технологий искусственного интеллекта, особенно выпуску видеомодели Vincent Sora и мощной аудиосистемы GPT-4o, наша работа по разработке привела к беспрецедентным изменениям. Как разработчик, я глубоко ощущаю огромный потенциал ИИ в повышении эффективности работы. Используя GPT-4o для генерации и оптимизации кода, я могу не только быстрее выполнять задачи, но и получать новые идеи и вдохновение при решении сложных задач.

Например, в одном из моих недавних проектов нам нужно было реализовать систему обработки звука в реальном времени. Изначально я потратил много времени на поиск решений в документации и примерах кода. Однако когда я решил перейти на GPT-4o, дело приняло другой оборот. Благодаря простому описанию я получил полную структуру кода и на основе этого скорректировал и оптимизировал ее. Этот опыт заставил меня осознать, что ИИ может не только повысить эффективность нашей работы, но и помочь нам найти направление в океане технологий. Ниже я специально закодировал оригинальную технологию, исходя из своих потребностей и кода GPT-4o. , ниже.

Внедрение системы обработки звука в реальном времени.

При реализации системы обработки звука в реальном времени,Сначала нам нужно выбрать подходящую аудиотеку. В этом примере,я использовалPythonизpyaudioБиблиотека для захвата и обработки аудиопотоков,объединенные одновременноnumpyБиблиотекаобрабатывать аудиоданныеизиметь дело с。

image-20241020211531829
image-20241020211531829

Вот базовый скелет кода, который я сгенерировал с помощью GPT-4o:

1. Установите необходимые библиотеки.

Убедитесь, что вы установилиpyaudioиnumpyБиблиотека。Если еще не установлен,Можно использовать следующие команды:

Язык кода:bash
копировать
pip install pyaudio numpy

2. Код обработки звука в реальном времени.

Вот полный пример кода, реализующий обработку звука в реальном времени:

Язык кода:python
кодКоличество запусков:0
копировать
import pyaudio
import numpy as np

# Установить параметры звука
FORMAT = pyaudio.paInt16  # аудиоформат
CHANNELS = 1               # мононуклеоз
RATE = 44100               # Частота выборки
CHUNK = 1024               # Размер каждого аудиофрагмента

# Создать объект PyAudio
p = pyaudio.PyAudio()

# Открыть аудиопоток
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("Начать обработку звука...")

try:
    while True:
        # Чтение данных из аудиопотока
        data = stream.read(CHUNK)
        # Преобразование байтовых данных в массив numpy
        audio_data = np.frombuffer(data, dtype=np.int16)

        # Выполните простую обработку звука. Вот пример расчета среднеквадратического значения (RMS) звука.
        rms = np.sqrt(np.mean(np.square(audio_data)))
        print(f"Текущее среднеквадратическое значение аудио: {rms:.2f}")

except KeyboardInterrupt:
    print("Остановить обработку звука...")

finally:
    # Остановить и закрыть потоки
    stream.stop_stream()
    stream.close()
    p.terminate()

3. Анализ кода

В этом примере,наспервый ИмпортированоpyaudioиnumpyБиблиотека,и установите параметры звука. Затем,проходитьPyAudioОбъект открывает входной аудиопоток。в цикле,Продолжаем читать аудиоданные,и использоватьnumpyобработать это。В этом примере,Мы рассчитали среднеквадратичное значение (RMS) аудиосигнала.,Это может помочь нам понять интенсивность звука.

image-20241020211555069
image-20241020211555069

4. Расширенные функции

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

  • Добавьте звуковые эффекты (например, реверберацию, эхо и т. д.).
  • Сохраните обработанный звук в файл.
  • Включите аудиовизуализацию в реальном времени.

Используя GPT-4o, я смог быстро сгенерировать структуру кода и внести необходимые изменения, что значительно повысило эффективность разработки. Разработка этой системы обработки звука в реальном времени не только позволила мне осознать мощь искусственного интеллекта, но и расширила мое понимание обработки звука на практике.

2. Ежегодные практические случаи «кода» крупного рогатого скота.

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

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

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

Реализация приложения для распознавания изображений на основе машинного обучения

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

image-20241020211634033
image-20241020211634033

1. Подготовка данных

Чтобы повысить точность модели,Мы получили общедоступные наборы данных с платформ с открытым исходным кодом, таких как Kaggle.,в то же времяиспользовать Методы увеличения данных для масштабированиянасизобучающий набор。насиспользоватьImageDataGeneratorдля улучшения данных,Увеличивайте разнообразие изображений.

Язык кода:python
кодКоличество запусков:0
копировать
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# Создайте генератор дополнения данных
train_datagen = ImageDataGenerator(
    rescale=1./255,           # нормализация
    rotation_range=40,        # случайное вращение
    width_shift_range=0.2,    # горизонтальная панорама
    height_shift_range=0.2,   # Вертикальный перевод
    shear_range=0.2,          # резать
    zoom_range=0.2,           # Увеличить
    horizontal_flip=True,      # Случайно перевернуть
    fill_mode='nearest'       # стратегия заполнения
)

# Создать обучающий набор
train_generator = train_datagen.flow_from_directory(
    'data/train',             # Каталог обучающих наборов
    target_size=(150, 150),  # целевой размер изображения
    batch_size=32,
    class_mode='binary'       # Две категории
)

2. Построение модели

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

Язык кода:python
кодКоличество запусков:0
копировать
from tensorflow.keras import layers, models

# Постройте модель сверточной нейронной сети
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
    layers.MaxPooling2D(2, 2),
    
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D(2, 2),
    
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.MaxPooling2D(2, 2),
    
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.MaxPooling2D(2, 2),
    
    layers.Flatten(),
    layers.Dense(512, activation='relu'),
    layers.Dense(1, activation='sigmoid')  # Две категории
])

# Скомпилировать модель
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

3. Модельное обучение

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

Язык кода:python
кодКоличество запусков:0
копировать
# Модель обучения
history = model.fit(
    train_generator,
    steps_per_epoch=100,  # Количество шагов за эпоху
    epochs=15,             # Количество эпох обучения
    verbose=1
)

4. Оценка результатов

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

Язык кода:python
кодКоличество запусков:0
копировать
import matplotlib.pyplot as plt

# Точность графика и потери во время обучения
plt.plot(history.history['accuracy'], label='Точность обучения')
plt.plot(history.history['loss'], label='потеря обучения')
plt.title('Модельное обучениепроцесс')
plt.xlabel('Epoch')
plt.ylabel('точность/потеря')
plt.legend()
plt.show()
image-20241020211647179
image-20241020211647179

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

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

3. «Программировать жизнь» может быть проще простого, не будучи мастером.

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

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

Установите хорошие привычки в учебе и планировании карьеры.

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

1. Составьте план обучения

первый,Крайне важно иметь четкий план обучения. Будь то изучение нового языка программирования, фреймворка или алгоритма.,Предварительное планирование может помочь нам эффективно использовать наше время. Рекомендуется уделять изучению хотя бы несколько часов в неделю.,Объедините онлайн-курсы, книги и практические проекты. например,Я недавно училсяGoязык,Запланируйте закрепить полученные знания, выполнив небольшой проект.

Пример плана обучения
  • первая неделя:учитьсяGoязыкбазовая грамматика,Пройдите соответствующие онлайн-курсы.
  • вторая неделя:реализовать простойизRESTful API, HTTP-пакет приложения и обработка маршрутизации.
  • Неделя 3:Изучите и внедрите сохранение данных,использоватьGormвыполнять данные Библиотекадействовать。
  • Неделя 4:оптимизациякодструктура,И попробуйте использовать функции параллелизма Go для повышения производительности.

2. Активно участвовать в проектах с открытым исходным кодом.

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

3. Участвовать в обмене технологиями и мероприятиях по обмену технологиями.

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

4. Накопить проектный опыт

Обучение на практике — лучший способ улучшить свои навыки программирования. Я рекомендую каждому разработчику попробовать реализовать несколько личных проектов. Этими проектами могут быть приложения, веб-сайты или инструменты, предназначенные для решения конкретной проблемы. Благодаря проектной практике мы можем применить полученные знания в реальных сценариях, обнаружить собственные недостатки и улучшить их.

Примеры проектов
  • Инструменты обработки изображений:использоватьPythonиOpenCVБиблиотека,Разработать приложение для фильтрации изображений,Поддержка пользовательских эффектов фильтра.
  • Система личного блога:использоватьFlaskилиDjangoрамка,Создайте простой сайт личного блога,Поддерживает функции публикации и комментирования статей в формате Markdown.
  • Приложение для запроса погоды в режиме реального времени:использоватьAPIПолучить данные о погоде,Разработать фронтенд-приложение,Отображает информацию о погоде в реальном времени для города пользователя.

5. Постоянно внедряйте новые технологии.

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

6. Планирование карьеры

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

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

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

image-20241020211946228
image-20241020211946228

Сообщение

1024 День программиста – день, достойный нашего празднования. В этот особый момент давайте вместе рассмотрим прошлые достижения и проблемы и с нетерпением ждем безграничных возможностей будущего. Давайте продолжим писать больше «кода» на пути развития технологий, не будем дураками и встретим следующее десятилетие с большим энтузиазмом и смелостью!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose