Я не могу сейчас найти источник, но я где-то читал, что именно лингвистическое ядро у современных топовых моделей мощнее того, которое в человеческом мозге. И вот тут, как мне кажется, у всех рассуждающих кроется основная ошибка. Любая заведомо более мощная система всегда сможет съэмитировать более простую. Другими словами, я могу дать мощной ИИ свои тексты и попросить её писать так же (я уже пробовал). Могу попросить вставлять неожиданные слова синонимы по тексту, могу попросить писать "неровным" ритмом. А могу попросить делать мелкие ошибки и опечатки, свойственные среднесатистическому человеку. И топовые модели всё это исполнят, просто потому что они мощнее в лингвистике. Единственным выходом я вижу открытие самими ИИ-компаниями некоторых API, которые бы смогли по запросу сказать, писался ли когда-то некоторый большой кусок текста их моделями или нет. Но и тут есть проблема - открытые модели. Лично мне кажется, что в конце концов все сдадутся и перестанут обращать внимание на то кем писался текст, а будут работать со смыслом текста. Никто же сейчас не интересуется считалась ли какая-нибудь сложная формула человеком-компьютером (https://habr.com/en/companies/gazprombank/articles/791536/) или современным электронным компьютером.
Пусть даже переписывание на естественный раздует её в 10 раз, реализация всё ещё будет на несколько порядков больше.
У теоремы Ферма вообще нет реализации в смысле программного кода (проверка программой - это не реализация теоремы), поэтому, если честно, мне не понятно, что с чем вы сравниваете и о какой реализации говорите.
Можно взять более приближённый к реальности пример, например, спецификацию словаря: ...
Но даже тут она сильно короче реализации.
Какой из реализаций? На основании написанной вами спецификации можно сделать уйму различных реализаций. Можно с упором на экономию памяти, можно с упором на скорость, можно с упором на быстродействие операции поиска, а можно с упором на скорость вставки новых элементов. Можно оптимизировать для ключей чисел, а можно для хранения строк в виде значений. А ещё можно сделать хранений с сортировкой, ну и всё такое. И это всё будут разные и корректные реализации для приведенной вами спецификации.
И вот если вы начнёте все какие только возможно тонкости вписывать в спецификацию, то в конце концов получите, фактически, код. Ну или изобрете ещё один язык программирования на основе спецификации с деталями.
Тут где-то ниже был хороший пример про сайт и цвет эмблемы фирмы. Тут та же история. Вы либо:
согласитесь с реализацией ИИ, в которой она домыслит от себя все эти тонкости;
будете писать код сами с учетом ваших тонкостей;
будете править её код под свои нужды;
раздувать вашу спецификацию.
Короче получится только в первом случае.
P.S. Короче говоря, спецификация по которой можно сделать несколько существенно различных реализаций - неполна. И именно поэтому она короче чем код. В противном случае - это и есть код.
Там тривиальное логическое рассуждение ("любой код может исполняться машиной", "текст задачи не может исполняться машиной" => "текст не является кодом"), чего математического вам в нём нехватает?
Как это не может исполняться машиной? Подождите, подождите. Всё обсуждение началось с того, что теперь, по мнению автора статьи, код на классических языках программирования (ЯП) будет писаться ИИ. ИИ исполняется кем? Машиной? Значит теперь путь такой: "Детальное описание задачи" => "код на ЯП" => "Исполнение кода" (которое уже умеют делать агентские системы). Значит машина берет описание задачи и, в конечном счете, его исполняет, а значит описание задачи - код!
То, что теперь у нас появился промежуточный шаг в виде перевода словесного описания в ЯП с помощью ИИ не играет роли, также как ранее не играло роли появление компиляторов с языков программирования высокого уровня в машинный код. Суть остается той же. Берем какой-то текст, преобразовываем, исполняем.
Я начал свой исходный комментарий не с того, что такое код, а с того, что детальное непротиворечивое и однозначно понимаемое словесное описание задачи на естественном языке для подавляющего числа реальных/прикладных задач будет превышать по объему код на языках программирования. Просто потому, что ЯП были специально спроектированны для как можно более компактного и строгого описания как раз логики исполнения. Если для вас это не понятно, то как говорят, - "извините, ой".
Во-первых, приведенный вами нейрослоп не является запрошенным мной математическим доказательством (и уж тем более строгим). Во-вторых, приведенное определение алгоритма некорректно, т.к. для записи алгоритма не требуется язык программирования, он может быть записан на естественном языке. В третьих, языки программирования бывают не только императивными, но и декларативными и в них как раз описывается не то как решать, а желаемый результат, так что спецификацию требований к программе я могу рассматривать как разновидность декларативного описания. Ну и в четвертых, отвечать дальше я не буду, т.к. спорить с тролем (да ещё и откровенно подсовывающим ответы ИИ вместо своих мыслей) бесполезно.
В эту игру можно играть вдвоем. Приведите, пожалуйста, полное,математически корректное и непротеворечивое доказательство своего начального утверждения о том, что "Спецификация требований к задаче на leetcode не является кодом".
Знаете в чем прикол такой словесной спецификации? Во-первых, в том, что она длиннее кода на С++, который решает эту задачу. А во-вторых, в том, что она очень четко детализирована и для того чтобы написать такую спецификацию нужно уже очень точно понимать в деталях что тебе нужно. А это и есть настоящая работа программиста, а не на С++ писать.
Я при написании очень даже учитывал, что это спор хозяйствующих субъектов за управление активом (доменом). Просто если выбросить роль сертификата, который (как тут уже правильно написали) мог быть получен не пойми как, то тогда вообще не понятно о чем речь? Что тогда может предоставить ЧП2 в качестве доказательств? Только то, что он пишет с доменной почты? Против платежек и данных паспорта? О чем вообще речь? Домен по факту оплаты и данных паспорта принадлежит первому, а второй, если не согласен, пусть судится и по суду забирает домен себе. Какие он там найдет для суда аргументы - это уже его личное дело. Компанию топикстартера это не должно касаться. Если совсем грубо - то компания не должна в данном споре заменять собой судебную инстанцию, а должна действовать по факту имеющихся у неё юридических соглашений/оферт и договоров. И ещё добавлю, что обсуждаемый вопрос выходит за рамки службы поддержки компании, а относится к компетенциям её юридического департамента. И правильно было бы задать вопрос туда.
С моей личной точки зрения владеть должен тот, кто несет ответственность за содержимое сайта на домене. Таким образом представим, что на домене разместили откровенный криминал и прокуратура подает иск. На кого она его подаст из этих двоих по текущему положению дел? Вот он и должен владеть доменом.
P.S. Из вашего текста, кстати говоря, второй человек представил как раз доказательства того, что доменом владеет именно первый, т.к. сертификат не личную почту первого. Итого у вас оплата первым, акцепт первым, сертификат на первого, паспортные данные на первого. Второй может прислать договор (трудовой или ГПХ) о том, что первый на него работал? Если нет, то какую именно (юридическую) дилему вы видете?
Посчитайте сколько раз нужно переключить раскладку стандартной клавиатуры, чтобы набрать пример на Элементе из второго листинга. Я насчитал минимум 5 раз, максимум 8. Очень удобно :(
Это позволит официально привлекать старших студентов для проверки практических работ у младших курсов.
Добрый день! Работаю в университете и тоже руковожу обучением программистов. Много интересных мыслей, но ко всему подходу один большой вопрос. Подскажите, на каком юридическом основании вы сможете официально привлекать студентов, пусть даже магистрантов, к проверке практических работ? По современным нормативным документам человек без диплома магистра (специалиста) преподавать (ну и, соответственно, проверять какие-либо работы) в высшем образовании не может.
P.S. На младших курсах в дисциплинах формирующих фундаментальные навыки тоже перешли к ручной (устной) проверке работ с просьбами "перепиши при мне руками вот этот вот кусок кода". На старших смотрим уже помягче.
Вы и правы и неправы одновременно. Да, по формальному числу параметров человеческий мозг превосходит то что сделанно, но тут нужно помнить, что человеческий мозг помимо собственно сознания (речь, зрение, логика и прочее) занимается еще огромной кучей дел, связанных с жизнедеятельностью биологического тела. В моделях же ИИ на сегодняшний день все эти функции вынесены наружу. Поддержкой их "жизнедеятельности" занимаются люди. Так что вопрос во сколько раз нужно увеличить модель, чтобы она стала "личностью" неоднозначный и точного ответа скорее всего нет ни у кого.
Если выполнение правил автопилотом приводит к тому, что "люди страдают", то это не об автопилоте, а о том, что с правилами что-то не то и должен быть общественно согласованный договор о том, что их нужно менять.
Это провоцирование опасных обгонов и вероятно смертей на них.
А продажа и ношение ювелирных украшений это "провоцирование нападений с целью кражи и вероятно смертей от них"? Запретим носить ювелирные украшения? А может перестаним оправдывать нарушение общепризнанных правил общественной безопасности вызванные соревновательностью и стадным инстинктом?
Если правила не запрещают ехать 40 км/ч и автопилот считает, что именно такая скорость в данных условиях безопасна, значит мнением остальных водителей автопилот должен пренебречь. Хотят опасно обгонять, - это их дело. И ответственность за безопасность в этом случае должна полностью (включая финансово) лежать на обгоняльщиках.
Функция pop для списка в общем случае имеет линейную временную сложность O(n). Для связных список это время поиска нужного элемента, для реализации на основе массива - время сдвижки правой части.
Так что у вас квадратичный алгоритм, т.к. внутри цикла O(n) у вас операция O(n).
"за блох" - это не жаргон и не диалект. Там же русским по белому написано "анекдот" (довольно известный, кстати). Вот он https://www.anekdot.ru/id/134628/ в эпиграфе. Комментатор выше и сказал, что автор статьи ничего не знает и начиная "за здравие" скатывается к "блохам" (тому, что знает или что надо рекламировать).
Прочитал и хочу сказать, что исходя из объяснений Тинкофф, считаю Роспотребнадзор правым в своей позиции. В тексте статьи прямо приведены вырезки из новой формулировки закона, а именно ...
"Договор розничной купли-продажи считается заключенным с момента выдачи продавцом потребителю кассового или товарного чека либо иного документа, подтверждающего оплату товара...".
Из чего совершенно однозначно следует, что люди оплатившие товар (пусть даже за 1 рубль) и получившие на это электронный чек признаются заключившими договор купли-продажи.
Деньги у них принял Озон и он должен исполнить договор. А уж тонкости его договорных отношений с реальными продавцами никого из покупателей волновать не должны.
Не все так просто.
Дело в том, что Телеграм не является российским юридическим лицом, даже представительства нет (Лондон кажется, не помню точно). Так же как и Digital Ocean не является, так же как и Amazon не является.
Так что требование РКН к хостинговым площадкам можно рассматривать как требование к американским компаниям прекратить оказывать услуги английской компании, потому что это не нравится российскому суду.
Если площадки с этим безусловно согласятся, то начнется хаос, когда любая Зимбабве будет своими судами диктовать кому можно арендовать сервера, а кому нет.
P.S. Надо так же помнить, что на площадках могут хостится сервера (да пусть того же Телеграма), которые обслуживают не только Россию, но и другие страны.
Могу вызвать волну критики своим ответом, но в действиях Гугла есть определенная, хоть и странная для программиста логика.
Дело в том, что чем выше человек продвигается по карьерной лестнице, тем меньше он должен программировать и тем больше он должен уметь «продавать» свой продукт. Видимо, они решили начинать такой отбор с самых низов. Что называется, умей продать себя (это очень по американски). Фактически, описанная система рассматривает каждое повышение не как повышение в привычном виде, а как новый наем на работу с резюме и собеседованием.
Умение же выбирать «правильный» проект (который не закроют и т.д.) соответствует умению предвидеть «рынок» и правильно «инвестировать» свои ресурсы (опять же незаменимый с точки зрения бизнеса навык). Не могу знать, но почти уверен, что он мог попросить о внутреннем переводе на другой проект/направление, которые были бы более стабильны.
Так что как это не прискорбно звучит, но тот кто хорошо программирует — тот программирует. А если ты хочешь «карьеру» будь добр учиться другим навыкам, и «умение крутиться» в условиях постоянно меняющего рынка (проектов) один из них.
Хорошо бы увидеть исходный код тестовых программ (иногда, особенности применения операторов могут кратно менять скорость работы), а также используемые режимы компиляции. Без исходного кода можно только «на слово» верить циферкам в статье. Т.е. лучше не верить.
P.S. Вы сами признаетесь, что являетесь профессионалом в Java. Написание кода на языках, которые вы знаете не так хорошо, может содержать неэффективные решения. Особенно меня настораживает проигрыш в 1.5-2 раза кода на С++.
Я не могу сейчас найти источник, но я где-то читал, что именно лингвистическое ядро у современных топовых моделей мощнее того, которое в человеческом мозге. И вот тут, как мне кажется, у всех рассуждающих кроется основная ошибка. Любая заведомо более мощная система всегда сможет съэмитировать более простую. Другими словами, я могу дать мощной ИИ свои тексты и попросить её писать так же (я уже пробовал). Могу попросить вставлять неожиданные слова синонимы по тексту, могу попросить писать "неровным" ритмом. А могу попросить делать мелкие ошибки и опечатки, свойственные среднесатистическому человеку. И топовые модели всё это исполнят, просто потому что они мощнее в лингвистике.
Единственным выходом я вижу открытие самими ИИ-компаниями некоторых API, которые бы смогли по запросу сказать, писался ли когда-то некоторый большой кусок текста их моделями или нет. Но и тут есть проблема - открытые модели.
Лично мне кажется, что в конце концов все сдадутся и перестанут обращать внимание на то кем писался текст, а будут работать со смыслом текста. Никто же сейчас не интересуется считалась ли какая-нибудь сложная формула человеком-компьютером (https://habr.com/en/companies/gazprombank/articles/791536/) или современным электронным компьютером.
<удалено>
У теоремы Ферма вообще нет реализации в смысле программного кода (проверка программой - это не реализация теоремы), поэтому, если честно, мне не понятно, что с чем вы сравниваете и о какой реализации говорите.
Какой из реализаций? На основании написанной вами спецификации можно сделать уйму различных реализаций. Можно с упором на экономию памяти, можно с упором на скорость, можно с упором на быстродействие операции поиска, а можно с упором на скорость вставки новых элементов. Можно оптимизировать для ключей чисел, а можно для хранения строк в виде значений. А ещё можно сделать хранений с сортировкой, ну и всё такое. И это всё будут разные и корректные реализации для приведенной вами спецификации.
И вот если вы начнёте все какие только возможно тонкости вписывать в спецификацию, то в конце концов получите, фактически, код. Ну или изобрете ещё один язык программирования на основе спецификации с деталями.
Тут где-то ниже был хороший пример про сайт и цвет эмблемы фирмы. Тут та же история. Вы либо:
согласитесь с реализацией ИИ, в которой она домыслит от себя все эти тонкости;
будете писать код сами с учетом ваших тонкостей;
будете править её код под свои нужды;
раздувать вашу спецификацию.
Короче получится только в первом случае.
P.S. Короче говоря, спецификация по которой можно сделать несколько существенно различных реализаций - неполна. И именно поэтому она короче чем код. В противном случае - это и есть код.
Как это не может исполняться машиной? Подождите, подождите. Всё обсуждение началось с того, что теперь, по мнению автора статьи, код на классических языках программирования (ЯП) будет писаться ИИ. ИИ исполняется кем? Машиной? Значит теперь путь такой: "Детальное описание задачи" => "код на ЯП" => "Исполнение кода" (которое уже умеют делать агентские системы). Значит машина берет описание задачи и, в конечном счете, его исполняет, а значит описание задачи - код!
То, что теперь у нас появился промежуточный шаг в виде перевода словесного описания в ЯП с помощью ИИ не играет роли, также как ранее не играло роли появление компиляторов с языков программирования высокого уровня в машинный код. Суть остается той же. Берем какой-то текст, преобразовываем, исполняем.
Я начал свой исходный комментарий не с того, что такое код, а с того, что детальное непротиворечивое и однозначно понимаемое словесное описание задачи на естественном языке для подавляющего числа реальных/прикладных задач будет превышать по объему код на языках программирования. Просто потому, что ЯП были специально спроектированны для как можно более компактного и строгого описания как раз логики исполнения. Если для вас это не понятно, то как говорят, - "извините, ой".
Во-первых, приведенный вами нейрослоп не является запрошенным мной математическим доказательством (и уж тем более строгим). Во-вторых, приведенное определение алгоритма некорректно, т.к. для записи алгоритма не требуется язык программирования, он может быть записан на естественном языке. В третьих, языки программирования бывают не только императивными, но и декларативными и в них как раз описывается не то как решать, а желаемый результат, так что спецификацию требований к программе я могу рассматривать как разновидность декларативного описания. Ну и в четвертых, отвечать дальше я не буду, т.к. спорить с тролем (да ещё и откровенно подсовывающим ответы ИИ вместо своих мыслей) бесполезно.
В эту игру можно играть вдвоем. Приведите, пожалуйста, полное,математически корректное и непротеворечивое доказательство своего начального утверждения о том, что "Спецификация требований к задаче на leetcode не является кодом".
Знаете в чем прикол такой словесной спецификации? Во-первых, в том, что она длиннее кода на С++, который решает эту задачу. А во-вторых, в том, что она очень четко детализирована и для того чтобы написать такую спецификацию нужно уже очень точно понимать в деталях что тебе нужно. А это и есть настоящая работа программиста, а не на С++ писать.
Я при написании очень даже учитывал, что это спор хозяйствующих субъектов за управление активом (доменом). Просто если выбросить роль сертификата, который (как тут уже правильно написали) мог быть получен не пойми как, то тогда вообще не понятно о чем речь? Что тогда может предоставить ЧП2 в качестве доказательств? Только то, что он пишет с доменной почты? Против платежек и данных паспорта? О чем вообще речь? Домен по факту оплаты и данных паспорта принадлежит первому, а второй, если не согласен, пусть судится и по суду забирает домен себе. Какие он там найдет для суда аргументы - это уже его личное дело. Компанию топикстартера это не должно касаться. Если совсем грубо - то компания не должна в данном споре заменять собой судебную инстанцию, а должна действовать по факту имеющихся у неё юридических соглашений/оферт и договоров.
И ещё добавлю, что обсуждаемый вопрос выходит за рамки службы поддержки компании, а относится к компетенциям её юридического департамента. И правильно было бы задать вопрос туда.
С моей личной точки зрения владеть должен тот, кто несет ответственность за содержимое сайта на домене. Таким образом представим, что на домене разместили откровенный криминал и прокуратура подает иск. На кого она его подаст из этих двоих по текущему положению дел? Вот он и должен владеть доменом.
P.S. Из вашего текста, кстати говоря, второй человек представил как раз доказательства того, что доменом владеет именно первый, т.к. сертификат не личную почту первого. Итого у вас оплата первым, акцепт первым, сертификат на первого, паспортные данные на первого. Второй может прислать договор (трудовой или ГПХ) о том, что первый на него работал? Если нет, то какую именно (юридическую) дилему вы видете?
Посчитайте сколько раз нужно переключить раскладку стандартной клавиатуры, чтобы набрать пример на Элементе из второго листинга. Я насчитал минимум 5 раз, максимум 8. Очень удобно :(
Добрый день! Работаю в университете и тоже руковожу обучением программистов. Много интересных мыслей, но ко всему подходу один большой вопрос. Подскажите, на каком юридическом основании вы сможете официально привлекать студентов, пусть даже магистрантов, к проверке практических работ? По современным нормативным документам человек без диплома магистра (специалиста) преподавать (ну и, соответственно, проверять какие-либо работы) в высшем образовании не может.
P.S. На младших курсах в дисциплинах формирующих фундаментальные навыки тоже перешли к ручной (устной) проверке работ с просьбами "перепиши при мне руками вот этот вот кусок кода". На старших смотрим уже помягче.
Вы и правы и неправы одновременно. Да, по формальному числу параметров человеческий мозг превосходит то что сделанно, но тут нужно помнить, что человеческий мозг помимо собственно сознания (речь, зрение, логика и прочее) занимается еще огромной кучей дел, связанных с жизнедеятельностью биологического тела. В моделях же ИИ на сегодняшний день все эти функции вынесены наружу. Поддержкой их "жизнедеятельности" занимаются люди. Так что вопрос во сколько раз нужно увеличить модель, чтобы она стала "личностью" неоднозначный и точного ответа скорее всего нет ни у кого.
Если выполнение правил автопилотом приводит к тому, что "люди страдают", то это не об автопилоте, а о том, что с правилами что-то не то и должен быть общественно согласованный договор о том, что их нужно менять.
А продажа и ношение ювелирных украшений это "провоцирование нападений с целью кражи и вероятно смертей от них"? Запретим носить ювелирные украшения? А может перестаним оправдывать нарушение общепризнанных правил общественной безопасности вызванные соревновательностью и стадным инстинктом?
Если правила не запрещают ехать 40 км/ч и автопилот считает, что именно такая скорость в данных условиях безопасна, значит мнением остальных водителей автопилот должен пренебречь. Хотят опасно обгонять, - это их дело. И ответственность за безопасность в этом случае должна полностью (включая финансово) лежать на обгоняльщиках.
Функция pop для списка в общем случае имеет линейную временную сложность O(n). Для связных список это время поиска нужного элемента, для реализации на основе массива - время сдвижки правой части.
Так что у вас квадратичный алгоритм, т.к. внутри цикла O(n) у вас операция O(n).
"за блох" - это не жаргон и не диалект. Там же русским по белому написано "анекдот" (довольно известный, кстати). Вот он https://www.anekdot.ru/id/134628/ в эпиграфе. Комментатор выше и сказал, что автор статьи ничего не знает и начиная "за здравие" скатывается к "блохам" (тому, что знает или что надо рекламировать).
Прочитал и хочу сказать, что исходя из объяснений Тинкофф, считаю Роспотребнадзор правым в своей позиции. В тексте статьи прямо приведены вырезки из новой формулировки закона, а именно ...
Из чего совершенно однозначно следует, что люди оплатившие товар (пусть даже за 1 рубль) и получившие на это электронный чек признаются заключившими договор купли-продажи.
Деньги у них принял Озон и он должен исполнить договор. А уж тонкости его договорных отношений с реальными продавцами никого из покупателей волновать не должны.
Дело в том, что Телеграм не является российским юридическим лицом, даже представительства нет (Лондон кажется, не помню точно). Так же как и Digital Ocean не является, так же как и Amazon не является.
Так что требование РКН к хостинговым площадкам можно рассматривать как требование к американским компаниям прекратить оказывать услуги английской компании, потому что это не нравится российскому суду.
Если площадки с этим безусловно согласятся, то начнется хаос, когда любая Зимбабве будет своими судами диктовать кому можно арендовать сервера, а кому нет.
P.S. Надо так же помнить, что на площадках могут хостится сервера (да пусть того же Телеграма), которые обслуживают не только Россию, но и другие страны.
Дело в том, что чем выше человек продвигается по карьерной лестнице, тем меньше он должен программировать и тем больше он должен уметь «продавать» свой продукт. Видимо, они решили начинать такой отбор с самых низов. Что называется, умей продать себя (это очень по американски). Фактически, описанная система рассматривает каждое повышение не как повышение в привычном виде, а как новый наем на работу с резюме и собеседованием.
Умение же выбирать «правильный» проект (который не закроют и т.д.) соответствует умению предвидеть «рынок» и правильно «инвестировать» свои ресурсы (опять же незаменимый с точки зрения бизнеса навык). Не могу знать, но почти уверен, что он мог попросить о внутреннем переводе на другой проект/направление, которые были бы более стабильны.
Так что как это не прискорбно звучит, но тот кто хорошо программирует — тот программирует. А если ты хочешь «карьеру» будь добр учиться другим навыкам, и «умение крутиться» в условиях постоянно меняющего рынка (проектов) один из них.
P.S. Вы сами признаетесь, что являетесь профессионалом в Java. Написание кода на языках, которые вы знаете не так хорошо, может содержать неэффективные решения. Особенно меня настораживает проигрыш в 1.5-2 раза кода на С++.