Здравствуйте, Nuzhny, Вы писали:
N>Всегда многие говорили, что на дом не надо ничего давать, никаких заданий и кодинга. Тут двояко: кто-то нервничает на собеседовании и ему предпочтительнее дома выполнить небольшое задание, без спешки и нервов, а потом ещё выложить его к себе на Гитхаб, чтобы показывать другим при случае. Но теперь эта практика окончательно потеряла смысл, потому что можно текст ТЗ скормить нейросети и получить хорошее готовое решение. N>Своё ТЗ светить не буду, но оно было, как мне кажется, совсем не засвечено на всяких Литкодах и у других компаний. N>Так вот, загрузил я pdf с заданием в ChatGPT o1, получил текст программы, который проходит все тесты, даже хитрые. И код красивый, не все кандидаты такое напишут. N>Короче, эпоха домашних заданий ушла.
Рекомендую добавить в тестовое задание IIS с каким-нибудь плагином вроде url_rewrite. Дать кучу документации, zip-архив с ней, на 50 мегабайт, где в одном из документов будет упомянуто, что этот плагин нужно поставить. Дать код, который начали писать 10 лет назад, а лучше 30, дать неактуальный бэкап девелоперской базы, и к ней набор миграций, который не работает без особых условий, которые вообще ни в какой документации не описаны. Добавить туда фронтенд в двух экземплярах, один состоит из компонентов (требует nodejs 12), базового проекта (требует angular js 2015 года) и расширенного проекта (требует nodejs 16 и ангуляр чуть поновее), а второй — это же всё самое, но в одной папке. А ещё для работы всего этого должен быть расшарен сетевой ресурс (windows file share), причём с правами доступа "everyone", и поднят FTP. Также для сборки проекта требуется размещение по строго определённым путям, а для скачивания пакетов nuget — подключение к VPN, причём с заранее известного IP и всякий раз при подключении у вас будет отваливаться доступ на машину снаружи, то есть фокус "поднять виртуалку и подцепиться к ней по RDP" у вас не прокатит, RDP-соединение будет отключено при работающем VPN.
И удачи ChatGPT o1 со всем с этим справиться.
Вот это будет реалистичное тестовое задание, соответствующее реальным проектам. Правда в такое говно никто работать не пойдёт, если будет заранее знать.
Я описываю реально существующий флагманский продукт компании, которая к слову недавно получила контракт на 1.73 миллиарда долларов.
Во-первых в общем-то и раньше ничего не мешало попросить компетентного товарища решить за тебя задание.
Во-вторых если LLM выдает повторяемые результаты, то можно определить сам факт её использования.
Здравствуйте, Nuzhny, Вы писали:
N>Алгоритм. Распарсить текстовый файл, правильно построить по нему граф и обойти его — вывести строки в правильном порядке. Там есть незаметные глазу нюансы в виде циклических ссылок, догадаться, что нельзя использовать рекурсию, вывести информативно сообщение о возможных ошибках во входных данных. 100-200 строк кода, не больше.
О, какое классическое олимпиадное дзынь-чпок-труляля. Анальные клоуны Пук и Как показывают алгоритмические фокусы. Алле-оп!
Скажите, а зачем оно такое нужно-то? Впрочем нет, не говорите. Оно нужно, потому что вас на таком учили. И учили тех, кто учил вас. Как известно, кафедры философии в ВУЗах готовят новых преподавателей философии для ВУЗов, а вот математики в былые годы, когда ипотеку ещё не изобрели, от безделья выдумывали всякую забавную фигню, а затем, усилиями образовательной системы, фигня из забавной стала обязательной.
N>Так вот, загрузил я pdf с заданием в ChatGPT o1, получил текст программы, который проходит все тесты, даже хитрые. И код красивый, не все кандидаты такое напишут. N>Короче, эпоха домашних заданий ушла.
Почему? Ведь код выполненного домашнего задания — не более чем приглашение к беседе. Кандидат теперь должен объяснить, что код делает, и как работает. Как устроены тесты и что они покрывают.
Он объяснит. К примеру вставляете ваш код и просите прокомментировать. Все расскажет.
С>>Но нюанс здесь, по-моему, заключается в том, что на С++ писать нельзя.
S>Про это тоже спросите.
Я не озаботился получением доступа к ChatGPT o-1, хотя технически я это могу сделать, или спросить какого-нибудь бота-прокси. Но я этого делать не хочу, и вот по каким причинам:
Дизайн и синтаксис С++ делали люди с херовым (плохим) художественным вкусом. К Rust и Perl, кстати, это тоже относится. Это сверхгениальные математики, которые очень любят сочетания закорючек. Для постороннего человека, даже человека вроде меня, который вообще-то давно занимается всем вот этим, и на всяком писал, ваши сверхкраткие закорючки С++ выглядят вот так:
Дзынь-чпок-перечпок, тумблер щёлк, 543 фью гипертронный перещёлк. Клымаранг укутан чкрюмб 28, 28, 28, 28 тыргемот употаммм Индира Ганди чпокк. Конец связи. Натакано на Северной железной дороге в 2427 году.
Есть язык Ада, где замысловатые конструкции выражаются словами, ключевыми словами. Есть Eiffel. Есть SQL, на котором тупые (в сравнении с гениальным разворачивателями циклов на С++) люди пишут простыни нечитаемой бизнес-логики, чьи правила не выводятся логическим образом из математики или чего-то подобного, а являются порождением полёта чьей-то бизнесовой мысли. То есть, догадаться там нельзя, там знать надо.
Так вот, если бы SQL имел такой же синтаксис, такой же стиль письма как С++, столь больших проектов на нём написать не получилось бы, как на SQL и силами этих же людей.
Много раз умные (поумнее многих) люди пытались С++ реформировать. Вам предлагали D, но упорные копатели закорючек (помните наверное момент с пейзанами в грязи в "Монти Пайтон и священный грааль"?) отказывались что-то менять. Их и так всё устраивает, бизнес тоже менять не хочет ничего, а вы уже привыкли, вдобавок у вас нет ни власти, ни политической воли. Вы не хотите делать удобно и понятно, вы не можете делать удобно и понятно, и вы не знаете, как это — удобно и понятно.
Я подозреваю, что существуют неоткрытые ещё фундаментальные законы, которые определяют, какой текст понимать легко, хоть машине, хоть человеку, а какой — сложно. Так вот, С++ в его нынешнем виде ужасен и сложен, и гордиться тут нечем. И что ChatGPT o-1, o-1-mini, Claude Sonnet и прочие его понимают плохо, так это потому что и вы его плохо понимаете. Потому что это плохой язык.
Здравствуйте, Nuzhny, Вы писали:
N>Короче, эпоха домашних заданий ушла.
Нам на экзамене по матану разрешали пользоваться любыми учебниками и пособиями. Если ты учился и делал, то ты найдёшь и подготовишся за время экзамена. Если нет — тебе не хватит времени. Если ты что-то решал раньше, то ты знаешь куда подсмотреть. Нет — не сможешь решить задачки: не успеешь. А если каким-то чудом и решишь, то не сможешь объяснить своё решение.
Тоже самое должно быть применимо к тестовым заданиям: если ты не умеешь, делал не ты, то ты не сможешь объяснить решение. Потом, на собеседовании многие просят модифицировать код, чтобы он решал что-то ещё. Делал не ты, не умеешь, не знаешь — не сможешь. Умеешь, но делал не ты — твой новый код будет разительно отличаться от того, что ты туда принёс.
Ну а если ты сделал задание путём скармливания его боту, а потом смог объяснить решение, и прямо на собеседовании смог его модифицировать, то ты — профессионал.
ЗЫ: я однажды скармливал рабочие задачи чату-гпт, просто в порядке эксперимента. Это были тесты. Приемлимого решения я добивался примерно с пятого уточнения (просил модифицировать код, чтоб ещё и вот "это"). Одна из самых неприятных вещей, которую я видел в процессе модификаци — утеря тест-кейсов. Иногда их было проще дописать вручную, чем рассказать боту что потерялось и как это нужно написать. В конечном счёте, я не могу сказать, что получалось на порядо быстрее чем руками — ну может быть чуть-чуть быстрее. Ну а ещё не так сильно уставали пальцы: тесты — довольно таки "буквоёмкая" хрень. И я так и не решился дать боту на написание бизнес-задачу: меня в конечном счёте останавливала мысль о том, сколько придётся объяснять боту ньюансы задачи и требования к решению.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Shmj, Вы писали:
L>>Вот это вот "пока не все" на деле хуже, чем просто "ничего". Ибо что-то он типа "знает", но отличить его бред от реальности может только специалист. S>Ну вы когда спрашиваете — то ответ либо решает вашу задачу либо не решает. Отличает внешняя среда.
Внимание, вопрос — как узнать, что ответ задачу не решает?
Внимание, ответ — нужно самому быть специалистом в области.
Внимание, вопрос — если ты уже специалист в этой области, является ли для тебя LLM чем-то большим, нежели поисковиком на стероидах, результаты поиска в котором нужно каждый раз перепроверять?
Здравствуйте, Слава, Вы писали:
С>Здравствуйте, Nuzhny, Вы писали:
С>>>Скажите, а вы в вашей организации чем именно занимаетесь? Дистрибутивы делаете, утилиты? Как такое задание относится к работе у вас?
N>>Алгоритмы и пишем разные. Например, можно оптимизировать Венгерский алгоритм на N>1000 с учётом локальности связей у объектов на плоскости. Можно реализовать на OpenCL/CUDA алгоритм поиска контуров и/или поиска связных компонент. Или какой-нибудь хитрый nms (non maximum suppression).
С>А. Тогда вы правы с вашей задачей, прошу прощения за резкость. Редкий случай, когда тестовое соответствует работе.
На самом деле не особо он и прав. Исследовательские задачи выполняются совсем в другом масштабе времени. Придти в проект и что-то там по-быстрому оптимизировать в разы можно только если твои предшественники совсем не понимают, что они делают. В реальности, коллеги уже испробовали все наивные подходы: есть нормальные индексы, есть кэши промежуточных вычислений, алгоритмы более-менее адекватны задаче. Ресерч в таком случае делается так: недельку изучаешь литературу, подбирает 3-5 перспективных подходов, неделю делаешь прототип первого подхода, тестируешь, понимаешь что не работает, пробуешь другой подход. К концу месяца понимаешь как надо, ещё два месяца внедряешь в существующий код, потому что там тоже не все просто. И это если ограничится CPU. Если нужно портировать на GPU, то этим вообще занимается отдельный человек, потому что там наивный подход вообще не катит. И это ещё если удастся ограничиться "классическими" алгоритмами до 2010 года, там хотя бы заранее понятно что лучше, а что хуже. А если нужно что-то более современное, там сплошь нейросети и гибридные вычисления к которым на кривой козе не подъедешь.
Здравствуйте, gress, Вы писали:
G>Кстати, хинт — если сложный рабочий код не выкладывать в открытый доступ, GPT не на чем будет учиться и он не сможет заменить программистов
Да!
Такое мнение сразу началось после того, как Майкрософт начало самовольно использовать исходники с Гитхаба для тренировки своей нейросети. Стало понятно в принципе, зачем нужна была эта покупка.
Потом появилось мнение, что скоро может появиться рынок исходников закрытых проектов. Типа, можно продавать исходники своего проекта тому же OpenAI для тренировки сети (данные уже кончаются). Это актуально не столько для успешных продуктов, сколько для тех, которые либо отжили своё, либо не выстрелили и контора банкротится.
Здравствуйте, Nuzhny, Вы писали:
N>Далее вопрос в том, в принципе наша профессия как-то изменится или нет? Если да, то как сильно и в какую сторону. Вон, товарищ прочит нам будущее, при котором даже синтаксис знать не надо, а писать код будут промт-программисты, которым конкретный ЯП знать в принципе будет не обязательно. Видимо, программисты в таком случае в принципе уйдут, а код начнут писать специалисты в предметной области, которым на своём предметном языке надо будет писать ТЗ-спецификацию, наиболее точную и непротеворечивую, по которой будет генерировать код. То есть условный С++ станет тем, чем для современных С++ программистов является ассемблер.
Я попробовала как-то раз на Прогрессе GPT Алисы позадавать задачки на разработку. Она генерит код с ошибками, то есть он не скомплируется вовсе, не то что выполнит не то, что надо. В инете не очень много открытого исходного кода на Прогрессе, GPT учиться не на чем.
Кстати, хинт — если сложный рабочий код не выкладывать в открытый доступ, GPT не на чем будет учиться и он не сможет заменить программистов
Здравствуйте, Shmj, Вы писали:
S>Так же пока в безопасности люди ручного труда — сантехники, электрики, установщики кондиционеров — можно пока не поздно переучиться на них.
Здравствуйте, qqqqq, Вы писали:
Q>Это что.. А как насчет такого: вы тут с пеной у рта обсуждаете-обсуждаете разное на форумах а по факту оказывается что большинство ников уже не люди а чаты-гпты?
Здравствуйте, Shmj, Вы писали:
S>Где мне это искать? Держать в памяти? Как быстро вы сможете найти ответ? S>Вот GPT подобные вопросы решает за секунды.
Вопрос он "решит", конечно. А потом пароль или личные данные клиентов всплывают где-нибудь и вы попадаете на 100500 денег, три года в судах и банкротство.
Почему?
Потому что это неправильное решение проблемы, которой не должно было быть в первую очередь. А ты полагался на магию.
Что же произошло?
Выбирай сам:
1. Репозиторий имел форки, которые не синхронизировались после применения "магии"
2. Сохранился бранч с тем же коммитом, а то и не один.
3. Имелись бекапы — полные и снапшоты
ЧатГПТ тебе сам об этом не скажет. А ты проверить не догадаешься.
Еще раз — для тех, кто в школе прогуливал физику, мир полон магии.
Здравствуйте, Shmj, Вы писали:
L>>Удачи проверять то, что ЧатГПТ насоветует там, где IEC61850 применяется.
S>А у вас что тестовой среды нет — сразу в прод?
S>Должна быть тестовая среда. Там все проверяете — тесты так же GPT может написать. И уже когда все тесты пройдены — тогда в прод.
Здравствуйте, Sharov, Вы писали:
S>Если не секрет, это просто некий алгоритм а-ля литкод или связанное с CV задание? Можно пhо решение поговорить, и если человек делал S>не сам, то это будет видно. Наверное.
Алгоритм. Распарсить текстовый файл, правильно построить по нему граф и обойти его — вывести строки в правильном порядке. Там есть незаметные глазу нюансы в виде циклических ссылок, догадаться, что нельзя использовать рекурсию, вывести информативно сообщение о возможных ошибках во входных данных. 100-200 строк кода, не больше.
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, gress, Вы писали:
G>>Кстати, хинт — если сложный рабочий код не выкладывать в открытый доступ, GPT не на чем будет учиться и он не сможет заменить программистов
N>Да! N>Такое мнение сразу началось после того, как Майкрософт начало самовольно использовать исходники с Гитхаба для тренировки своей нейросети. Стало понятно в принципе, зачем нужна была эта покупка. N>Потом появилось мнение, что скоро может появиться рынок исходников закрытых проектов. Типа, можно продавать исходники своего проекта тому же OpenAI для тренировки сети (данные уже кончаются). Это актуально не столько для успешных продуктов, сколько для тех, которые либо отжили своё, либо не выстрелили и контора банкротится.
Тогда, развивая эту мысль, LLM не сможет писать код по направлениям, по которым мало исходного кода.
Помимо умерших проектов и технологий это новые фреймворки и подходы к разработке в рамках существующего ЯП и новые ЯП. То есть, если заменить человека на машину, средства разработки перестанут развиваться. А так не бывает в нашем мире ИТ. Интересно будет еще посмотреть, как LLM придумает новое средство разработки
Здравствуйте, Sharov, Вы писали:
S>Все хорошо, но сколько это будет потреблять энергии? Вон гугол, говорят, уже про собственные АЭС задумался.
Стоить будет много. Собственные АЭС будут у всех, не только у Гугла, от этого никуда не деться. С другой стороны, сейчас идёт тренд на маленькие специализированные языковые модели, которые в конкретных случаях лучше больших, а энергии потребляют на порядок меньше. Также недавно была новость, что научились в свёртках заменять умножение на сложение без потери точности, что экономит на них до 95% энергии. Далее уже делают ASIC для языковых моделей, а новости от Nvidia о новом продукте говорят, что в очередной видеокарте и версии CUDA идёт оптимизация для LLM. Тренировка LLM типа GPT-2 сейчас занимает 12 минут и стоит 5$, что сильно меньше, чем раньше.
Короче, индустрия вкладывает огромные деньги в исследования и они закономерно дают свои плоды. Раньше такое было с ядерной физикой, с космосом и т.д. Будут деньги — будут результаты. А там уже будем смотреть, насколько увеличится ВВП благодаря таким вложениям.
Это тупо неправильный код. Content-Type должен быть multipart/form-data (а не "application/pdf"). WebClient генерит его в UploadFile. Еще, accept header непонятно откуда взялся.
У меня сгенерил чуть получше, но тоже косяк в коде (подставлен "Bearer" хотя согласно исходному коду, его быть не должно). В общем так себе. Хотя то что нет bearer я тоже мог бы прозевать я думаю
async Task<string> UploadFileAsync(string url, string filePath)
{
using var client = new HttpClient();
try
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Properties.Settings.Default.ApiKey);
using var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(await File.ReadAllBytesAsync(filePath));
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
var responseBytes = await response.Content.ReadAsByteArrayAsync();
return Encoding.UTF8.GetString(responseBytes);
}
catch (HttpRequestException)
{
return null;
}
}
Здравствуйте, novitk, Вы писали:
N>>Понятно, без домашнего задания. В принципе, тема так и называется, да? N>Все же обьясни, чем работник, который смог успешно задействовать AI для решения домашнего задания, тебе не подходит?
Например, тем, что в данный момент в моей организации нет возможности использовать ИИ помощника достаточно высокого уровня (типа ChatGPT 4o). Движемся в сторону внутреннего ИИ помощника, но пока нет. Поэтому надо работать так, будето их нет вовсе. Это первое.
Второе, это понимание того, что может человек сделать сам, если придётся работать в области, где ИИ помощник бесполезен, например есть экзотические области, которых либо не было в обучающей выборке, либо было исчезающе мало. Хочется узнать, как кандидат может писать код с чистого листа, а не только разбираться в чужом — это можно спросить и на интервью.
В целом у меня сложилось впечатление, что если основной вклад в кодирование вносит ИИ помощник, то такого программиста он скоро сможет заменить совсем. А тогда зачем нужен такой кандидат? Другое дело, когда появится он в действительности, то никто не будет запрещать пользоваться — welcome. Но пользоваться, зная, что справится и без него.
Примерно, как с IDE: без подсказок и автокомплита писать код нет смысла. Но при необходимости можно делать это и в блокноте/Фаре, и из консоли, и на бумажке.
Всегда многие говорили, что на дом не надо ничего давать, никаких заданий и кодинга. Тут двояко: кто-то нервничает на собеседовании и ему предпочтительнее дома выполнить небольшое задание, без спешки и нервов, а потом ещё выложить его к себе на Гитхаб, чтобы показывать другим при случае. Но теперь эта практика окончательно потеряла смысл, потому что можно текст ТЗ скормить нейросети и получить хорошее готовое решение.
Своё ТЗ светить не буду, но оно было, как мне кажется, совсем не засвечено на всяких Литкодах и у других компаний.
Так вот, загрузил я pdf с заданием в ChatGPT o1, получил текст программы, который проходит все тесты, даже хитрые. И код красивый, не все кандидаты такое напишут.
Короче, эпоха домашних заданий ушла.
Здравствуйте, Nuzhny, Вы писали:
N>Видимо так, но тут уже вопрос в том, что нет смысла давать на дом такое, лучше лайв кодингом.
Не согласен: умение модифицировать код, чтобы он начинал выполнять новые требования — один из самых важных навыков программиста. Важнее только способность писать код, который можно будет модифицировать, а не переписывать с ноля. Для лайв-кодинга это слишком: на код, который потом надо модифицировать, нужно много времени.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Слава, Вы писали:
N>>Алгоритм. Распарсить текстовый файл, правильно построить по нему граф и обойти его — вывести строки в правильном порядке. Там есть незаметные глазу нюансы в виде циклических ссылок, догадаться, что нельзя использовать рекурсию, вывести информативно сообщение о возможных ошибках во входных данных. 100-200 строк кода, не больше.
С>О, какое классическое олимпиадное дзынь-чпок-труляля. Анальные клоуны Пук и Как показывают алгоритмические фокусы. Алле-оп!
С>Скажите, а зачем оно такое нужно-то? Впрочем нет, не говорите. Оно нужно, потому что вас на таком учили. И учили тех, кто учил вас. Как известно, кафедры философии в ВУЗах готовят новых преподавателей философии для ВУЗов, а вот математики в былые годы, когда ипотеку ещё не изобрели, от безделья выдумывали всякую забавную фигню, а затем, усилиями образовательной системы, фигня из забавной стала обязательной.
А в реальном продукте такого быть не может, потому что... а почему, собственно?
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Shmj, Вы писали:
S>Ну вы когда спрашиваете — то ответ либо решает вашу задачу либо не решает.
Блин, я вам пример кода привел, которые выдает ожидаемый наблюдателем результат, но при этом содержит ошибку. И для того, чтобы понять суть проблемы, нужно иметь знания, о ненужности которых вы здесь как попка долдоните.
Так что с "либо решает, либо не решает" не все так просто. Если только вы не Shmj.
Здравствуйте, Shmj, Вы писали:
S>>Блин, я вам пример кода привел, которые выдает ожидаемый наблюдателем результат, но при этом содержит ошибку. И для того, чтобы понять суть проблемы, нужно иметь знания, о ненужности которых вы здесь как попка долдоните.
S>Пока вы не выучили язык и семантику перемещения, особенности l/r-value — советуйтесь с GPT.
Чтобы советоваться о l/r-value нужно знать про l/r-value, чтобы знать про l/r-value -- нужно изучать язык. Изучать, т.е. приобретать знания, о ненужности которых вы заявляли:
> Так вот — теперь знания ЯП не так уж важны — не очень хорошо знаешь особенности C++ — тебе GPT очень быстро и точно все объяснит — знать язык не нужно.
Без собственных знаний вы не будете способны оценить адекватность подсказок от GPT. Все, что вам в таком случае остается -- это пробовать. Но я вам как раз привел пример кода, который выдает ожидаемый результат, но принципиально неправилен. И не зная языка вы даже не поймете о чем дальше спрашивать GPT.
Короче говоря, пусть меня забанят, но вступать с вами разговор имеет смысл только для того, чтобы в очередной раз сказать, что вы идиот и засираете RSDN своей тупизной. Что вас пора отсюда гнать ссанными тряпками. И хз почему этого еще не делают.
Здравствуйте, Nuzhny, Вы писали:
N>Алгоритм. Распарсить текстовый файл, правильно построить по нему граф и обойти его — вывести строки в правильном порядке. Там есть незаметные глазу нюансы в виде циклических ссылок, догадаться, что нельзя использовать рекурсию, вывести информативно сообщение о возможных ошибках во входных данных. 100-200 строк кода, не больше.
Когда задача становится чисто технической/математической и подробно сформулированна, то это уже самая легкая часть работы программиста и да, в значительной степени может быть автоматизирована. Написание чего-то типа алгоритма архивирования или обхода графа было типовой задачей программиста в 80-х и 90-х и на это тратилось очень, очень много времени. Сейчас надо очень сильно постараться, чтобы найти какую-то подобную нерешенную задачу и подобные задачи это, ИМХО, сильно меньшая часть работы сегодня. Значительно большую часть занимает путь от выскоуровневых требований уровня "сделать хорошо" до сформулированного ТЗ с учетом контекста (используемые технологии, имеющаяся инфраструктура, ограничения по времени и т.п).
Скилл решения олимпиадных задач сильно обесценивается.
Здравствуйте, Shmj, Вы писали:
M>>Ведь правка истории в source control — это как раз тот случай, когда торопится не стоит. S>Быстро нужно чтобы приступить к другим задачам как можно быстрее.
Из этого "быстро нужно" отрастали самые заметные факапы в истории.
А в данном случае с репозитораием делать вообще ничего не надо.
Здравствуйте, Skorodum, Вы писали:
S>ИМХО, интерфейс от GPT (возвращение std::string_view) даже лучше.
Это сильно зависит от того, что мы имеем на входе и как долго собираемся использовать результат дробления на части.
Может быть так, что у нас есть кусок данных в памяти, который был прочитан из сокета, в этих данных есть значение path, его нужно разобрать. Чтобы не создавать лишних копий path в split передается string_view. А вот результат split-а может пережить исходный кусок данных, в этом случае вектор из string_view -- это прямой путь к повисшим ссылкам и use-after-free.
Здравствуйте, GlebЗ, Вы писали:
N>>Я уже научился поднимать локальный сервер с LLM, коннектиться к нему плагином из VS Code (плагин Continue) и использовать почти как Copilot. Так что интернет не проблема, открытые LLM тоже развиваются. GЗ>А модель какая?
Пробовали qwen2.5 Coder 7b, Codestral 22B, Meta Llama 3.1 8b. Что на GF 4090 влезало. Показались примерно одинаковыми по качеству, но Codestral сильно медленнее.
Здравствуйте, Shmj, Вы писали:
S>Сейчас ChatGPT будет подручным инструментом, таким же как поисковик. Исключение разве что особые отрасли — может оборонка или что-то еще, где даже интернет рядовым разработчикам не доступен.
Я уже научился поднимать локальный сервер с LLM, коннектиться к нему плагином из VS Code (плагин Continue) и использовать почти как Copilot. Так что интернет не проблема, открытые LLM тоже развиваются.
S>Так вот — теперь знания ЯП не так уж важны — не очень хорошо знаешь особенности C++ — тебе GPT очень быстро и точно все объяснит — знать язык не нужно. Вопросы по тонкостям языка, вирт. деструкторы, перемещение, свой умный указатель, типы контейнеров и их методы — все, уже в прошлом — глупо это спрашивать, поезд ушел.
Вот тут я пока не могу согласиться. Есть негласное правило, что специалист должен знать предметную область/инструмент на один уровень глубже, чем он требуется в повседневной деятельности. Зачем? Чтобы смочь решить возможные проблемы. Используешь библиотеку? Надо знать её внутренности? С/С++ программисту желательно при необходимоости уметь прочитать дизассемблер. Математику с Матлабом/Вольфрамом надо всё тааки прекраснно знать математику и то, как внутри устроена каждая вызываемая им функция. Ну и т.д.
S>Сейчас изменится сам подход и к оценке и к разработке.
Здравствуйте, vsb, Вы писали:
vsb>А какие-то предложения по этому поводу есть? Только живые интервью?
С одной стороны — да. Тут ещё советуют после тестового приглашатть на второе собеседование и обсуждать написанное, просить его модифицировать. Тоже хороший вариант, но он удлиняет процесс найма. Пока другого способа я не вижу.
Далее вопрос в том, в принципе наша профессия как-то изменится или нет? Если да, то как сильно и в какую сторону. Вон, товарищ прочит нам будущее, при котором даже синтаксис знать не надо, а писать код будут промт-программисты, которым конкретный ЯП знать в принципе будет не обязательно. Видимо, программисты в таком случае в принципе уйдут, а код начнут писать специалисты в предметной области, которым на своём предметном языке надо будет писать ТЗ-спецификацию, наиболее точную и непротеворечивую, по которой будет генерировать код. То есть условный С++ станет тем, чем для современных С++ программистов является ассемблер.
Здравствуйте, so5team, Вы писали:
S>Блин, я вам пример кода привел, которые выдает ожидаемый наблюдателем результат, но при этом содержит ошибку. И для того, чтобы понять суть проблемы, нужно иметь знания, о ненужности которых вы здесь как попка долдоните.
Пока вы не выучили язык и семантику перемещения, особенности l/r-value — советуйтесь с GPT. Он позволит вам писать не только работающий, но правильный код.
Вам кажется что вы выучили семантику перемещения и теперь очень крутой специалист — на самом деле ничего сложного там нет — буквально за пару часиков все можно понять с потрохами.
S>Так что с "либо решает, либо не решает" не все так просто. Если только вы не Shmj.
Иногда код решает проблему, но написан плохо — не по стандартам. К примеру, не соблюдается правило пяти. Чтобы не писать такой код — советуйтесь с GPT — он покажет правильные приемы — а потом вы их постепенно запомните. Не пытайтесь запомнить сразу — не стоит напрягать мозг — все должно пройти без усилий.
F3V>>Главный критерий — понимание человеком обоснованного результата до запуска кода, это уровень разработчика. F3V>>Если нет понимания, то это путь магии или путь тестировщика.
S>Главное понимать концепции. А уже как эти концепции выражаются в том или ином языке — можно не заучивать наизусть.
Здесь можно согласиться. Дух творит себе формы. Но знаете ли какого вы духа?
S>К примеру, нужно понимать принцип — динамический массив, дерево, стек, хештаблица и т.д. А уже какие классы в языке отвечают за них и какие методы нужно вызывать — знать не нужно.
Здесь есть две возможности: ты знаешь принципы построения объекта тестирования или не знаешь.
Т.к. может возникнуть вопрос классификации его ошибок, как ошибок реализации принципов или ошибок самих принципов построения.
Тестировщик может указать лишь на факт ошибки в реализации, а классифицировать и исправить её может только разработчик.
Когда тестируешь чёрный ящик, хорошо бы его сделать хотя бы серым, но даже у белого ящика возможны чёрные пятна.
PS: Загляни, например, тут в форум обсуждения C++:
Там хоть и всё доступно, а столько всяких косяков:
от программных (прикладных), компиляторных (реализации) и даже до ошибок/неточностей в стандартах (принципах).
Здравствуйте, Nuzhny, Вы писали:
N>Своё ТЗ светить не буду, но оно было, как мне кажется, совсем не засвечено на всяких Литкодах и у других компаний. N>Так вот, загрузил я pdf с заданием в ChatGPT o1, получил текст программы, который проходит все тесты, даже хитрые. И код красивый, не все кандидаты такое напишут. N>Короче, эпоха домашних заданий ушла.
Вы мыслите шире.
Сейчас ChatGPT будет подручным инструментом, таким же как поисковик. Исключение разве что особые отрасли — может оборонка или что-то еще, где даже интернет рядовым разработчикам не доступен.
Так вот — теперь знания ЯП не так уж важны — не очень хорошо знаешь особенности C++ — тебе GPT очень быстро и точно все объяснит — знать язык не нужно. Вопросы по тонкостям языка, вирт. деструкторы, перемещение, свой умный указатель, типы контейнеров и их методы — все, уже в прошлом — глупо это спрашивать, поезд ушел.
Сейчас изменится сам подход и к оценке и к разработке.
При этом GPT развивается очень быстро — достаточно сравнить то что было 1-2 года назад и то что имеем сегодня — небо и земля. А что будет еще через 3-5 лет?
И ведь это касается не только разработки ПО — многие профессии изментся.
Хочется верить что есть некий элемент, который доступен только человеку — но который мы еще не до конца осознали. Как-то способность охватить весь проект целиком, увидеть полную картину. Но пока не знаем так ли это.
Так же пока в безопасности люди ручного труда — сантехники, электрики, установщики кондиционеров — можно пока не поздно переучиться на них.
Здравствуйте, пффф, Вы писали:
S>>Так же пока в безопасности люди ручного труда — сантехники, электрики, установщики кондиционеров — можно пока не поздно переучиться на них. П>Переучивайся
Тут главное чтобы не получилось что пока переучишься, выйдешь из подмастерья — не начали делать универсальных роботов.
Здравствуйте, пффф, Вы писали:
S>>>>Так же пока в безопасности люди ручного труда — сантехники, электрики, установщики кондиционеров — можно пока не поздно переучиться на них. П>>>Переучивайся S>>Тут главное чтобы не получилось что пока переучишься, выйдешь из подмастерья — не начали делать универсальных роботов. П>Так начинай уже сейчас, а то потом не успеешь
Здравствуйте, Nuzhny, Вы писали:
N>Всегда многие говорили, что на дом не надо ничего давать, никаких заданий и кодинга. Тут двояко: кто-то нервничает на собеседовании и ему предпочтительнее дома выполнить небольшое задание, без спешки и нервов, а потом ещё выложить его к себе на Гитхаб, чтобы показывать другим при случае. Но теперь эта практика окончательно потеряла смысл, потому что можно текст ТЗ скормить нейросети и получить хорошее готовое решение. N>Своё ТЗ светить не буду, но оно было, как мне кажется, совсем не засвечено на всяких Литкодах и у других компаний. N>Так вот, загрузил я pdf с заданием в ChatGPT o1, получил текст программы, который проходит все тесты, даже хитрые. И код красивый, не все кандидаты такое напишут. N>Короче, эпоха домашних заданий ушла.
Мне на этой недели нейросеть сэкономила минимум 1 рабочий день. Это новый инструмент и алогитмы в вакууме теперь всегда буду скармливаться ему. Это уже нормально. Меняйте тестовое. Ну или я всегда как-то на работу устраивался без них. А вот там где просили делать тестовое в итоге был полный отстой.
Здравствуйте, Слава, Вы писали:
С>Вот это будет реалистичное тестовое задание
Месье знает толк.
С>Я описываю реально существующий флагманский продукт компании, которая к слову недавно получила контракт на 1.73 миллиарда долларов.
Здравствуйте, Shmj, Вы писали:
S>>Откуда только возьмется доверие к словам ChatGPT? S>>Тут в тему будет высказывание Марка Твена: "Будьте осторожны при чтении книг о здоровье. Вы можете умереть от опечатки."
S>С ним нужно как с человеком — человек так же не всегда правду говорит, иногда ошибается.
Поэтому по вопросам, где нужна точность, обращаются не к человеку, а к документации/книгам/спецификациям.
S>Нужно знать что человек знает а чего нет, в чем скажет точно а в чем нет.
Вы не знаете C++, вы задаете вопрос ChatGPT и получаете некую информацию, как вы определите, что в этой информации точно, что нет?
Не отвечайте, вопрос риторический, а вашей тупости на форуме более чем достаточно.
S>GPT знает всю документацию мира и по вопросам документации — ответит точно — процитирует
Ссылки на источники предоставит? Типа вот эта цитата отсюда, вот эта отсюда?
Здравствуйте, so5team, Вы писали:
S>Вы не знаете C++, вы задаете вопрос ChatGPT и получаете некую информацию, как вы определите, что в этой информации точно, что нет? S>Не отвечайте, вопрос риторический, а вашей тупости на форуме более чем достаточно.
Нет уж, отвечу. Можно взять предоставленный код и запустить. Если работает как ожидалось — значит GPT не обманул.
S>>GPT знает всю документацию мира и по вопросам документации — ответит точно — процитирует S>Ссылки на источники предоставит? Типа вот эта цитата отсюда, вот эта отсюда?
Здравствуйте, Shmj, Вы писали:
S>Не переходи на личности — это не от большого ума.
Полагаю, срать тупостью на RSDN — вот это от большого ума.
S>Давай рассмотрим вопрос по C++, на который GPT не ответит — это будет объективно.
Для дебилов прямым текстом: вопрос не в том ответит ли GPT или нет, вопрос в том, как вы верифицировать его ответ собрались.
Хотя, как уже говорилось выше, это вопрос риторический. Ответа от вас не требовалось, но вы решили испражниться еще раз, от большого ума, конечно же.
S>В чем твой вопрос?
Тут нет вопросов, но есть демонстрация. Вашего большого ума.
Здравствуйте, Shmj, Вы писали:
L>>Вот, навскидку, документацию по IEC61850 он не знает. Выдает бредятину. S>Ну ок, возможно пока не все.
Вот это вот "пока не все" на деле хуже, чем просто "ничего". Ибо что-то он типа "знает", но отличить его бред от реальности может только специалист.
S>Вы можете задать ему любой вопрос по популярным системам или библиотекам и получить ответ.
Это такой поисковик, получается.
S>К примеру, если в git запушили коммит, который нужно полностью удалить — как это сделать? Зачем это держать в голове, если можно просто спросить и получить команду?
Через reflog, как же еще? Только зачем, можно стандартным revert отменить изменения, а то, что в истории будут два странных коммита... кому до этого есть дело? Рано или поздно будет merge, в котором можно будет сделать squash.
S>Т.е. обесценивается знание документации, включая библиотеки и языки. Это человеку так сложно дается — даже 10 МБ текста запомнить — это годы работы.
Это всегда было справочным материалом.
S>А ОНО знает терабайты и мгновенно выдает.
Здравствуйте, landerhigh, Вы писали:
L>Внимание, вопрос — как узнать, что ответ задачу не решает? L>Внимание, ответ — нужно самому быть специалистом в области.
Не будьте таким примитивным.
Главный критерий — реальный мир, окружающая среда. Окружающая среда должна проверить решена задача или нет.
Как это сделать? Если задача выразима в коде — то запускаете код и смотрите что делает этот код.
L>Внимание, вопрос — если ты уже специалист в этой области, является ли для тебя LLM чем-то большим, нежели поисковиком на стероидах, результаты поиска в котором нужно каждый раз перепроверять?
Здравствуйте, Shmj, Вы писали:
L>>Внимание, вопрос — как узнать, что ответ задачу не решает? L>>Внимание, ответ — нужно самому быть специалистом в области.
S>Главный критерий — реальный мир, окружающая среда. Окружающая среда должна проверить решена задача или нет.
S>Как это сделать? Если задача выразима в коде — то запускаете код и смотрите что делает этот код.
Есть можно всё, но некоторые вещи только один раз...
Главный критерий — понимание человеком обоснованного результата до запуска кода, это уровень разработчика.
Если нет понимания, то это путь магии или путь тестировщика.
Инструмент для человека, а не человек для инструмента.
На мой взгляд, ты не с той стороны смотришь на проблему.
Здравствуйте, landerhigh, Вы писали:
L>Что же произошло? L>Выбирай сам:
L>1. Репозиторий имел форки, которые не синхронизировались после применения "магии" L>2. Сохранился бранч с тем же коммитом, а то и не один. L>3. Имелись бекапы — полные и снапшоты
L>ЧатГПТ тебе сам об этом не скажет. А ты проверить не догадаешься.
По этому важно понимать целостную картину.
Пароль нужно поменять, т.к. в любом случае кто-то мог склонировать.
Но чтобы не позориться — нужно убрать упоминание об этой ошибке насколько возможно.
Именно такой вопрос и формируете GPT и он даст точный ответ очень быстро. А в доке вы будете искать долго, т.к. ситуация не типичная.
Т.е. по прежнему нужно понимать целостную картину — но не нужно знать детали — не нужно помнить конкретную команду или конкретную инструкцию языка.
К примеру, вы должны знать что бывают потоки, что нужно синхронизировать доступ — но вам не нужно помнить как создавать эти потоки в конкретном языке с конкретной библиотекой.
S>Именно такой вопрос и формируете GPT и он даст точный ответ очень быстро.
И снова приходим к вопросу подтверждения точности ответа.
Если я читаю материал, написанный человеком, то в нем присутствуют либо ссылки на источники, либо это результат собственного исследования/эксперимента.
По крайней мере в приличных сообществах типа stackexchange, wikipedia и пр. такого рода требования прямо прописано в правилах.
Реферат без ссылок на источники мало полезен.
Разве что в случае, когда это единственный источник уникальной информации.
S>А в доке вы будете искать долго, т.к. ситуация не типичная.
А зачем тебе быстро?
Ты же сам написал, что в приведенном тобой сценарии "плохой" коммит попал в source control 2 недели назад.
Ведь правка истории в source control — это как раз тот случай, когда торопится не стоит.
Здравствуйте, Skorodum, Вы писали:
S>Все так, но речь про то, на практике большая часть времени уйдет не на реализацию алгоритма, а на его поиски (в условном матлабе, питоне, R и т.п), на общение с коллегами, чтобы понять как вытащить релевантные данные или сделать замеры в новом окружении и т.п.
Спорить не буду, согласен. Но всё равно надо спрашивать алгоритмы, необходимый навык
Здравствуйте, Privalov, Вы писали:
P>Как и ожидалось: не работает. Коллега bnk всё правильно написал.
Оно не то, чтобы не работает, оно без доработки напильником не работает. Все равно ускоряет написание кода в разы.
До того, чтобы полностью заменить человека, еще годы. Но когда мы там окажемся, надеюсь я уже буду на пенсии.
Здравствуйте, Nuzhny, Вы писали:
N>Понятно, без домашнего задания. В принципе, тема так и называется, да?
Все же обьясни, чем работник, который смог успешно задействовать AI для решения домашнего задания, тебе не подходит?
Здравствуйте, Nuzhny, Вы писали:
N>Например, тем, что в данный момент в моей организации нет возможности использовать ИИ помощника достаточно высокого уровня (типа ChatGPT 4o). Движемся в сторону внутреннего ИИ помощника, но пока нет. Поэтому надо работать так, будето их нет вовсе. Это первое.
Если очень все жестко с безопасностью, то почему не организовать полностью изолированный виртуальный десктоп с "вашими" инструментами и т.д.?
N>Хочется узнать, как кандидат может писать код с чистого листа, а не только разбираться в чужом — это можно спросить и на интервью.
Не понимаю ценности этого "с чистого листа". Оно как-то по другому потом пахнет?
N>В целом у меня сложилось впечатление, что если основной вклад в кодирование вносит ИИ помощник, то такого программиста он скоро сможет заменить совсем.
У меня обратное впечатление и желания. Люди совершенно не умеет готовить с AI. Если copilot не вывалил готовый код сам, они не знают, что собственно делать.
IMHO умение использовать АИ >>> code monkey с hackerrank.
Здравствуйте, Privalov, Вы писали:
P>Что, чатгопота и этого не сумел объяснить? P>PDF отправляется, код возврата 201. Но это не тот код, который вы с упорством, достойным лучшего применения, здесь показываете.
Не предметный разговор — вы занимаетесь самоуспокоением, не хотите видеть реальное положение дел.
Здравствуйте, Nuzhny, Вы писали:
N>Всегда многие говорили, что на дом не надо ничего давать, никаких заданий и кодинга. Тут двояко: кто-то нервничает на собеседовании и ему предпочтительнее дома выполнить небольшое задание, без спешки и нервов, а потом ещё выложить его к себе на Гитхаб, чтобы показывать другим при случае. Но теперь эта практика окончательно потеряла смысл, потому что можно текст ТЗ скормить нейросети и получить хорошее готовое решение. N>Своё ТЗ светить не буду, но оно было, как мне кажется, совсем не засвечено на всяких Литкодах и у других компаний. N>Так вот, загрузил я pdf с заданием в ChatGPT o1, получил текст программы, который проходит все тесты, даже хитрые. И код красивый, не все кандидаты такое напишут. N>Короче, эпоха домашних заданий ушла.
Если не секрет, это просто некий алгоритм а-ля литкод или связанное с CV задание? Можно пhо решение поговорить, и если человек делал
не сам, то это будет видно. Наверное.
Здравствуйте, Sharov, Вы писали:
S>Это просто некий алгоритм а-ля литкод или связанное с CV задание? Можно по решение поговорить, и если человек делал S>не сам, то это будет видно. Наверное.
Можно подключить к диалогу GPT, чтобы он отвечал на вопросы и писал в чат. Т.е. аудио преобразовывать в текст (есть API), потом быстро отправлять GPT и потом манерно тянуть время перед ответом, что-то экстравагантное говорить, потом уже зачитывать то что GPT пишет.
Да и смысл проверять те навыки, которые может восполнить GPT? Нужно проверять то, в чем GPT помочь не сможет.
Здравствуйте, Shmj, Вы писали:
S>>>Так же пока в безопасности люди ручного труда — сантехники, электрики, установщики кондиционеров — можно пока не поздно переучиться на них. П>>Переучивайся
S>Тут главное чтобы не получилось что пока переучишься, выйдешь из подмастерья — не начали делать универсальных роботов.
Здравствуйте, Философ, Вы писали:
Ф>Тоже самое должно быть применимо к тестовым заданиям: если ты не умеешь, делал не ты, то ты не сможешь объяснить решение. Потом, на собеседовании многие просят модифицировать код, чтобы он решал что-то ещё. Делал не ты, не умеешь, не знаешь — не сможешь. Умеешь, но делал не ты — твой новый код будет разительно отличаться от того, что ты туда принёс.
Видимо так, но тут уже вопрос в том, что нет смысла давать на дом такое, лучше лайв кодингом.
Ф>ЗЫ: я однажды скармливал рабочие задачи чату-гпт, просто в порядке эксперимента
Вот тут дело именно в последней версии Чата. Я тоже раньше скармливал и он не справлялся.
Здравствуйте, m2user, Вы писали:
M>Во-первых в общем-то и раньше ничего не мешало попросить компетентного товарища решить за тебя задание.
Да, есть такое. Но товарища надо ещё найти и уговорить.
M>Во-вторых если LLM выдает повторяемые результаты, то можно определить сам факт её использования.
Есть такое понятие, как температура, позволяющая выдавать неповторяемые результаты.
Здравствуйте, Философ, Вы писали:
Ф>Нам на экзамене по матану разрешали пользоваться любыми учебниками и пособиями. Если ты учился и делал, то ты найдёшь и подготовишся за время экзамена. Если нет — тебе не хватит времени. Если ты что-то решал раньше, то ты знаешь куда подсмотреть. Нет — не сможешь решить задачки: не успеешь. А если каким-то чудом и решишь, то не сможешь объяснить своё решение.
+1
У нас на экзамене по курсу СВЧ разрешали пользоваться любыми книгами, конспектами — чем угодно, но надо объяснить свой ответ.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
С>>О, какое классическое олимпиадное дзынь-чпок-труляля. Анальные клоуны Пук и Как показывают алгоритмические фокусы. Алле-оп!
С>>Скажите, а зачем оно такое нужно-то? Впрочем нет, не говорите. Оно нужно, потому что вас на таком учили. И учили тех, кто учил вас. Как известно, кафедры философии в ВУЗах готовят новых преподавателей философии для ВУЗов, а вот математики в былые годы, когда ипотеку ещё не изобрели, от безделья выдумывали всякую забавную фигню, а затем, усилиями образовательной системы, фигня из забавной стала обязательной.
SVZ>А в реальном продукте такого быть не может, потому что... а почему, собственно?
А в реальном продукте так:
а) можно будет модифицировать условия и резко упростить задачу, при сохранении бизнес-ценности продукта (закон Парето поди знаете). Ну это если стороны способны друг с другом разговаривать. Если не способны — тады ой.
б) можно будет постепенно сделать это же самое, но не силами немытых* сверхгениев с мехмата, матмеха и физтеха, и не за 5 часов, а за неделю. Потом ещё деплой, знаете ли, тестирование на живых юзерах и прочая.
*сейчас, в возрасте 45+ лет, они конечно уже начали мыться
Здравствуйте, Nuzhny, Вы писали:
С>>О, какое классическое олимпиадное дзынь-чпок-труляля. Анальные клоуны Пук и Как показывают алгоритмические фокусы. Алле-оп!
N>Нет, не олимпиадная. Это примерно то, что делает одна линуксовая утилита, идущая в базовой поставке большинства дистрибутивов.
Там в большинстве дистрибутивов и топологическая сортировка есть, и чего там только нет. Аж целый chroot пришлось выдумывать, чтобы ограничить доступ к разнообразию. Только оно уже написано и в общем-то, не требует повторного написания.
Скажите, а вы в вашей организации чем именно занимаетесь? Дистрибутивы делаете, утилиты? Как такое задание относится к работе у вас?
Здравствуйте, Слава, Вы писали:
С>Скажите, а вы в вашей организации чем именно занимаетесь? Дистрибутивы делаете, утилиты? Как такое задание относится к работе у вас?
Алгоритмы и пишем разные. Например, можно оптимизировать Венгерский алгоритм на N>1000 с учётом локальности связей у объектов на плоскости. Можно реализовать на OpenCL/CUDA алгоритм поиска контуров и/или поиска связных компонент. Или какой-нибудь хитрый nms (non maximum suppression).
Здравствуйте, Nuzhny, Вы писали:
С>>Скажите, а вы в вашей организации чем именно занимаетесь? Дистрибутивы делаете, утилиты? Как такое задание относится к работе у вас?
N>Алгоритмы и пишем разные. Например, можно оптимизировать Венгерский алгоритм на N>1000 с учётом локальности связей у объектов на плоскости. Можно реализовать на OpenCL/CUDA алгоритм поиска контуров и/или поиска связных компонент. Или какой-нибудь хитрый nms (non maximum suppression).
А. Тогда вы правы с вашей задачей, прошу прощения за резкость. Редкий случай, когда тестовое соответствует работе.
Здравствуйте, Слава, Вы писали:
С>Рекомендую добавить в тестовое задание IIS с каким-нибудь плагином вроде url_rewrite. Дать кучу документации, zip-архив с ней, на 50 мегабайт, где в одном из документов будет упомянуто, что этот плагин нужно поставить. Дать код, который начали писать 10 лет назад, а лучше 30, дать неактуальный бэкап девелоперской базы, и к ней набор миграций, который не работает без особых условий, которые вообще ни в какой документации не описаны. Добавить туда фронтенд в двух экземплярах, один состоит из компонентов (требует nodejs 12), базового проекта (требует angular js 2015 года) и расширенного проекта (требует nodejs 16 и ангуляр чуть поновее), а второй — это же всё самое, но в одной папке. А ещё для работы всего этого должен быть расшарен сетевой ресурс (windows file share), причём с правами доступа "everyone", и поднят FTP. Также для сборки проекта требуется размещение по строго определённым путям, а для скачивания пакетов nuget — подключение к VPN, причём с заранее известного IP и всякий раз при подключении у вас будет отваливаться доступ на машину снаружи, то есть фокус "поднять виртуалку и подцепиться к ней по RDP" у вас не прокатит, RDP-соединение будет отключено при работающем VPN.
Здравствуйте, Shmj, Вы писали:
S>Тут главное чтобы не получилось что пока переучишься, выйдешь из подмастерья — не начали делать универсальных роботов.
Тогда учись делать взрывчатку и прятаться в подвалах.
S>Хочется верить что есть некий элемент, который доступен только человеку — но который мы еще не до конца осознали. Как-то способность охватить весь проект целиком, увидеть полную картину. Но пока не знаем так ли это.
Самыми первыми в некую "полную картину", которую только человек охватить может, верили игроки в Го...
Это что.. А как насчет такого: вы тут с пеной у рта обсуждаете-обсуждаете разное на форумах а по факту оказывается что большинство ников уже не люди а чаты-гпты?
Здравствуйте, hi_octane, Вы писали:
_>Самыми первыми в некую "полную картину", которую только человек охватить может, верили игроки в Го...
Игра в го не требует недель для погружения.
Вот у меня на первой работе — пришел — а там прога для управления корпорацией в MS SQL. При этом в MS SQL и интерфейс проги, т.е. на основе таблиц генерится интерфейс и все другое. Всего несколько тысяч таблиц было. Просто крутишь чтобы просмотреть список таблиц и рука устает крутить. Для каждой таблицы еще 4 хранимые процедуры. Это просто ппц. был.
Я хотел сумничать и спросил — а есть ли какие-то диаграммы, чтобы в этом разобраться. Но мне лид ответил — диаграммы то можно сгенерить, но они мало чем помогут. Ну да, если там несколько тысяч таблиц.
Но примерно через 2 месяца я уже по мелочи что-то мог туда добавить и закрыть мелкий таск. Мог форму сам наваять, связать с данными.
Процесс погружения нигде не был формально описан, как-то нужно было самому к этому прийти путем чтения кода и задавания вопросов. Была краткая документация, но там было около 10 страниц и оно не отвечало на все вопросы.
Возможно что такое вот погружение и полная интеграция — не доступно ИИ.
Здравствуйте, Shmj, Вы писали:
S>Так вот — теперь знания ЯП не так уж важны — не очень хорошо знаешь особенности C++ — тебе GPT очень быстро и точно все объяснит — знать язык не нужно.
Откуда только возьмется доверие к словам ChatGPT?
Тут в тему будет высказывание Марка Твена: "Будьте осторожны при чтении книг о здоровье. Вы можете умереть от опечатки."
Здравствуйте, so5team, Вы писали:
S>Откуда только возьмется доверие к словам ChatGPT? S>Тут в тему будет высказывание Марка Твена: "Будьте осторожны при чтении книг о здоровье. Вы можете умереть от опечатки."
С ним нужно как с человеком — человек так же не всегда правду говорит, иногда ошибается. Нужно знать что человек знает а чего нет, в чем скажет точно а в чем нет.
GPT знает всю документацию мира и по вопросам документации — ответит точно — процитирует, приведет адаптированный пример, быстро найдет.
К примеру, вы слышали про IL2CPP ? Сколько у вас займет времени разобраться? Там сложного ничего нет, но пока найдешь доку, пока уберешь воду — уйма времени. А GPT даст тебе вводную и рабочий пример за 30 секунд.
Здравствуйте, so5team, Вы писали:
S>Вы не знаете C++, вы задаете вопрос ChatGPT и получаете некую информацию, как вы определите, что в этой информации точно, что нет?
А зачем? Чуть поправить, чтобы скомпилировалось и сразу не падало и дальше тестеры пусть разбираются.
Ты делаешь логическую ошибку полагая, что ему нужно, чтобы код работал правильно.
Здравствуйте, Shmj, Вы писали:
S>>Вы не знаете C++, вы задаете вопрос ChatGPT и получаете некую информацию, как вы определите, что в этой информации точно, что нет? S>>Не отвечайте, вопрос риторический, а вашей тупости на форуме более чем достаточно.
S>Нет уж, отвечу. Можно взять предоставленный код и запустить. Если работает как ожидалось — значит GPT не обманул.
Эйнштейн был прав на счет человеческой глупости, она бесконечна.
#include <iostream>
struct Data {
const int & _i;
explicit Data(int && i) = delete;
explicit Data(const int & i) : _i{i} {}
};
int main() {
Data d{std::min(42, 52)};
std::cout << d._i << std::endl;
}
Здравствуйте, so5team, Вы писали:
S>Полагаю, срать тупостью на RSDN — вот это от большого ума.
Кроме как оскорблять людей — что-то еще можешь?
S>>Давай рассмотрим вопрос по C++, на который GPT не ответит — это будет объективно. S>Для дебилов прямым текстом: вопрос не в том ответит ли GPT или нет, вопрос в том, как вы верифицировать его ответ собрались.
Попроси его привести пример кода, который демонстрирует ответ. И запусти пример кода.
S>>В чем твой вопрос? S>Тут нет вопросов, но есть демонстрация. Вашего большого ума.
Давай на примере тебе объясню.
К примеру на собеседованиях часто просят — напиши свой упрощенный shared_ptr — хотят посмотреть понимает ли человек концепцию перемещения и владения. Так вот — так и задаешь GPT — он пишет. Если что-то не понятно из написанного — спрашиваешь. Далее берешь код и запускаешь — все работает — память удаляется, что видно по вызову деструкторов (GPT добавляет std::cout в деструкторы). Экзаменатор спрашивает о подсчете слабых ссылок, говорит что нужен второй счетчик — ты так и пишешь GPT и он все добавляет.
Или другой пример. Экзаменатор просит тебя написать свой vector. Ты пишешь. А потом говорит тебе — но твой vector не работает, если у класса нет конструктора по умолчанию. Ты прямо так и пишешь GPT — как сделать, чтобы работало если нет конструктора по умолчанию. И GPT тебе пишет. Берешь код и проверяешь.
Здравствуйте, Shmj, Вы писали:
S>Хочется верить что есть некий элемент, который доступен только человеку — но который мы еще не до конца осознали. Как-то способность охватить весь проект целиком, увидеть полную картину. Но пока не знаем так ли это.
ИИ пока не способен работать с большими системами. Например, в 10-20 млн. строк кода ОС, найти ошибки освобождения памяти, или переписать на другом языке. Тут уже задача не просто продолжать, дописывать короткий текст к короткому вопросу. Но, наверное, эту проблему решат.
S>Так же пока в безопасности люди ручного труда — сантехники, электрики, установщики кондиционеров — можно пока не поздно переучиться на них.
А откуда будут браться сами кондиционеры, если не останется производителей кондиционеров? Жрецы, владеющие сильным ИИ (и фабриками под управлением ИИ), будут выдавать кондиционеры населению, за хорошее поведение и правильное голосование на выборах и в обмен на земельные участки?
Рано или поздно начнут ограничивать ИИ, чтобы сохранить традиционные профессии.
Здравствуйте, Shmj, Вы писали:
S>GPT знает всю документацию мира и по вопросам документации — ответит точно — процитирует, приведет адаптированный пример, быстро найдет.
Вот, навскидку, документацию по IEC61850 он не знает. Выдает бредятину.
Здравствуйте, landerhigh, Вы писали:
L>Вот, навскидку, документацию по IEC61850 он не знает. Выдает бредятину.
Ну ок, возможно пока не все.
Вы можете задать ему любой вопрос по популярным системам или библиотекам и получить ответ.
К примеру, если в git запушили коммит, который нужно полностью удалить — как это сделать? Зачем это держать в голове, если можно просто спросить и получить команду?
Т.е. обесценивается знание документации, включая библиотеки и языки. Это человеку так сложно дается — даже 10 МБ текста запомнить — это годы работы. А ОНО знает терабайты и мгновенно выдает.
Здравствуйте, Shmj, Вы писали:
S>Так вот — теперь знания ЯП не так уж важны — не очень хорошо знаешь особенности C++ — тебе GPT очень быстро и точно все объяснит
Ну я в монгодб не силён, на прошлой неделе спросил ГПТ: если есть база Монго с объектами у которых дата начала и окончания, как построить запрос чтобы определить количество активных объектов во все прошлые дни в заданом диапазоне дат.
Попытка 1: запрос даже не выполняется, написал используя $range на тиместампах, упс — $range требует 32-битные инты- а таймстампы в микросекундах.
Попытки 2 и 3 результаты совершенно неверны, попытка 4 база задумалась на 40 минут а потом сказала память кончилась.
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, Wolverrum, Вы писали:
S>>>Дроны с ИИ и защитой от подавления ЭМ-импульсом — уже сегодня в работе. W>>ИИ на лампах?! S>Клетка Фарадея.
Здравствуйте, Pyromancer, Вы писали:
P>Ну я в монгодб не силён, на прошлой неделе спросил ГПТ: если есть база Монго с объектами у которых дата начала и окончания, как построить запрос чтобы определить количество активных объектов во все прошлые дни в заданом диапазоне дат.
Какую версию использовали? Похоже что это было еще до o1. В том то и дело — сейчас все быстро изменяется.
Раньше был бесполезен — но за последние пару месяцев все изменилось — небо и земля.
Здравствуйте, Shmj, Вы писали:
S>GPT знает всю документацию мира и по вопросам документации — ответит точно — процитирует, приведет адаптированный пример, быстро найдет.
Меня вот это смущает.
Я намедни писал аддон для World of Warcraft. В игре есть база данных с разными сущностями, конкретно мне нужны были идентификаторы достижений. Их в игре несколько десятков тысяч. И Copilot мне эти идентификаторы подсказывал почти точно. Т.е. я пишу название, а он мне подсказывает 19385, а надо 19381. Ну т.е. видно, что база данных у него "приблизительная", но в то же время очевидно, что это не опечатка. Короче будто человек по памяти вспоминал.
Просто представьте себе эту ситуацию. Есть игра, не самая нынче популярная. У неё есть некоторое API, которое фаны расковыряли. В этом API есть базы. И вот этим мусором, а иначе я это назвать не могу, забили нейросети все гигабайты.
Понятно, что не специально, просто парсили интернет, GitHub и прочее...
И это же меня наводит на мысль, что для повышения эффективности нужно этот мусор вычищать, забывать. Не нужны мне эти подсказки, тем более, что они и не правильные даже. Если бы и угадала, всё равно я бы перепроверил и даже не стал бы такую подсказку принимать, скопипастил бы откуда положено этот идентификатор.
Здравствуйте, Silver_S, Вы писали:
S>>Хочется верить что есть некий элемент, который доступен только человеку — но который мы еще не до конца осознали. Как-то способность охватить весь проект целиком, увидеть полную картину. Но пока не знаем так ли это.
S_S>ИИ пока не способен работать с большими системами. Например, в 10-20 млн. строк кода ОС, найти ошибки освобождения памяти, или переписать на другом языке. Тут уже задача не просто продолжать, дописывать короткий текст к короткому вопросу. Но, наверное, эту проблему решат.
Почему не способен? Что ему мешает? Мне действительно интересно понять. Вроде есть же агенты и прочее. Вон OpenAI рассказывали, как они ChatGPT попросили взломать контейнер, дали ему доступ к системе, ну и он там весьма нетривиальные действия производил, что-то там отдебажил, короче говоря всех удивил.
Вот вроде можно эту задачу разложить на некую последовательность шагов, составить план и двигаться по плану, корректировать план и тд, куда сейчас упирается ИИ?
Здравствуйте, vsb, Вы писали:
S_S>>ИИ пока не способен работать с большими системами. Например, в 10-20 млн. строк кода ...
vsb>Почему не способен? Что ему мешает? ... vsb>Вот вроде можно эту задачу разложить на некую последовательность шагов, составить план и двигаться по плану, корректировать план и тд, куда сейчас упирается ИИ?
У ранних версий GPT-3, GPT-4 был очень маленький контекст, то что в него не влезало, полностью забывалось. Он не мог целиком прочитать книгу, только по частям, про предыдущие части полностью забывая. Хотя они постоянно увеличивают контекст:
Модели o1 особенно искусны в управлении длинными контекстными окнами, что позволяет им обрабатывать расширенные разговоры или документы, не теряя при этом предшествующую информацию. Эта возможность означает, что подсказки могут включать более крупные фрагменты контекста, сохраняя при этом связные ответы.
Если в вопросе для GPT можно было бы отправить все исходники ОС Windows(c 50 млн. строк) с каким то вопросом, то это ресурсоемко. Всем пользователям они вряд ли могли бы такое предоставить. Даже если бы GPT уже технически мог бы что-то в них найти.
Человек может "дообучиться" под конкретный большой проект — за пару недель освоится с новым большим контекстом.
Если GPT учить работать с большими системами, то очевидно, нужна возможность дообучить на конкретный проект — что то закешируется, для более быстрого доступа. Но обучать для такой работы сложнее, чем продолжать короткие тексты из интернета. Нужны обучающие примеры, где для одного большого проекта множество мелких задач.
Здравствуйте, vsb, Вы писали:
S_S>>ИИ пока не способен работать с большими системами.... vsb>Почему не способен? Что ему мешает? Мне действительно интересно понять.
A major limitation for the broader scope of problems solvable by transformers is the quadratic scaling of computational complexity with input size. In this study, we investigate the recurrent memory augmentation of pre-trained transformer models to extend input context length while linearly scaling compute.
Можно, конечно, прикрутить внешний алгоритм, который будет скармливать ввод по частям, потом объединять результаты. Но это не так эффективно, чем если бы было все интегрировано и само развивалось через обучение.
Здравствуйте, landerhigh, Вы писали:
L>Вот это вот "пока не все" на деле хуже, чем просто "ничего". Ибо что-то он типа "знает", но отличить его бред от реальности может только специалист.
Ну вы когда спрашиваете — то ответ либо решает вашу задачу либо не решает. Отличает внешняя среда.
К примеру, спрашиваете как сделать чтобы на компьютере работала загрузка N разных линуксо — почему-то по умолчанию крайний линукс при установке затирает другой и не запускается вообще ничего. Он вам дает варианты — вы проверяете получилось решить проблему или нет.
Каждая новая версия дает все меньше и меньше ошибочных вариантов.
Т.е. решение вопроса по-прежнему вероятностно, однако вероятность по простым вопросам — 99.9%, т.е. почти наверняка решит.
Здравствуйте, landerhigh, Вы писали:
S>>К примеру, если в git запушили коммит, который нужно полностью удалить — как это сделать? Зачем это держать в голове, если можно просто спросить и получить команду?
L>Через reflog, как же еще? Только зачем, можно стандартным revert отменить изменения, а то, что в истории будут два странных коммита... кому до этого есть дело? Рано или поздно будет merge, в котором можно будет сделать squash.
Если вы увидели что 2 недели назад закоммитили некоторые данные, которые не должны попасть в репо. В старом коммите, очень старый. К примеру, там ваш пароль или еще что.
Как вы будете удалять?
Где мне это искать? Держать в памяти? Как быстро вы сможете найти ответ?
Здравствуйте, so5team, Вы писали:
S>Чтобы советоваться о l/r-value нужно знать про l/r-value, чтобы знать про l/r-value -- нужно изучать язык. Изучать, т.е. приобретать знания, о ненужности которых вы заявляли:
Он объяснит. К примеру вставляете ваш код и просите прокомментировать. Все расскажет.
Здравствуйте, Silver_S, Вы писали:
S_S>У ранних версий GPT-3, GPT-4 был очень маленький контекст, то что в него не влезало, полностью забывалось. Он не мог целиком прочитать книгу, только по частям, про предыдущие части полностью забывая.
У человека тоже маленький контекст. В примеру я задаю GPT вопрос, он на него отвечает и потом в свою память какие-то факты выписывает. И эта память идёт у него как часть промпта на последующие вопросы.
Т.е. можно составить промпт: "Прочитай эту главу, выдели всё важное". Прочитать так все главы, и потом с этим "важным" оперировать. Собственно человека так и "работает". Никто (ну кроме может быть каких-то уникумов) не запоминает книги дословно, запоминают идеи, выжимку.
S_S>Если в вопросе для GPT можно было бы отправить все исходники ОС Windows(c 50 млн. строк) с каким то вопросом, то это ресурсоемко. Всем пользователям они вряд ли могли бы такое предоставить. Даже если бы GPT уже технически мог бы что-то в них найти.
Ну вот я 50 млн строк тоже не смогу прочитать. Я даже список файлов скорей всего не смогу прочитать. Конечно же у GPT будет некий интерфейс, когда он видит список файлов, может "открыть" любой файл, прочитать его, составить план на следующее действие и тд.
Т.е. повторять то, что делает программист.
Тупо залить 50 млн строк в память ИИ это уже сверх-интеллект. Это круто, но кажется, что можно и без этого обойтись.
S_S>Человек может "дообучиться" под конкретный большой проект — за пару недель освоится с новым большим контекстом. S_S>Если GPT учить работать с большими системами, то очевидно, нужна возможность дообучить на конкретный проект — что то закешируется, для более быстрого доступа. Но обучать для такой работы сложнее, чем продолжать короткие тексты из интернета. Нужны обучающие примеры, где для одного большого проекта множество мелких задач.
В моём понимании тут важно не столько дообучение (никто за 2 недели ничему не учится), сколько дистилляция сути из разных участков. Понять структуру проекта, и под словом "понять" я понимаю именно некую выжимку, которая будет заливаться в следующие промпты. Понять принятый стиль. Понять, как проект собирать.
Здравствуйте, Silver_S, Вы писали:
S_S>Рано или поздно начнут ограничивать ИИ, чтобы сохранить традиционные профессии.
Наиболее традиционной профессией является профессия долбака. И пока им ничего не угрожает. Я вот живу в доме, где местный бывший министр себе целый этаж квартир выкупил. Так и здесь регулярно кто-то долбит, то молотком, то перфоратором. Стараются, глядь, переделывают переделанное предыдущими долбаками.
Здравствуйте, landerhigh, Вы писали:
L>Вот, навскидку, документацию по IEC61850 он не знает. Выдает бредятину.
Можно же документы отдельно скармливать, так же как и человеку типа дать сначала прочитать.
о1 по крайней мере научился находить ошибки в собственных рассуждениях (reasoning), так что до сакрального "не знаю" не так уж и далеко IMHO.
Профессии "программист" (как человек, который пишет код) остались считанные годы
Stage Level 1: Chatbots, AI with conversational language.
Stage Level 2: Reasoners, human-level problem solving <<=== GPT o1
Stage Level 3: Agents, systems that can take actions.
Stage Level 4: Innovators, AI that can aid in invention.
Stage Level 5: Organizations: AI that can do the work of an organization <=== толпы безработных
Здравствуйте, Nuzhny, Вы писали:
N>С одной стороны — да. Тут ещё советуют после тестового приглашатть на второе собеседование и обсуждать написанное, просить его модифицировать. Тоже хороший вариант, но он удлиняет процесс найма. Пока другого способа я не вижу.
А зачем 2 собеседования? Я не предлагал 2. Давай задание заранее, перед собеседованием. Чтобы непеосредственно на собеседовании код и задача были предметом обсуждения.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, F3V, Вы писали:
F3V>Главный критерий — понимание человеком обоснованного результата до запуска кода, это уровень разработчика. F3V>Если нет понимания, то это путь магии или путь тестировщика.
Главное понимать концепции. А уже как эти концепции выражаются в том или ином языке — можно не заучивать наизусть.
К примеру, нужно понимать принцип — динамический массив, дерево, стек, хештаблица и т.д. А уже какие классы в языке отвечают за них и какие методы нужно вызывать — знать не нужно.
Здравствуйте, Shmj, Вы писали:
S>Не будьте таким примитивным. S>Главный критерий — реальный мир, окружающая среда. Окружающая среда должна проверить решена задача или нет.
Тестирование в продакшене, да?
Удачи проверять то, что ЧатГПТ насоветует там, где IEC61850 применяется.
S>Как это сделать? Если задача выразима в коде — то запускаете код и смотрите что делает этот код.
Ты не первый и не последний, кто думает, что самое сложное в программировании — это написание кода.
Здравствуйте, Miroff, Вы писали:
M>На самом деле не особо он и прав.
Неправ в чём? В том, что беря человека на алгоритмы надо спрашивать алгоритмы?
M>Исследовательские задачи выполняются совсем в другом масштабе времени. Придти в проект и что-то там по-быстрому оптимизировать в разы можно только если твои предшественники совсем не понимают, что они делают. В реальности, коллеги уже испробовали все наивные подходы: есть нормальные индексы, есть кэши промежуточных вычислений, алгоритмы более-менее адекватны задаче. Ресерч в таком случае делается так: недельку изучаешь литературу, подбирает 3-5 перспективных подходов, неделю делаешь прототип первого подхода, тестируешь, понимаешь что не работает, пробуешь другой подход. К концу месяца понимаешь как надо, ещё два месяца внедряешь в существующий код, потому что там тоже не все просто. И это если ограничится CPU. Если нужно портировать на GPU, то этим вообще занимается отдельный человек, потому что там наивный подход вообще не катит.
Да, проекты на 6-12 месяцев обычно. Так оно и работает. Но есть и поменьше, например, когда текущий наивный очевидный был хорош, но увеличилась нагрузка, узкое место у всех на виду, но задача пока не сильно важная. И специалисты примерно знают, что надо сделать, но руки не доходят. Вот на такие задачи лучше всего сажать людей, чтобы вкатились.
M>И это ещё если удастся ограничиться "классическими" алгоритмами до 2010 года, там хотя бы заранее понятно что лучше, а что хуже. А если нужно что-то более современное, там сплошь нейросети и гибридные вычисления к которым на кривой козе не подъедешь.
Или подъедешь. У меня перед глазами есть образцово-показательное исследование одного корейца (он на Матлебе писал), которое у меня есть в варианте на С++, это хороший алгоритм dehaze:
1. Очень медленная реализация базового алгоритма на Матлабе.
2. Оптимизация под встраиваемое железо.
3. Гибридный на нейросетях.
Это классическая и хорошая научная работа, все стадии, теория, практика, всё норм.
А теперь можно просто взять базовый алгоритм этого исследователя, взять туеву хучу затуманенных снимков с со своих камер, сгенерировать ими датасет и обучиться. Стало намного легче, оптимизация доступная каждому практически даже без знания предметной области.
Здравствуйте, Shmj, Вы писали:
S>По этому важно понимать целостную картину.
Вооот. Если есть понимание "целостной картины", то становится понятно, что "упс, пароль скомпрометирован". Все. И попытки "замести следы" по большому счету бессмысленны.
Те же, кто побегут за магией от "AI", ее, эту магию, и получат. Со всеми вытекающими.
Здравствуйте, landerhigh, Вы писали:
L>Вооот. Если есть понимание "целостной картины", то становится понятно, что "упс, пароль скомпрометирован". Все. И попытки "замести следы" по большому счету бессмысленны. L>Те же, кто побегут за магией от "AI", ее, эту магию, и получат. Со всеми вытекающими.
Общую картину знать нужно — а детали в голове уже не нужно держать. Т.е. саму команду вам даст GPT.
Здравствуйте, m2user, Вы писали:
M>И снова приходим к вопросу подтверждения точности ответа. M>Если я читаю материал, написанный человеком, то в нем присутствуют либо ссылки на источники, либо это результат собственного исследования/эксперимента. M>По крайней мере в приличных сообществах типа stackexchange, wikipedia и пр. такого рода требования прямо прописано в правилах.
Если ответ вам нужен для практических нужд — то вы с помощью этого ответа можете решить свою практическую проблему. Если решили — значит ответ правильный. Все просто.
Однако же соглашусь с тем, что чел. должен видеть как бы общую картину — этого GPT пока не может. Детали можно не знать, а общую картину видеть нужно.
S>>А в доке вы будете искать долго, т.к. ситуация не типичная.
M>А зачем тебе быстро? M>Ты же сам написал, что в приведенном тобой сценарии "плохой" коммит попал в source control 2 недели назад. M>Ведь правка истории в source control — это как раз тот случай, когда торопится не стоит.
Быстро нужно чтобы приступить к другим задачам как можно быстрее.
Здравствуйте, Nuzhny, Вы писали:
N>Неправ в чём? В том, что беря человека на алгоритмы надо спрашивать алгоритмы?
Можно спрашивать, но большая часть работы будет же не про написание наивного алгоритма, верно?
Здравствуйте, Shmj, Вы писали:
L>>Те же, кто побегут за магией от "AI", ее, эту магию, и получат. Со всеми вытекающими.
S>Общую картину знать нужно — а детали в голове уже не нужно держать. Т.е. саму команду вам даст GPT.
Знающий "общую картину" понимает, что никакая команда не нужна.
А дурак с инициативой побежит выполнять. Хорошо, если не похерит весь репозиторий напрочь.
Здравствуйте, Skorodum, Вы писали:
N>>Неправ в чём? В том, что беря человека на алгоритмы надо спрашивать алгоритмы? S>Можно спрашивать, но большая часть работы будет же не про написание наивного алгоритма, верно?
Наивного — да, даже писать не надо. Но в области есть ещё не решённые или не сильно решённые проблемы. Из того, что я уже писал — оптимизации Венгерского алгоритма под 2D задачу. Метод связных компонент на GPU я не нашёл (точнее, он есть в некоем cugraph, но это жесть, а не библиотека, да ещё и падает временами). Если про графы, то SSP для потоковых данных, типа такого, чтобы работало быстро (сейчас все работы для этого трансформеры используют). Много алгоритмов для геокоординат, пересечения с рельефом, их сглаживания и уточнения.
Есть желание помоделировать распространение выбросов от автомобилей в городской застройке, типа такого. Короче, много чего интересного, маленького и большого. Где-то надо просто собирать датасеты и тренировать нейросети, где-то больше математики, где-то физики, программирование и оптимизация. Полный набор, короче.
Здравствуйте, Nuzhny, Вы писали:
N>Где-то надо просто собирать датасеты и тренировать нейросети, где-то больше математики, где-то физики, программирование и оптимизация. Полный набор, короче.
Все так, но речь про то, на практике большая часть времени уйдет не на реализацию алгоритма, а на его поиски (в условном матлабе, питоне, R и т.п), на общение с коллегами, чтобы понять как вытащить релевантные данные или сделать замеры в новом окружении и т.п.
Здравствуйте, Nuzhny, Вы писали:
N>Спорить не буду, согласен. Но всё равно надо спрашивать алгоритмы, необходимый навык
Да, но, как вы уже сказали, автоматизировать тестирование становиться сложнее, придется говорить с кандидатами.
Но разве это плохо? Интервью можно закончить как только становиться понятно, что кандидат не понимает как он решил задание.
Здравствуйте, landerhigh, Вы писали:
L>Знающий "общую картину" понимает, что никакая команда не нужна. L>А дурак с инициативой побежит выполнять. Хорошо, если не похерит весь репозиторий напрочь.
Т.е. ты имеешь в виду что знающий будет медитировать на вершине горы и класть он хотел на все команды?
Ну не до такой же степени, епта.
Знающий общую картину в IT, но не знающий команды конкретного ЯП или конкретной системы — в эпоху GPT может чувствовать себя нормально.
Здравствуйте, landerhigh, Вы писали:
L>Из этого "быстро нужно" отрастали самые заметные факапы в истории. L>А в данном случае с репозитораием делать вообще ничего не надо.
Смотря как его используют. Но дело не в этом — вопрос в том где и как вы будете искать команду.
Здравствуйте, Shmj, Вы писали:
S>Да и смысл проверять те навыки, которые может восполнить GPT? Нужно проверять то, в чем GPT помочь не сможет.
А сможет он проверить простую вещь? Есть код на C#, отправляющий файл PDF на сервер с использованием WebClient. Нужно перейти с древнего WebClient на продвинутый HttpClient. Умеет он такое?
Надеюсь, понятно сформулировано? Помнится, с пониманием матрицы Гильберта были проблемы. Тут должно быть проще.
Здравствуйте, Privalov, Вы писали:
P>А сможет он проверить простую вещь? Есть код на C#, отправляющий файл PDF на сервер с использованием WebClient. Нужно перейти с древнего WebClient на продвинутый HttpClient. Умеет он такое? P>Надеюсь, понятно сформулировано? Помнится, с пониманием матрицы Гильберта были проблемы. Тут должно быть проще.
Давай код, который нужно переписать. Почему именно PDF-файл?
У меня сейчас доступ только к предпоследней версии — 4o — через API работаю, о если потратил меньше $100 то к новой не дает доступа. Через Web пока не продлял.
Здравствуйте, Shmj, Вы писали:
L>>А дурак с инициативой побежит выполнять. Хорошо, если не похерит весь репозиторий напрочь. S>Т.е. ты имеешь в виду что знающий будет медитировать на вершине горы и класть он хотел на все команды?
Нет, я имел в виду, что дурака учить — что мертвого лечить.
S>Ну не до такой же степени, епта.
S>Знающий общую картину в IT, но не знающий команды конкретного ЯП или конкретной системы — в эпоху GPT может чувствовать себя нормально.
Есть такая штука — документация. Слышал? Если нет, спроси у своего AI, что это такое.
Здравствуйте, Shmj, Вы писали:
L>>Из этого "быстро нужно" отрастали самые заметные факапы в истории. L>>А в данном случае с репозитораием делать вообще ничего не надо.
S>Смотря как его используют. Но дело не в этом — вопрос в том где и как вы будете искать команду.
Я ничего искать не буду. Если мне надо, я знаю где посмотреть.
А ты рано или поздно по совету "AI" что-нибудь серьезно испортишь.
Здравствуйте, landerhigh, Вы писали:
L>Есть такая штука — документация. Слышал? Если нет, спроси у своего AI, что это такое.
Часто документация плохо структурирована, много воды, не полна. Так вот GPT — и есть тот инструмент, который приведет вам выдержку из документации и адаптирует требуемое задание на основе документации с учетом всех нюансов.
Здравствуйте, landerhigh, Вы писали:
L>Я ничего искать не буду. Если мне надо, я знаю где посмотреть.
А область знаний у вас какая? Знаете ли вы как создать пакет CMake и сколько времени вам нужно, чтобы найти?
L>А ты рано или поздно по совету "AI" что-нибудь серьезно испортишь.
Испортить можно и без этого. Главное видеть картину целиком, а мелочи уже можно не запоминать.
Здравствуйте, bnk, Вы писали:
bnk>Это тупо неправильный код. Content-Type должен быть multipart/form-data (а не "application/pdf"). WebClient генерит его в UploadFile. Еще, accept header непонятно откуда взялся. bnk>У меня сгенерил чуть получше, но тоже косяк в коде (подставлен "Bearer" хотя согласно исходному коду, его быть не должно). В общем так себе. Хотя то что нет bearer я тоже мог бы прозевать я думаю
У вас есть возможность запустить o1? У меня на данный момент нет.
Вообще это не проблема — получаете ошибку и пишите ему. Он вам предлагает установить Fiddler и получить текст запроса — посылаете текст за проса и он исправляет свой код.
Диалог должен быть — как с человеком. Спрашивайте, уточняйте. Не просто как те мужики из анекдота №-10093341
Здравствуйте, Shmj, Вы писали:
S>У вас есть возможность запустить o1? У меня на данный момент нет.
Не, у меня тоже нет. Видимо по другой ветке пошел
S>Вообще это не проблема — получаете ошибку и пишите ему. Он вам предлагает установить Fiddler и получить текст запроса — посылаете текст за проса и он исправляет свой код. S>Диалог должен быть — как с человеком. Спрашивайте, уточняйте. Не просто как те мужики из анекдота №-10093341
Здравствуйте, bnk, Вы писали:
S>>У вас есть возможность запустить o1? У меня на данный момент нет. bnk>Не, у меня тоже нет. Видимо по другой ветке пошел
Ну вот пусть у кого есть доступ сейчас — запустит. О нем же речь, епта. А мы старые тапки обсуждаем.
Мой вариант, похоже, старый GPT-4 выдал. 4o добавляет такой код:
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
public async Task<string> UploadFileAsync(string url, string filePath)
{
string result = null;
using (var httpClient = new HttpClient())
{
try
{
// Установка заголовка авторизации
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Properties.Settings.Default.ApiKey);
using (var content = new MultipartFormDataContent())
{
// Чтение файлаvar fileContent = new ByteArrayContent(File.ReadAllBytes(filePath));
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
// Отправка POST-запросаvar response = await httpClient.PostAsync(url, content);
// Проверка успешности запроса
response.EnsureSuccessStatusCode();
// Чтение ответа
result = await response.Content.ReadAsStringAsync();
}
}
catch (HttpRequestException e)
{
// Обработка исключений
result = null;
}
}
return result;
}
Да — есть ошибка с Bearer. Интересно что скажет o1.
Здравствуйте, Shmj, Вы писали:
S>Не спешите радоваться.
А с чего вы взяли, что я радуюсь? Мне, может, надо, чтоб работало без доработки напильником. Чтобы взял, вставил фрагмент в код, и всё сразу заработало.
А вариации на тему этого кода есть везде: в MSDN, на SO. Есть варианты с StreamContent вместо ByteArrayContent. Только, как верно заметил коллега bnk, в коде должен быть MultipartFormDataContent. А его в этом варианте нет.
Здравствуйте, bnk, Вы писали:
bnk>Оно не то, чтобы не работает, оно без доработки напильником не работает. Все равно ускоряет написание кода в разы.
Но нужно чётко понимать, что делаешь. Меня выручает некоторый опыт работы с чужим кодом. Я его перелопатил намного больше, чем сочинил своего.
bnk>До того, чтобы полностью заменить человека, еще годы. Но когда мы там окажемся, надеюсь я уже буду на пенсии.
Чтобы заменить человека, ИИ должен хлтя бы уметь решить проблему останова. Так что есть у нас пока время.
Здравствуйте, Privalov, Вы писали:
P>А с чего вы взяли, что я радуюсь? Мне, может, надо, чтоб работало без доработки напильником. Чтобы взял, вставил фрагмент в код, и всё сразу заработало. P>А вариации на тему этого кода есть везде: в MSDN, на SO. Есть варианты с StreamContent вместо ByteArrayContent. Только, как верно заметил коллега bnk, в коде должен быть MultipartFormDataContent. А его в этом варианте нет.
Через API 4o выдало MultipartFormDataContent. Через сайт выдало без него (хотя вроде тоже 4o).
Нужно проверять с новой версией o1. У меня сейчас нет доступа, т.к. юзаю через API — сейчас особо нет нужды платить за сайт.
Возможно кто-то из форума, у кого есть доступ к o1 — проверит его. Оно выдает точнее.
Хотя и 4o — если дать ошибку — то обычно справляется.
Здравствуйте, Shmj, Вы писали:
S>А область знаний у вас какая? Знаете ли вы как создать пакет CMake и сколько времени вам нужно, чтобы найти?
А вот тут-то и закопана разница между "AI" и интеллектом, как сейчас принято говорить, "organic".
Я знаю, где мои знания заканчиваются или их недостаточно. И не боюсь сказать "не знаю", "посмотри там" или "это потребует дополнительного исследования".
Твой искусственный идиот будет пытаться бредить.
L>>А ты рано или поздно по совету "AI" что-нибудь серьезно испортишь. S>Испортить можно и без этого. Главное видеть картину целиком
Здравствуйте, landerhigh, Вы писали:
L>Я знаю, где мои знания заканчиваются или их недостаточно. И не боюсь сказать "не знаю", "посмотри там" или "это потребует дополнительного исследования". L>Твой искусственный идиот будет пытаться бредить.
AFAIK это (то что AI сейчас не может ответить "не знаю") — временная проблема, сейчас находится в процессе решения.
Тот же о1, исходя из того что я читал (сам еще не пробовал), в этом плане уже лучше, по крайней мере сам себя проверяет перед тем как что-то сморозить.
Здравствуйте, bnk, Вы писали:
bnk>AFAIK это (то что AI сейчас не может ответить "не знаю") — временная проблема, сейчас находится в процессе решения. bnk>Тот же о1, исходя из того что я читал (сам еще не пробовал), в этом плане уже лучше, по крайней мере сам себя проверяет перед тем как что-то сморозить.
Здравствуйте, Nuzhny, Вы писали:
N>С одной стороны — да. Тут ещё советуют после тестового приглашатть на второе собеседование и обсуждать написанное, просить его модифицировать. Тоже хороший вариант, но он удлиняет процесс найма. Пока другого способа я не вижу. N>Далее вопрос в том, в принципе наша профессия как-то изменится или нет? Если да, то как сильно и в какую сторону. Вон, товарищ прочит нам будущее, при котором даже синтаксис знать не надо, а писать код будут промт-программисты, которым конкретный ЯП знать в принципе будет не обязательно. Видимо, программисты в таком случае в принципе уйдут, а код начнут писать специалисты в предметной области, которым на своём предметном языке надо будет писать ТЗ-спецификацию, наиболее точную и непротеворечивую, по которой будет генерировать код. То есть условный С++ станет тем, чем для современных С++ программистов является ассемблер.
Все хорошо, но сколько это будет потреблять энергии? Вон гугол, говорят, уже про собственные АЭС задумался.
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, landerhigh, Вы писали:
L>>Есть такая штука — документация. Слышал? Если нет, спроси у своего AI, что это такое.
S>Часто документация плохо структурирована, много воды, не полна. Так вот GPT — и есть тот инструмент, который приведет вам выдержку из документации и адаптирует требуемое задание на основе документации с учетом всех нюансов.
Для этого дорогостоящая LLM не нужна. Можно сделать какую-нибудь NLP модель по типу FAQ.
Здравствуйте, gress, Вы писали:
S>>Часто документация плохо структурирована, много воды, не полна. Так вот GPT — и есть тот инструмент, который приведет вам выдержку из документации и адаптирует требуемое задание на основе документации с учетом всех нюансов.
G>Для этого дорогостоящая LLM не нужна. Можно сделать какую-нибудь NLP модель по типу FAQ.
Здравствуйте, Privalov, Вы писали:
P>И кто же. В соседней теме мы увидели, что чатгпт на это не способен, в результате всё свелось к религиозной войне.
Здравствуйте, bnk, Вы писали:
bnk>Профессии "программист" (как человек, который пишет код) остались считанные годы
Написание кода уже довольно давно хорошо тренируемый и воспроизводимый навык, что напрямую отражается на снижение ЗП программистов с 80-х (если не с 70-х).
bnk>Stage Level 1: Chatbots, AI with conversational language. bnk>Stage Level 2: Reasoners, human-level problem solving <<=== GPT o1
Motivation? bnk>Stage Level 3: Agents, systems that can take actions. bnk>Stage Level 4: Innovators, AI that can aid in invention.
Interaction? bnk>Stage Level 5: Organizations: AI that can do the work of an organization <=== толпы безработных
Т.е. можно не знать код или особенности библиотеки, но нужно знать общий смысл — что такое протокол HTTP, как оно в общем все работает. Нужно понимать что есть инструменты, которыми можно посмотреть передаваемые данные — сами инструменты знать не нужно.
Он не ответит правильно с первого раза — но когда покажешь общую картину — ответит, исправит.
Здравствуйте, Shmj, Вы писали:
S>Т.е. можно не знать код или особенности библиотеки, но нужно знать общий смысл — что такое протокол HTTP, как оно в общем все работает. Нужно понимать что есть инструменты, которыми можно посмотреть передаваемые данные — сами инструменты знать не нужно.
Ну знаю я общий смысл. А чатгпт не знвет. Код, который он показывает, такой же, как в примерах из MSDN или StackOverflow.
S>Он не ответит правильно с первого раза — но когда покажешь общую картину — ответит, исправит.
Ответит снова неправильно.
S>Я ему привел HTTP-заголовки и он исправил ошибку.
Здравствуйте, Privalov, Вы писали:
S>>Он не ответит правильно с первого раза — но когда покажешь общую картину — ответит, исправит. P>Ответит снова неправильно.
Ответит правильно — см. образец? Неужели не открывается telegra.ph?
S>>Я ему привел HTTP-заголовки и он исправил ошибку. P>И какой код возврата он выдал при тестировании?
Уже два года даю пользоваться любыми ботами во время интервью. Обьясни, что я делаю не так.
Домашнего задания у меня нет, я не нанимаю юниоров, но опять же не вижу проблем.
Здравствуйте, Shmj, Вы писали:
S>Ответит правильно — см. образец? Неужели не открывается telegra.ph?
Я идентичный код получил задолго до. И давно знаю, что возвращается в ответе. А вы мне рассказываете, что он правильный. Такого и в MSDN, и на StackOverflow полно. Чатгпт его оттуда и спионерил позаимствовал.
S>А на какой адрес отправить? Заголовки правильные.
Вот, вы утверждаете, что код верный, ни разу его даже не запустив. Зато ширина охвата у чатгпт намного больше, чем у учёного кота из "Понедельника". Плюс знание всех языков мира.
Адрес любой, кто PDF принимает. Тот, ч которым работаю я, дать не могу. Туда кто угодно посылать ничего не может.
Да вы не переживайте. У меня работает. Я просто думал, что чатгпт может немного ускорить процесс. Вижу, что ошибался.
Здравствуйте, Nuzhny, Вы писали:
N>Я уже научился поднимать локальный сервер с LLM, коннектиться к нему плагином из VS Code (плагин Continue) и использовать почти как Copilot. Так что интернет не проблема, открытые LLM тоже развиваются.
А модель какая?
Здравствуйте, Privalov, Вы писали:
P>Я идентичный код получил задолго до. И давно знаю, что возвращается в ответе. А вы мне рассказываете, что он правильный. Такого и в MSDN, и на StackOverflow полно. Чатгпт его оттуда и спионерил позаимствовал.
Вот этот код:
static async Task UploadAsync(string url, string filePath)
{
using (var httpClient = new HttpClient())
{
try
{
// Установка заголовка авторизации без схемы 'Bearer'
httpClient.DefaultRequestHeaders.Add("Authorization", "testkey");
using (var content = new MultipartFormDataContent("8dcf3906305b7f8")) // Устанавливаем границу вручную
{
var fileContent = new ByteArrayContent(File.ReadAllBytes(filePath));
fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
// Отключаем заголовок 'Expect: 100-continue'var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = content
};
request.Headers.ExpectContinue = false;
var response = await httpClient.SendAsync(request);
response.EnsureSuccessStatusCode();
}
}
catch (HttpRequestException httpEx)
{
// Обработка исключения
}
}
}
Он и заголовок Authorization исправил — убрал Bearer и MultipartFormDataContent присутствует. Ниже так же оъяснил по поводу 8dcf3906305b7f8.
Что не так?
S>>А на какой адрес отправить? Заголовки правильные.
P>Вот, вы утверждаете, что код верный, ни разу его даже не запустив. Зато ширина охвата у чатгпт намного больше, чем у учёного кота из "Понедельника". Плюс знание всех языков мира.
Я отправил на example.com и посмотрел заголовки — вроде все ОК. Вашего то тестового окружения у меня нет.
Здравствуйте, Privalov, Вы писали:
S>>Что не так? P>Он не работает. В остальном всё так.
Что именно с ним не так?
S>>Я отправил на example.com и посмотрел заголовки — вроде все ОК. Вашего то тестового окружения у меня нет. P>В ответе какой код возврата пришёл?
При отправке на какой адрес? У меня нет вашего тестового окружения.
Я посмотрел заголовки — все ОК.
Берете Fiddler и сравниваете заголовки, если не работает что-то. GPT вам скажет что изменить в коде — просто даете ему заголовки и код ошибки. Знать как писать код, стандартную библиотеку — не нужно.
Здравствуйте, novitk, Вы писали:
N>Уже два года даю пользоваться любыми ботами во время интервью. Обьясни, что я делаю не так. N>Домашнего задания у меня нет, я не нанимаю юниоров, но опять же не вижу проблем.
Понятно, без домашнего задания. В принципе, тема так и называется, да?
Здравствуйте, Shmj, Вы писали:
S>При отправке на какой адрес? У меня нет вашего тестового окружения.
Куда-то же отправляли? Какой код вришёл в ответе? Или чатгпт этого не знает?
S>Берете Fiddler и сравниваете заголовки, если не работает что-то. GPT вам скажет что изменить в коде — просто даете ему заголовки и код ошибки. Знать как писать код, стандартную библиотеку — не нужно.
Иы думаете, я действительно не в курсе, как и что делать? Я спросил: какой код возврата пришёл. Если вы не отвечаете на этот вопрос, значит, не знаете. Либо стесняетесь назввать. И я даже догадываюсь, по какой причине.
Здравствуйте, Privalov, Вы писали:
P>Куда-то же отправляли? Какой код вришёл в ответе? Или чатгпт этого не знает?
Подставил example.com.
S>>Берете Fiddler и сравниваете заголовки, если не работает что-то. GPT вам скажет что изменить в коде — просто даете ему заголовки и код ошибки. Знать как писать код, стандартную библиотеку — не нужно.
P>Иы думаете, я действительно не в курсе, как и что делать? Я спросил: какой код возврата пришёл. Если вы не отвечаете на этот вопрос, значит, не знаете. Либо стесняетесь назввать. И я даже догадываюсь, по какой причине.
Вы понимаете что код возврата зависит от сервера? Если сервер не ожидает такого запроса — будет какая-то ошибка из серии 400-х. example.com просто ожидает GET-запрос.
Вам нужно проверить это в реальном тестовом окружении.
Здравствуйте, Shmj, Вы писали:
S>Вам нужно проверить это в реальном тестовом окружении.
Как я не раз отмечал, код, выдаваемый чатгпт, не работает.
Если что, свои первые GET и POST я сделал где-то в 2003-2004 году. Всё руками. И про заголовки кое-что слышал. Часто там имеет значение каждый пробел и каждая кавычка.
Здравствуйте, Privalov, Вы писали: P>Как я не раз отмечал, код, выдаваемый чатгпт, не работает.
Вы обратили внимание на то что он исправил заголовок — убрал Barrer? Или пробуете первую версию. Вот этот код:
Скрытый текст
static async Task UploadAsync(string url, string filePath)
{
using (var httpClient = new HttpClient())
{
try
{
// Установка заголовка авторизации без схемы 'Bearer'
httpClient.DefaultRequestHeaders.Add("Authorization", "testkey");
using (var content = new MultipartFormDataContent("8dcf3906305b7f8")) // Устанавливаем границу вручную
{
var fileContent = new ByteArrayContent(File.ReadAllBytes(filePath));
fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
// Отключаем заголовок 'Expect: 100-continue'var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = content
};
request.Headers.ExpectContinue = false;
var response = await httpClient.SendAsync(request);
response.EnsureSuccessStatusCode();
}
}
catch (HttpRequestException httpEx)
{
// Обработка исключения
}
}
}
P>Если что, свои первые GET и POST я сделал где-то в 2003-2004 году. Всё руками. И про заголовки кое-что слышал. Часто там имеет значение каждый пробел и каждая кавычка.
Открываете Fiddler — тупо копируете заголовки запроса который работает и того, который не работает. Если не все заголовки скопировались — еще раз даете ему на доработку.
Здравствуйте, Shmj, Вы писали:
S>Вы обратили внимание на то что он исправил заголовок — убрал Barrer? Или пробуете первую версию. Вот этот код:
А вы обратили внимание, что выше по ветке я уже писал: у меня всё работает. А вы с упорством, достойным лучшего применения, демонстрируете неработающий код, причём один и тот же. Меня тут больше интересует ваше умение общаться с чатгпт.
S>Открываете Fiddler — тупо копируете заголовки запроса который работает и того, который не работает. Если не все заголовки скопировались — еще раз даете ему на доработку.
Вы действительно думете, что я читать не умею? Или не знаю, что такое Fiddler? Зачем одно и то же повторяете? меня не это интересует.
Здравствуйте, Privalov, Вы писали:
P>А вы обратили внимание, что выше по ветке я уже писал: у меня всё работает.
Что именно работает?
P>А вы с упорством, достойным лучшего применения, демонстрируете неработающий код, причём один и тот же.
Код можете проверить только вы, т.к. у нас нет доступа к вашему серверу. Почему ваш сервер не принимает код — можете знать только вы. Давайте ошибку — рассмотрим. Вы ключ то подставили или так и оставли testkey?
S>>Открываете Fiddler — тупо копируете заголовки запроса который работает и того, который не работает. Если не все заголовки скопировались — еще раз даете ему на доработку. P>Вы действительно думете, что я читать не умею? Или не знаю, что такое Fiddler? Зачем одно и то же повторяете? меня не это интересует.
Здравствуйте, novitk, Вы писали:
N>Если очень все жестко с безопасностью, то почему не организовать полностью изолированный виртуальный десктоп с "вашими" инструментами и т.д.?
Движемся в этом направлении.
N>>Хочется узнать, как кандидат может писать код с чистого листа, а не только разбираться в чужом — это можно спросить и на интервью. N>Не понимаю ценности этого "с чистого листа". Оно как-то по другому потом пахнет?
Да, конечно.
N>У меня обратное впечатление и желания. Люди совершенно не умеет готовить с AI. Если copilot не вывалил готовый код сам, они не знают, что собственно делать. N>IMHO умение использовать АИ >>> code monkey с hackerrank.
Считай, что у меня такой старчееский бзик, что программист должен уметь писать код и без ИИ.
Здравствуйте, Shmj, Вы писали:
S>Что именно работает?
Что, чатгопота и этого не сумел объяснить?
PDF отправляется, код возврата 201. Но это не тот код, который вы с упорством, достойным лучшего применения, здесь показываете.
S>Так в чем вопрос?
Что, чатгопота этого не знает?
Нет у меня к вам никаких вопросов по разработке. Но тут КСВ, как пройти мимо? Оказывается, ктму-то, чтобы попасть в зависимость от робота, даже зов не нужен. Как это показывали в хорошем детском фильме "Отроки во Вселенной".
Здравствуйте, Nuzhny, Вы писали: N>Считай, что у меня такой старчееский бзик, что программист должен уметь писать код и без ИИ.
А что насчет вспомогательных задач и незнакомых языков? Bash, Python, JS?
Вот свежий пример из жизни.
Недавно наш товарищ по кывту жаловался, что в популярной библиотеке очень неэффективная реализация функции разбиения строки.
Я спросил ЧатГПТ сделать такую
функцию
std::vector<std::string_view> splitPath(std::string_view path) {
std::vector<std::string_view> result;
std::size_t start = 0;
while (start < path.size()) {
std::size_t end = path.find('/', start);
if (end == std::string_view::npos) {
end = path.size();
}
// Skip empty segments (e.g., in "//")if (end != start) {
result.emplace_back(path.substr(start, end - start));
}
start = end + 1;
}
return result;
}
ИМХО, интерфейс от GPT (возвращение std::string_view) даже лучше. Если возвращать std::string, то результат GPT не хуже, чем реализация за 20 минут от профессионального разработчика на С++.
Количество задач, о которых человек может реально думать сильно ограниченно, и если что-то можно автоматизировать, стоит это автоматизировать.
Здравствуйте, Skorodum, Вы писали:
N>>Считай, что у меня такой старчееский бзик, что программист должен уметь писать код и без ИИ. S>А что насчет вспомогательных задач и незнакомых языков? Bash, Python, JS?
Я только за, сам тоже пользуюсь локальной версией ИИ помощника. Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат.
Здравствуйте, Nuzhny, Вы писали:
N>Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат.
А как его использовать во время собеседования? Только если собеседование не в живую, да и то заметно будет
Здравствуйте, Skorodum, Вы писали:
N>>Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат. S>А как его использовать во время собеседования? Только если собеседование не в живую, да и то заметно будет
Вот тут товарищи говорят, что они не против — главное, чтобы задание было сделано. И как-то на самом собеседовании, и при выполнении домашнего ТЗ.
Здравствуйте, so5team, Вы писали:
S>Это сильно зависит от того, что мы имеем на входе и как долго собираемся использовать результат дробления на части.
Но согласись, что в этом случае ИИ дал вполне хороший ответ, особенно если правильно понимать время жизни
Для истории: запрос был "split string in C++17" и "Use this approach to implement "split_path" with "/" as delimiter."
Здравствуйте, Nuzhny, Вы писали:
N>Я только за, сам тоже пользуюсь локальной версией ИИ помощника. Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат.
ИМХО человек, который может сравнить реализации splitPath по количеству копирований, memleaks и т.д., вполне может показать свое "умение".
И кстати да, для меня тоже важен уровень "языка в пальцаx". Вырожденный пример, это чел говорит, что работает с Питоном каждый день, a потом начинает писать "a.len()". Однако это очень легко выяснить на собеседовании.
Здравствуйте, Nuzhny, Вы писали:
N>Неправ в чём? В том, что беря человека на алгоритмы надо спрашивать алгоритмы?
В том, что гребешь все алгоритмы под одну гребенку. Если нужен человек дизайнить алгоритмы, то нужно такого и искать, причем именно в этой области. Если человек занимался топологией в ГИСах, он может быть крут, но в матмоделировании от него будет столько же пользы, сколько от толкового джуна.
N>Да, проекты на 6-12 месяцев обычно. Так оно и работает. Но есть и поменьше, например, когда текущий наивный очевидный был хорош, но увеличилась нагрузка, узкое место у всех на виду, но задача пока не сильно важная. И специалисты примерно знают, что надо сделать, но руки не доходят. Вот на такие задачи лучше всего сажать людей, чтобы вкатились.
На такие задачи лучше всего сажать студентов. И я, кстати, вполне серьезно, сажать "взрослого" алгоритмиста на такие задачи это из пушки по воробьям.
N>Это классическая и хорошая научная работа, все стадии, теория, практика, всё норм.
Вот я о чем и говорю: перенести алгоритм из матлаба на GPU это серьезная работа.
N>А теперь можно просто взять базовый алгоритм этого исследователя, взять туеву хучу затуманенных снимков с со своих камер, сгенерировать ими датасет и обучиться. Стало намного легче, оптимизация доступная каждому практически даже без знания предметной области.
Так это черрипикинг: взять чужой подход, чужую модель и чужой алгоритм и допилить для своих данных. Даже этого можно даже программировать не уметь, достаточно уметь компилировать и запускать.
Здравствуйте, Miroff, Вы писали:
M>В том, что гребешь все алгоритмы под одну гребенку. Если нужен человек дизайнить алгоритмы, то нужно такого и искать, причем именно в этой области. Если человек занимался топологией в ГИСах, он может быть крут, но в матмоделировании от него будет столько же пользы, сколько от толкового джуна.
Мы так и делаем.
M>На такие задачи лучше всего сажать студентов. И я, кстати, вполне серьезно, сажать "взрослого" алгоритмиста на такие задачи это из пушки по воробьям.
На какие задачи-то? Новые алгоритмы в нашей области выносят на свет обычно либо PhD из того же Eth, либо небольшие лаборатории. Одному студенту можно справиться с реализацией алгоритма по статье, но не со всеми этапами от R, D до продакшена.
M>Вот я о чем и говорю: перенести алгоритм из матлаба на GPU это серьезная работа.
Так никто и не спорит.
M>Так это черрипикинг: взять чужой подход, чужую модель и чужой алгоритм и допилить для своих данных. Даже этого можно даже программировать не уметь, достаточно уметь компилировать и запускать.
Вот студенты-практиканты, студенты-стадеры этим и занимаются. Отличная штука, чтобы въезать в тему, узнать и базу, и современный подход.
Здравствуйте, serg_joker, Вы писали:
_>Учитывая это: С>>C++ на таком уровне я не знаю ( = delete — это что такое? move-конструктор?).
_>Вот это — правда: С>>Но нюанс здесь, по-моему, заключается в том, что на С++ писать нельзя.
_>Но нюанс здесь, по моему, заключается в том, что на С++ писать нельзя Вам.
Я его не трогал этак 21 год. Разумеется, я его не знаю. Только я много каких языков не знаю, а понять написанное как-то смогу. А вот с С++ — не могу. Потому что ребус, глядь.
Здравствуйте, so5team, Вы писали:
S>Может быть так, что у нас есть кусок данных в памяти, который был прочитан из сокета, в этих данных есть значение path, его нужно разобрать. Чтобы не создавать лишних копий path в split передается string_view. А вот результат split-а может пережить исходный кусок данных, в этом случае вектор из string_view -- это прямой путь к повисшим ссылкам и use-after-free.
И для борьбы с этим придумали Rust с его borrow. Но упорные ёжики---
Здравствуйте, Слава, Вы писали:
S>>Может быть так, что у нас есть кусок данных в памяти, который был прочитан из сокета, в этих данных есть значение path, его нужно разобрать. Чтобы не создавать лишних копий path в split передается string_view. А вот результат split-а может пережить исходный кусок данных, в этом случае вектор из string_view -- это прямой путь к повисшим ссылкам и use-after-free.
С>И для борьбы с этим придумали Rust с его borrow. Но упорные ёжики---
А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust?
Здравствуйте, so5team, Вы писали:
S>А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust?
Так это chatGPT всё сделает, если попросить (или что там нынче модное).
Здравствуйте, Vzhyk2, Вы писали:
S>>А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust? V>Так это chatGPT всё сделает, если попросить (или что там нынче модное).
Когда я начинал учиться программировать было модно переписывать софт с Fortran на Си.
Прошло уже более 30 лет, а Си так Fortran и не убил.
Здравствуйте, so5team, Вы писали:
S>Но тогда chatGPT не было, это да.
Во. И программисты были поквалифицированнее и понимали, что нафиг не нужно переписывать то, что и так прекрасно работает.
Здравствуйте, so5team, Вы писали:
С>>И для борьбы с этим придумали Rust с его borrow. Но упорные ёжики---
S>А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust?
Есть. Начать переписывать этот код, вместо реализации бизнес-фич. За те же деньги от тех же клиентов. Отступников — карать кувалдой. Клиенты никуда не денутся, если вся разработка станет вести себя иначе. Как вот, знаете было с холодильниками на фреоне и ещё с несколькими вещами, когда все вели себя в духе ХХХХ, и это казалось естественнейшим делом, следующим из самой структуры мира. А потом что-то случилось, и внезапно оказалось, что естественным поведением является УУУУУ. Нет вообще никакой разницы, что делать, если это делают все.
Но для реализации этого требуется чья-то экстраординарная политическая воля, а пока что эта же самая воля направлена на попытки вообще избавиться от разработчиков. Чтобы напрямую клиент что-то булькал, а AI это всё реализовывал.
Здравствуйте, Слава, Вы писали:
С>>>И для борьбы с этим придумали Rust с его borrow. Но упорные ёжики---
S>>А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust?
С>Есть. Начать переписывать этот код, вместо реализации бизнес-фич. За те же деньги от тех же клиентов.
Здравствуйте, so5team, Вы писали:
S>>>А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust?
С>>Есть. Начать переписывать этот код, вместо реализации бизнес-фич. За те же деньги от тех же клиентов.
S>"Отличный план, Уолтер..." (с) S>lavrov.jpg
Когда вам приказали в масочках бегать — вы бегали. Когда вам приказали украинствовать — вы тоже это начали. До того (а также вместе с) вы боролись с терроризмом, педофилами, глобальным потеплением, кознями запада и коммунистической угрозой.
Почему вы на Rust с С++ не переписываете — потому что вам никто не приказал. Не приказал как в анекдоте "чёткого указания не было, барин".
Здравствуйте, so5team, Вы писали:
S>Когда я начинал учиться программировать было модно переписывать софт с Fortran на Си. S>Прошло уже более 30 лет, а Си так Fortran и не убил.
В моей локации ЛинкедИн выдал ровно 0 вакансий по Fortran.
По С++ пара десятков (реальных "C++" ~10), тоже мало
Здравствуйте, Skorodum, Вы писали:
S>>Когда я начинал учиться программировать было модно переписывать софт с Fortran на Си. S>>Прошло уже более 30 лет, а Си так Fortran и не убил. S>В моей локации ЛинкедИн выдал ровно 0 вакансий по Fortran.
Из того, что я читаю про использование Fortran в современном мире, у меня сложилось устойчивое ощущение, что он применяется в науке. Разнообразные расчеты и моделирование -- вот это вот все. Так что, предположу, нужно смотреть вакансии в ВУЗах и НИИ по теме вычислительной математики/физики/химии и т.п. Ну и подобные специалисты, имхо, прежде всего специализируются на какой-то научной теме, вроде гидродинамики, а собственно программирование там просто как один из инструментов.
Здравствуйте, so5team, Вы писали:
S>Из того, что я читаю про использование Fortran в современном мире, у меня сложилось устойчивое ощущение, что он применяется в науке.
Именно так. Я в своё время работал в НИИ. Примерно вся математика там писалась на Фортране. Причём на Фортране 4. Я, правда, использовал конструкции Фортрана 77, облегчающие жизнь.
На Сях я делал, как я уже упомниал, кое-какие низкоуровневые вставки. А математику на Фортране писать гораздо удобнее, чем на Сях.
Фортрановский софт работает десятилетиями. Переносится с платформы на платформу практически идеально. Практически — потому что всегда есть нюансы типа сегментной организации памяти в MS DOS.
Здравствуйте, so5team, Вы писали:
S>Из того, что я читаю про использование Fortran в современном мире, у меня сложилось устойчивое ощущение, что он применяется в науке. Разнообразные расчеты и моделирование -- вот это вот все. Так что, предположу, нужно смотреть вакансии в ВУЗах и НИИ по теме вычислительной математики/физики/химии и т.п. Ну и подобные специалисты, имхо, прежде всего специализируются на какой-то научной теме, вроде гидродинамики, а собственно программирование там просто как один из инструментов.
Все так и в этом случае Фортран составляет 0.1% от требуемых знаний, поэтому даже в вакансиях не упоминается. Очень редко где есть выделенные позиции "программистов при ученых".