А что, было бы лучше проходить опросник по основам языка? Типа: чем отличается lvalue от rvalue, как делается наследование, в каком порядке идут аргументы у std::set::lower_bound, дайте определение UB?
Почему опросник?
Чем будет потенциальный сотрудник заниматься, о том и спрашивать. Скорее всего, прежде чем что-то написать, он будет читать много чужого кода и понимать, что там написано, а затем органично встраивать или добавлять туда свой код.
Соответственно, одним из вариантов будет дать на собеседовании примеры кода, чтобы он объяснил, что и как в них происходит, и почему, ведь именно этим он и будет заниматься, читая чужой код перед добавлением своего.
Вот, например, неплохой тест, где как раз имеются примеры кода на понимание языка, правда, этот тест явно не на Junior'а, вопреки названию (обещают, что тест проживёт только до конца недели).
На реальном же собеседовании можно спросить по каждому фрагменту кода, как собеседующийся пришёл к тому или иному выводу, попросить объяснить, что происходит в коде, и почему так, а не этак. Это даст значительно больше информации о его уровне владения языком, чем просто тест.
Также можно дать фрагменты кода на review, типа того же самого, что уже обсуждалось, чтобы далеко не ходить:
for(int i = 0; i < v.size(); i++)
чтобы собеседующийся обнаружил проблемы и объяснил их, что также даст много информации о его уровне владения языком.
Тут же есть повод спросить, каким может быть тип выражения v.size(), и чем он может определяться (это уже для более высокого уровня владения, и если это вообще может быть нужно по работе).
Обо всяких вещах, типа UB, он сам расскажет по ходу дела, если в курсе, что это, и понимает, где и как это может быть, и можно будет позадавать дополнительные вопросы.
О вещах, типа lvalue и rvalue тоже — либо сам расскажет, либо они "подвернутся под руку" при обсуждении какого-либо фрагмента кода, и тогда уже сам собеседующий опять может позадавать дополнительные вопросы, но не про коня в вакууме, а на примере конкретного фрагмента кода.
По наследованию тоже можно фрагмент дать и побеседовать предметно.
А вот в каком порядке идут аргументы у не слишком часто использующейся функции, информация — справочная, особого смысла тратить на это время нет.
Тогда это будет собеседование по C++, а не по умению решать алгоритмические задачи, причём, собеседование, максимально приближенное к тому, чем человеку придётся заниматься.
Такие опросники часто используют ленивые, далекие от темы HR-ы, которые только и могут, что сравнить варианты ответов. От этого плюются еще больше.
Да мало ли кто что использует.
Цель-то — в чём? Сотрудника нанять или формально по какому-то опроснику пройти?
А тут кандидату придется написать какой-то осмысленный код на 5-10 строчек.
Кандидату придётся лихорадочно искать решение алгоритмической задачи и достаточно бездумно реализовывать на языке, потому что некогда думать про грамотное использование языка, уложиться бы по времени, чтобы алгоритмическое решение заработало хотя бы как-нибудь.
В реальности, если собеседующийся станет сотрудником, он никогда не будет этого делать в таком виде.
for(int i = 0; i < v.size(); i++) // тут плохо сравнение signed и unsigned (со всеми вытекающими)
Тут плохо, в первую очередь, потенциальное UB от возможного переполнения int. А также, даже если заменить int на unsigned, от возможного бесконечного цикла на распространённых 64-битных системах, потому что size_type для вектора обычно совпадает с std::size_t, который там длиннее unsigned.
some_params++; // нет смысла использовать постфиксный инкремент в этой ситуации
Равно как и префиксный.
Попробуйте обнаружить компилятор, применяемый в работе, который при включённой оптимизации компилирует префиксный инкремент для int эффективнее, чем постфиксный. Но что-то мне подсказывает, что вы затруднитесь обнаружить такой компилятор.
Предварительные секции помогают проверить общие знания кандидата по С++
Это собеседование — не по C++, а по решению алгоритмических задач. А C++ просто используется как язык реализации, то есть, он второстепенен на этом собеседовании, причём собеседующий легко может не заметить UB в коде.
Подойдёт слово "отрывки" - ничего придумать не надо.
"Отрывки" слишком созвучно "обрывкам", хотя и весьма неплохой вариант.
А для русского тик-тока "коротыши"
Коротыш — это короткое замыкание, электрики используют.
Здесь лучше воспользоваться соответствующим инструментом. Вариант "фрагменты" кажется наиболее подходящим. "Моменты" тоже неплохи, в зависимости от оттенка смысла, который вкладывается в рубрику.
Не скромничайте, считайте не за байт, а за бит. И не $1, а $1000.
Говорят, жадность приводит к бедности.
Почему нет?
Один клерк из ФРС уже предложил $50 000, за что сразу же был справедливо квалифицирован как клинический идиот.
Если исходить из того, что предлагаете вы, то сумма будет не только несоизмерима с внешним долгом Америки, но и несоизмерима с мировым ВВП, даже если его взять за 1000 лет.
Ваша мысль, действительно, предельно проста: протирание штанов в ВУЗе, опыт отмазок и выклянчивания зачетов, навык умасливания начальства — для вас приоритетнее высокой самомотивированности и самообучаемости.
Можно привести лошадь на водопой, но нельзя заставить её пить.
Если вы готовы видеть только то, что защищает вашу точку зрения, лишь бы "остаться правым", хотя это — лишь иллюзия правоты, игнорируя остальное, то какой смысл мне биться о стену?
Дичайший случай, когда 22 года опыта и 17 языков родили самоучку, не понимающего элементарных вещей, которые у нормального специалиста идут уже на уровне интуиции, вы вообще в упор не видите. Тот факт, что самомотивированность и самообучаемость может привести и к таким результатам, игнорируете.
Мысль о том, что ВО в разных местах — разное, игнорируете.
Зачем тогда мне вам что-то говорить, если вы игнорируете всё, неудобное вам?
Верунство и демагогия всегда идут рука об руку)
Вот именно.
Вам нравится верить в свой однобокий взгляд для создания иллюзии своей правоты, и вы даже готовы ради этого на демагогию.
Если вы до сих пор не в курсе, моя мысль была предельно простой — требование ВО уменьшает вероятность встретиться с кандидатом, у которого 22 года опыта и 17 языков, но до уровня джуна такой кандидат, тем не менее, не дотягивает.
Наряду с, возможно, "никаким" ВО есть и как минимум "какое-никакое", а также есть "более или менее".
Вы уже какой раз и так и этак пытаетесь оспорить очевидное. Получается отвратительно.
То есть, с ваших слов, если сказать одно (Хоть какая-то гарантия от таких случаев) — а потом заявить прямо противоположное (Здесь не так важно, кто там чего гарантирует) не выходя из контекста, то противоречия нет? )
Дело в том, что мы не на ифкуиле общаемся.
"Хоть какая-то гарантия от таких случаев" означает, что вероятность столкновения с такими случаями уменьшится, а не значит, что существует реальная гарантия, в обычном понимании этого слова, то есть, ни один такой случай произойти не может.
Добавка в начале "хоть какая-то" ни о чём вам не говорит?
Да, потому что для опровержения достаточно одного контрпримера — который и был приведен.
Была сказана сомнительная фраза про РАЕН с невосстановимым контекстом, который, чтобы его восстановить, нужно отдельно запрашивать у автора, что он имел ввиду. Однако, поскольку она не имела отношения к основной моей мысли, то — зачем?
Поскольку ваша фраза — о другом, и больше напоминает какую-то формальную зацепку за слова, то ни о каком опровержении не может быть и речи.
Пока ваше говорение ничем не подкреплено — это просто wishful thinking. Выдача желаемого за действительное. В такой высокодинамичной области как IT знания устаревают до попадания в учебную программу, к выпуску они успевают устареть еще раз.
Совершенно неважно, насколько там всё устарело.
Степень непонимания элементарных вещей у человека настолько высока, что, для того, чтобы смочь пройти даже устаревшую программу, необходимо научиться эти элементарные вещи понимать.
Я — об этом, а не о каких-то там реальных гарантиях.
Снова без подкрепления.
Ну, если вам не очевидно, что для того, чтобы смочь пройти даже устаревшую программу, придётся научиться понимать элементарные вещи, то можете считать, что без подкрепления.
Только кто же вам поверит?
Нет, снова выдача желаемого за действительное, потому что раньше выдавалось желаемое за действительное. Не прокатило, вычеркивайте.
Давайте без невосстановимых контекстов, когда невозможно однозначно догадаться, что вы имеете ввиду.
Вот. И где у вас аргументация?
Если человек не желает её видеть, то кто же его заставит?
Нет, это неверно. Мне было надо, я хотел извлечь текст. Для этого прогнал PDF-файл утилитой pdf2txt, которая никаким OCR'ом не занимается, и получил текст.
Также посмотрел viewer'ом в Midnight Commander'е, и тоже получил текст.
Это синтетический пример, созданный для подтверждения своего тезиса.
Однако, этот пример, несомненно, имеет одно важное свойство: он доказывает, что через OCR закрытый картинкой фрагмент текста извлечь невозможно, но ChatGPT его извлёк, из чего однозначно следует, что в данном конкретном случае ChatGPT извлёк текст НЕ через OCR.
В реальности же, в PDF с текстом не всегда есть "текстовый слой", а если и есть - он не всегда может быть корректно извлечён непосредственно из кода файла.
В данном конкретном случае для предоставленного PDF-файла "текстовый слой" однозначно присутствует и корректно извлекается.
Вы забыли понять, что там имеется ввиду под результатом.
Конкретное начертание символов там к результату не имеет никакого отношения. Цель в статье сформулирована в первом же значащем её предложении:
В этой статье я расскажу о том, как можно увеличить размер запроса к ChatGPT до почти полутора миллионов символов!
К начертанию символов это не имеет отношения.
то текст из PDF надо извлекать именно через OCR.
Кому надо?
Потому что PDF это формат для ОДНОЗНАЧНОГО ПОКАЗЫВАНИЯ, а не для ХРАНЕНИЯ С ВОЗМОЖНОСТЬЮ ОДНОЗНАЧНОГО ПЕРЕКОДИРОВАНИЯ.
Цель, которая, по утверждению автора, достигается описываемыми в статье действиями, состоит в увеличении размера запроса к ChatGPT до почти полутора миллионов символов. Автор пытается достичь этого путём прикрепления к запросу pdf-файла. Но конкретное начертание символов в этом случае не имеет никакого значения.
Дело в том, что в реальности ChatGPT извлекает из PDF-файла текст, а не распознаёт его, как если бы PDF-файл сначала был отображён в виде картинки, что и было убедительно продемонстрировано комментаторами. Один из комментаторов специально модифицировал PDF-файл таким образом, чтобы часть текста была закрыта добавленной в PDF-файл картинкой, скормил этот PDF-файл ChatGPT, и последний успешно "распознал" фрагмент текста, полностью закрытый картинкой. Это однозначно доказывает, что ChatGPT наплевал на ваше "PDF это формат для ОДНОЗНАЧНОГО ПОКАЗЫВАНИЯ" и, на самом деле, не распознал отображённый текст, а достал его оттуда прямым образом.
Элиты.
Поживём — увидим.
Хорошо смеётся тот, кто смеётся последним.
Радиации — все равно, верит в неё кто-то или нет.
И она, в любом случае, сильнее любой веры или неверия.
Однако, нет гарантий, что происходящее в прошлом также неизменно будет повторяться и в будущем.
Сейчас мир серьёзно меняется, что является предпосылкой к тому, что на этот раз всё может быть не так, как раньше.
Поэтому, в отличие от вас, я бы не был столь категоричен по вопросу, ограничится ли всё первым шагом.
Кто все?
Когда летят?
И что, проблема защиты от радиации в дальнем космосе уже решена?
Путь в тысячу вёрст начинается с первого шага.
У вас пока нет доказательств, что первым шагом всё и ограничится.
С одной стороны, вы утверждаете:
С другой, делаете вывод:
Не чувствуете противоречия?
Тип
long long int
станет 128-битным задолго до истечения 292 миллиардов лет.Про'upgrade'ят
time_t
ещё раз.Почему опросник?
Чем будет потенциальный сотрудник заниматься, о том и спрашивать.
Скорее всего, прежде чем что-то написать, он будет читать много чужого кода и понимать, что там написано, а затем органично встраивать или добавлять туда свой код.
Соответственно, одним из вариантов будет дать на собеседовании примеры кода, чтобы он объяснил, что и как в них происходит, и почему, ведь именно этим он и будет заниматься, читая чужой код перед добавлением своего.
Вот, например, неплохой тест, где как раз имеются примеры кода на понимание языка, правда, этот тест явно не на Junior'а, вопреки названию (обещают, что тест проживёт только до конца недели).
На реальном же собеседовании можно спросить по каждому фрагменту кода, как собеседующийся пришёл к тому или иному выводу, попросить объяснить, что происходит в коде, и почему так, а не этак. Это даст значительно больше информации о его уровне владения языком, чем просто тест.
Также можно дать фрагменты кода на review, типа того же самого, что уже обсуждалось, чтобы далеко не ходить:
чтобы собеседующийся обнаружил проблемы и объяснил их, что также даст много информации о его уровне владения языком.
Тут же есть повод спросить, каким может быть тип выражения
v.size()
, и чем он может определяться (это уже для более высокого уровня владения, и если это вообще может быть нужно по работе).Обо всяких вещах, типа UB, он сам расскажет по ходу дела, если в курсе, что это, и понимает, где и как это может быть, и можно будет позадавать дополнительные вопросы.
О вещах, типа lvalue и rvalue тоже — либо сам расскажет, либо они "подвернутся под руку" при обсуждении какого-либо фрагмента кода, и тогда уже сам собеседующий опять может позадавать дополнительные вопросы, но не про коня в вакууме, а на примере конкретного фрагмента кода.
По наследованию тоже можно фрагмент дать и побеседовать предметно.
А вот в каком порядке идут аргументы у не слишком часто использующейся функции, информация — справочная, особого смысла тратить на это время нет.
Тогда это будет собеседование по C++, а не по умению решать алгоритмические задачи, причём, собеседование, максимально приближенное к тому, чем человеку придётся заниматься.
Да мало ли кто что использует.
Цель-то — в чём?
Сотрудника нанять или формально по какому-то опроснику пройти?
Кандидату придётся лихорадочно искать решение алгоритмической задачи и достаточно бездумно реализовывать на языке, потому что некогда думать про грамотное использование языка, уложиться бы по времени, чтобы алгоритмическое решение заработало хотя бы как-нибудь.
В реальности, если собеседующийся станет сотрудником, он никогда не будет этого делать в таком виде.
Тут плохо, в первую очередь, потенциальное UB от возможного переполнения
int
.А также, даже если заменить
int
наunsigned
, от возможного бесконечного цикла на распространённых 64-битных системах, потому чтоsize_type
для вектора обычно совпадает сstd::size_t
, который там длиннееunsigned
.Равно как и префиксный.
Попробуйте обнаружить компилятор, применяемый в работе, который при включённой оптимизации компилирует префиксный инкремент для
int
эффективнее, чем постфиксный.Но что-то мне подсказывает, что вы затруднитесь обнаружить такой компилятор.
Это собеседование — не по C++, а по решению алгоритмических задач.
А C++ просто используется как язык реализации, то есть, он второстепенен на этом собеседовании, причём собеседующий легко может не заметить UB в коде.
"Отрывки" слишком созвучно "обрывкам", хотя и весьма неплохой вариант.
Коротыш — это короткое замыкание, электрики используют.
Здесь лучше воспользоваться соответствующим инструментом.
Вариант "фрагменты" кажется наиболее подходящим.
"Моменты" тоже неплохи, в зависимости от оттенка смысла, который вкладывается в рубрику.
Но, возможно, можно найти ещё лучше.
Говорят, жадность приводит к бедности.
Один клерк из ФРС уже предложил $50 000, за что сразу же был справедливо квалифицирован как клинический идиот.
Если исходить из того, что предлагаете вы, то сумма будет не только несоизмерима с внешним долгом Америки, но и несоизмерима с мировым ВВП, даже если его взять за 1000 лет.
Вот, почему.
Выглядит разумной сумма из расчёта $1 за байт, то есть, $33 триллиона.
Опять же, она соизмерима с внешним долгом США.
Можно привести лошадь на водопой, но нельзя заставить её пить.
Если вы готовы видеть только то, что защищает вашу точку зрения, лишь бы "остаться правым", хотя это — лишь иллюзия правоты, игнорируя остальное, то какой смысл мне биться о стену?
Дичайший случай, когда 22 года опыта и 17 языков родили самоучку, не понимающего элементарных вещей, которые у нормального специалиста идут уже на уровне интуиции, вы вообще в упор не видите.
Тот факт, что самомотивированность и самообучаемость может привести и к таким результатам, игнорируете.
Мысль о том, что ВО в разных местах — разное, игнорируете.
Зачем тогда мне вам что-то говорить, если вы игнорируете всё, неудобное вам?
Вот именно.
Вам нравится верить в свой однобокий взгляд для создания иллюзии своей правоты, и вы даже готовы ради этого на демагогию.
Но мне ваши верования не интересны.
Если вы до сих пор не в курсе, моя мысль была предельно простой — требование ВО уменьшает вероятность встретиться с кандидатом, у которого 22 года опыта и 17 языков, но до уровня джуна такой кандидат, тем не менее, не дотягивает.
Наряду с, возможно, "никаким" ВО есть и как минимум "какое-никакое", а также есть "более или менее".
Вы уже какой раз и так и этак пытаетесь оспорить очевидное.
Получается отвратительно.
А в OTUS звали?
Но речь-то — о конкретном случае.
Человек выложил конкретный файл.
И сделал конкретные утверждения для этого конкретного файла.
Дело в том, что мы не на ифкуиле общаемся.
"Хоть какая-то гарантия от таких случаев" означает, что вероятность столкновения с такими случаями уменьшится, а не значит, что существует реальная гарантия, в обычном понимании этого слова, то есть, ни один такой случай произойти не может.
Добавка в начале "хоть какая-то" ни о чём вам не говорит?
Была сказана сомнительная фраза про РАЕН с невосстановимым контекстом, который, чтобы его восстановить, нужно отдельно запрашивать у автора, что он имел ввиду.
Однако, поскольку она не имела отношения к основной моей мысли, то — зачем?
Поскольку ваша фраза — о другом, и больше напоминает какую-то формальную зацепку за слова, то ни о каком опровержении не может быть и речи.
Совершенно неважно, насколько там всё устарело.
Степень непонимания элементарных вещей у человека настолько высока, что, для того, чтобы смочь пройти даже устаревшую программу, необходимо научиться эти элементарные вещи понимать.
Я — об этом, а не о каких-то там реальных гарантиях.
Ну, если вам не очевидно, что для того, чтобы смочь пройти даже устаревшую программу, придётся научиться понимать элементарные вещи, то можете считать, что без подкрепления.
Только кто же вам поверит?
Давайте без невосстановимых контекстов, когда невозможно однозначно догадаться, что вы имеете ввиду.
Если человек не желает её видеть, то кто же его заставит?
Нет, это неверно.
Мне было надо, я хотел извлечь текст.
Для этого прогнал PDF-файл утилитой pdf2txt, которая никаким OCR'ом не занимается, и получил текст.
Также посмотрел viewer'ом в Midnight Commander'е, и тоже получил текст.
Однако, этот пример, несомненно, имеет одно важное свойство: он доказывает, что через OCR закрытый картинкой фрагмент текста извлечь невозможно, но ChatGPT его извлёк, из чего однозначно следует, что в данном конкретном случае ChatGPT извлёк текст НЕ через OCR.
В данном конкретном случае для предоставленного PDF-файла "текстовый слой" однозначно присутствует и корректно извлекается.
Вы забыли понять, что там имеется ввиду под результатом.
Конкретное начертание символов там к результату не имеет никакого отношения.
Цель в статье сформулирована в первом же значащем её предложении:
К начертанию символов это не имеет отношения.
Кому надо?
Цель, которая, по утверждению автора, достигается описываемыми в статье действиями, состоит в увеличении размера запроса к ChatGPT до почти полутора миллионов символов.
Автор пытается достичь этого путём прикрепления к запросу pdf-файла.
Но конкретное начертание символов в этом случае не имеет никакого значения.
Дело в том, что в реальности ChatGPT извлекает из PDF-файла текст, а не распознаёт его, как если бы PDF-файл сначала был отображён в виде картинки, что и было убедительно продемонстрировано комментаторами.
Один из комментаторов специально модифицировал PDF-файл таким образом, чтобы часть текста была закрыта добавленной в PDF-файл картинкой, скормил этот PDF-файл ChatGPT, и последний успешно "распознал" фрагмент текста, полностью закрытый картинкой.
Это однозначно доказывает, что ChatGPT наплевал на ваше "PDF это формат для ОДНОЗНАЧНОГО ПОКАЗЫВАНИЯ" и, на самом деле, не распознал отображённый текст, а достал его оттуда прямым образом.