Как стать автором
Обновить

Учитесь, глупцы

Время на прочтение7 мин
Количество просмотров6.7K

Современный мир стремительно меняется и подбрасывает нам всё новые вызовы. Кажется, что ландшафт современного IT изменится кардинально. Не зря же вся мировая AI тусовка написала письмо с просьбой «немедленно приостановить» обучение систем ИИ, «более мощных, чем GPT-4».

Я провел небольшое исследование и спросил всех до кого смог дотянуться следующее:

Я пишу обзорную статью для Хабра об инструментах AI. Интересуют реальные кейсы применения в работе этих инструментов. Если ты использовал\использовала его и есть желание поделится со мной, то прошу это сделать.

Множество людей самых разных профессий поделились своим опытом и экспертизой. Я оставил самые яркие и интересные, надеюсь, вам понравится.

Ниже я публикую реальные кейсы, которыми со мной поделились:

Senior backend developer/Team lead

ChatGPT-3

Ревью

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

Кодинг

Хороший пример:

Рабочий код с очень подробным описанием каждого действия, которое можно добавлять в учебники по PHP
Рабочий код с очень подробным описанием каждого действия, которое можно добавлять в учебники по PHP

Плохой пример:

Мне нужно провалидировать, что строка соответствует определённому формату даты.
Мне нужно провалидировать, что строка соответствует определённому формату даты.
Создавать объект, хранить его в памяти, делать преобразования и всё такое, да ещё и в цикле - непозволительная роскошь.
Создавать объект, хранить его в памяти, делать преобразования и всё такое, да ещё и в цикле - непозволительная роскошь.

Отличный пример:

Просим написать регулярку под данный формат даты и в этом цикле вместо игр с объектами даты - проверяем строку по регулярке
Просим написать регулярку под данный формат даты и в этом цикле вместо игр с объектами даты - проверяем строку по регулярке

Тесты

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

Вывод

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

Experience designer

ChatGPT-3

  • Использую его часто вместо Lorem Ipsum, давая при этом какой‑то background: «Act as developer and prepare text example with text of logs» (нужен был пример логов).

  • Для меня это инструмент, так как я единственный дизайнер, то могу задать ситуацию и использовать дополнительно. Например, я снова даю background и прошу сделать что-то, типа: "Act as a senior UX resercher who is also experienced in micro-copy and UX Writing. Prepare questions like hypotheses for usability research of an enterprise digital cockpit and for users who see the first time the cockpit".

В итоге, изменила всего одно предложение, так как специфичная задача и проект.

  • Сейчас по курсам я провела "интервью" с чатом, то есть он мне дал данные от аналитических центров + пример интервью и саммари — это прям огонь, потому что задача на курсах сложная, чтобы искать респодентов.

  • Для другого задания из курсов я попросила приготовить вопросы для 5W техники и дала также бэкгроунд и в каком направлении думать: "Act as a senior UX resercher who is also experienced in micro-copy and UX Writing. Prepare questions using 5Ws 1H technique to think of what are features the application can provide to make the experience of roommates better."

Это мне нужно было для примеров, чтобы понимать, что делать надо.
Это мне нужно было для примеров, чтобы понимать, что делать надо.
  • Рекоммендации на линкедин: "As a senior UX designer who had a great experience to work together with a Lead Designer. Prepare the LinkedIn rocommendation for the Lead Designer."

Это использовала с минимальными изменениями.
Это использовала с минимальными изменениями.

Senior Frontend developer

ChatGPT-4

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

using fasttext and python implement a service in google colabs that receives a text and recognises what how much, for what and for whom user wants add money?

examples:
user writes: "please add 500 eur for a car rental service for me, alice and bob"
service returns: {amount: 500, currency: eur, participants: [me, alice, bob], description: car rental}

user writes: "add 80 eur for a restaurant for me and alice"
service returns: {amount: 80, currency: eur, participants: [me, alice], description: restaurant}

user writes: "add 1000 eur for a amusement park passes for all"
service returns: {amount: 1000, currency: eur, participants: [], description: amusement park passes}

I want a better accuracy level so I don't think regular expressions would be enough for me. But if you think fasttext is too much you can suggest another ai based model. Just keep in mind that user can not only write add, but also append or set up or any other things

Вывод: Он может помочь вам реализовать ваш пет проект на незнакомом вам стеке , главное направлять его.

Senior iOS developer/Team lead

ChatGPT-3

Ревью

import UIKit

func showPaymentsViewController()
{
	let paymentsViewController = PaymentsViewController()
	
	paymentsViewController.view.userInteractionEnabled = false
	paymentsViewController.animationCallback = {
		paymentsViewController.view.userInteractionEnabled = true
	}
	
	UIApplication.shared.keyWindow?.rootViewController = paymentsViewController
}

class PaymentsViewController: UIViewController
{
	lazy var submitButton = createSubmitButton()
	
	var animationCallback: (() -> Void)?
	
	init()
	{
		super.init(nibName: nil, bundle: nil)
		
		buildUI()
	}
	
	required init?(coder: NSCoder)
	{
        fatalError("init(coder:) has not been implemented")
    }
	
	override func viewWillAppear()
	{
		submitButton.alpha = 0
		UIView.animate(
			withDuration: 0.5,
			animations: {
				self.submitButton.alpha = 1
			},
			completion: animationCallback ?? { }
		)
	}
}

extension PaymentsViewController
{
	func buildUI()
	{
		view.addSubview(submitButton)
		submitButton.translatesAutoresizingMaskIntoConstraints = false
        submitButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
		submitButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
	}
	
	func createSubmitButton() -> UIButton
	{
		let submitButton = UIButton(style: .system)
		submitButton.setTitle(
			"Submit",
			for: .normal
		)
		
		submitButton.addTarget(
			self,
			selector: #selector(onSubmitButton),
			for: .touchUpInside
		)
		
		return submitButton
	}
	
	@objc func onSubmitButton()
	{
	}
}


Хороший совет:

Override viewDidAppear() instead of viewWillAppear(). It is a better place to perform animation tasks.

Сам не понял что ответил а посоветовал вкусовщину:

The function showPaymentsViewController() should be updated to follow the Swift naming convention, which is lowerCamelCase. A better name for this function could be showPaymentsView() or presentPaymentsView().

Вообще не релевантно:

Use @IBAction instead of addTarget to connect the submit button to the action method.

А вот хороший совет от ChatGPT-4:

Use explicit access control for functions and classes. It's good practice to explicitly state the access level of your functions and classes (e.g., private, fileprivate, internal, public, or open). This ensures you are aware of the visibility and access to your functions and classes.

Генерация кода: очень хорошо, на уровне джуна.

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

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

  3. умеет использовать не-нативные библиотеки!

Из минусов — не получается научить стилю и подходам. Соглашается, обещает что впредь будет делать как велено, но не делает.

Fullstack developer

ChatGPT-3

У меня почти не было опыта работы с кубером, был проект который очень надо было закончить за вечер, был настроенный lens с доступом к кластеру, нужно было достать из кластера дамп БД. Спросил у chatGPT, что сделать — он дал мне неправильную команду для терминала, которую нужно было выполнить, подключившись к поду. Плюс, альтернативно он писал про утилиту kubectl. Пока разбирался с терминалом и неверной командой — обнаружил, что lens для терминальной сессии использует тот самый kubectl, взял за основу команду, рекомендованную ChatGPT, и смог скачать себе дамп.

Ну или не так давно была задача по модификации схемы данных Cube.js. С ним вообще не работал, начал с изучения на тестовом стенде, стал задавать вопросы, как решить то или это. ChatGPT стал давать советы, и получилось своими силами и с его помощью большую часть изменений реализовать. Но возникла проблема, что одно из полей требовало SQL‑подзапрос. Спросил, как сделать подзапрос. Применил его ответ в коде. Обнаружил ошибку, что подзапросы запрещены. Спросил, что делать — он посоветовал поменять конфиг куба. Это я делать не стал, так как оно не ощущалось как правильное действие, да и введён запрет на подзапросы был не просто так, а для экономии ресурсов. Почти отчаявшись, подобно описал ему схему данных и спросил, как получить нужную выборку без подзапросов. Он дал ответ. Оказалось, ответ рабочий — и отлично встраивающийся в схему куба.

Психолог

ChatGPT-3

Использует ChatGPT для создания "скелета" будущей статьи:

DevOps

Не, не юзал) У нас в проде **** от 2002 года выпуска. У нас проверенные временем технологии. Новые ещё успею изучить, пока срок поддержки этих истечёт)

Senior Fullstack developer/Team lead

GitHub Copilot

AI для кодинга, подсказывает, какой код ты хочешь написать
AI для кодинга, подсказывает, какой код ты хочешь написать

Штука полезная, помогает меньше фокусироваться на деталях какой-либо конкретной библиотеки/языка/..., а больше – на том, что ты хочешь сделать. Один из способов получить подсказку – написать текстом комментарий, что ты хочешь сделать. Так что это ещё и провоцирует документировать код, что в среднем, признаемся, большинству лень.

Меня, как человека разных ролей, не пугает AI, потому что он может ускорять мою работу. Ускоряет в разных аспектах: ChatGPT правил моё резюме, Stable Diffusion делает аватарки, Copilot вот помогает писать код для аналитики. Я больше думаю про то, что хочу сделать, меньше трачу время на как.

Вывод

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

Наступает новая эпоха, инструменты AI уже встроены во многие framework-и и позволяют писать код быстрее, более оптимально, находить новые поинты при code review, быстро позволяют погрузиться в новый стек или даже сферу. Это выглядит как начало конвеерного производства автомобилей - мы резко ускорим множество сфер нашей жизни. И если не начать бежать - то вы рискуете остаться за бортом и закончить свою карьеру в затхлой атмосфере госкомпании на скучной должности, пропахшей рыбой из микроволновки, которую сегодня вновь принес ваш любимый начальник.

Ссылки

Если вы устали от бесконечных поверхностных постов про AI, то подпишитесь на богиню русского AI — Татьяну Савельеву (Telegram)

P.P.S.

Вчера я ходил в бар и даже там меня догнала эта тема. Бармены - берегитесь!

Теги:
Хабы:
Всего голосов 15: ↑8 и ↓7+4
Комментарии37

Публикации

Истории

Работа

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань