Комментарии 167
Интересно, а как они защитились от ИИ ?
Да никак, просто не дают копировать текст и переходить на другие вкладки этого же браузера.
и переходить на другие вкладки этого же браузера
то есть второе окно можно?
А Xnest ? ;-)
Там такие элементарные вопросы, что как-то даже совестно читерить.
Если там смена вкладки проверяется через Page Visibility API (как делает Youtube в мобильных браузерах, чтобы не слушали с выключенным экраном), то достаточно установить расширение браузера, которое на запросы этого API будет отвечать "я такого не умею".
Ну а букмарклетом разрешить запрещённое копирование, это вообще задача для детского сада.
А то какие-то сложности предлагают в виде скриншотов и OCR...
Разве сервер не может аннулировать результаты, если ответы на API приходят с кодом "я такого не умею"?
А вдруг браузер и правда не умеет.
Но можно сделать и хитрее: спуфить свойства Document.hidden
иDocument.visibilityState
, а также блокировать событие visibilitychange
.
Для браузерного расширения это раз плюнуть.
если вы можете это все сделать, то вы уже достойны сертификата)). Возможно конечно не по той теме, но это и не очень важно.
А если вы это способны сделать строго по чужой инструкции или просто скачав готовое расширение браузера? Вон @dartraiden уже его практически сделал )
Нет, любая потеря фокуса страницы ведет к незачету теста.
Ну это прям неинтересно - такую защиту обойти. Продвинутый школьник, и то справится.
Два монитора, в одном виртуалка с открытым сайтом Госуслуг, во втором приблуда с доступом в ChatGPT. На хосте периодически (раз в 10 сек) скриншотим экран виртуалки автоматом, распознаем скриптами текст на скриншоте и загоняем его в ChatGPT, оттуда же получаем готовые ответы. Дальше, глядя на второй экран, ручками вбиваем результат в первый.
Можно и без этого, но потребуется второй человек с ноутом.
Цена такому сертификату сейчас будет очень маленькая, увы. AI изменил мир. А лет 5 назад смотрелось бы вполне прилично.
Можно с телефона делать фото и загружать в ГПТ.
Проходил тест по sql так там код в одну строчку и в контейнер помещается только половина. Такое не сфотографировать. Вообще мне показалось на продвинутый sql мало времени дается.
Распилил скриншот вашего комментарий вертикально на две половинки и скормил ChatGPT. Не с первого раза, но всё-таки справился.
Скрытый текст
увы, тоже не хватило времени на практические вопросы
Цена такому сертификату сейчас будет очень маленькая
Не переживайте, дальше сделают услугу платной за нормальные деньги. А без сертификата запретят работать, как поварам без санитарной книжки.
Сертификат машинистки, получается?
А зачем? Кто тогда будет вопросы составлять как не ИИ
Сейчас можно пройти тесты ➖ по 5 языкам программирования: Python, Java, SQL, C#, PHP➖ и 12 теоретическим направлениям: HTML, ООП, PostgreSQL, «Функциональное тестирование», «Регресионное тестирование», Git, API, CSS, Docker, «Алгоритмы и структуры данных», JavaScript, Linux.
Что-то знак тире странно жирный) мне похожий странный тире гпт часто вставляет в генерацию.
А в целом:
языкам программирования: SQL
теоретическим направлениям: PostgreSQL, JavaScript
В общем суть: защита от ИИ в следующем обновлении)
Это не важно. Оно не работает. Сдал тест по sql , результат 0 из 10. Но это невозможно т.к. вопосы простые а опыт более 15 лет... не работает да еще и опасно если будут опубликованы такие результаты.
Ладно госуслуги. У меня был опыт, в учебном заведени, тест базовый SQL (простые селекты с фильтром). Но на каждый вопрос дается по минуте. И больше половины вопросов такие что ты только одну минуту читаешь 5 селектов (5 вариантов ответа) и на стрессе нехватки времени ошибаешься.. Тут не проверка знаний а проверка тестов.
Вот плохо давать ссылку на википедию, ещё и на российскую, ещё и не понимая темы.
Есть класс компьютерных языков. Он делится на подклассы. И вот собственно там есть деления, на языки программирования, запросов, разметки и так далее.
Как понятно из названия SQL, это именно язык запросов, а не программирования.
Так что оратор выше прав, а уровень computer science в стране достаточно низкий.
Есть разные классификации. И SQL таки часто называют декларативным языком программирования. Оно, конечно, выглядит странно, но если учесть, что на нем пишутся функции, то вполне можно считать по крайней мере некоторые его диалекты языками программирования
Вот плохо давать ссылку на википедию, ещё и на российскую,
В английской, внезапно, то же самое.
Как понятно из названия SQL, это именно язык запросов, а не программирования.
Фортран. как понятно из названия, это не ЯП, а транслятор формул
Так что оратор выше прав, а уровень computer science в стране достаточно низкий.
За ЯП SQL держат не только в России. Делаем выводы об уровне computer science в мире.
И да, начиная со стандарта SQL 2008 утверждают, что он тьюринг полный со всеми вытекающими.
Да и ЯП необязательно должен быть тьюринг-полным. Тотальное ФП, скажем, не тьюринг-полно. Или какие-нибудь диалекты Datalog, который, собственно был предтечей SQL.
Круто. Только у вас и тут проблема - вы плохо знаете, что такое полнота по Тьюрингу и что такое тезис Чёрча - Тьюринга.
Я вам уточню, что вам надо подтянуть свои знания.
Так вот, полнота по Тьюрингу как свойство не определяет язык программирования. Есть языки программирования, которые не являются Тьюринг-полными. В это же время есть Тьюринг-полный brainfuck.
Всё ещё предлагаю вам потратить время не на комментарии, а на собственное обучение.
brainfuck - это язык программирования
Я также уточню, что SQL считали ЯП еще с первого стандарта. Тьюринг полнота для этого не требовалась. Мое замечание про эту самую полноту не про право SQL носить гордое имя ЯП, а про уровень возможностей этого ЯП. Так что ваши выводы про то, что я что-то плохо знаю, мягко говоря притянуты за уши.
Еще раз. SQL считается декларативным ЯП в соответствии с весьма распространенной (не только в РФ и даже не только в СНГ) классификацией.
Всё ещё предлагаю вам потратить время не на комментарии, а на собственное обучение.
"Не учите меня жить, лучше помогите материально" (с).
В смысле не указывайте людям, что им делать в свободное от работы и самообразования время.
Даже с SQL 99, в котором появились recursive CTE.
безусловно, вы можете придумать свою классификацию. Притом придумывать её хоть каждый день.
Вы плохо понимаете, что говорят, когда говорят о декларативном языке программирования. Речь о его расширениях. И да, расширения можно считать языками.
Ощутили, сколько оговорок пришлось сделать, что бы натянуть сову на глобус? Ещё раз - некоторые расширения в стандарте или некоторые диалекты можно считать таковыми. А не SQL
Ну и далее
В английской, внезапно, то же самое.
У вас плохо с теорией множеств. Давать ссылку на любую википедию плохо, так как это плохой источник. Но если уж для вас это так важно - нет, в английской не тоже самое.
Фортран. как понятно из названия, это не ЯП, а транслятор формул
Снова плохо - нет противоречия между тем, чтобы быть одновременно и языком программирования и транслятором формул. Учитывая то, что это язык для математических вычислений, тут всё окей.
За ЯП SQL держат не только в России. Делаем выводы об уровне computer science в мире.
Ну тут уже откровенная демагогия, но мы уже поняли из ваши сообщений выше, что у вас плоховато с математикой.
Так что, лично у вас, проблемы не только с computer science.
А количество плюсов т.е. людей, у которых нигде не почисалось) говорит о том, что не только у вас.
Чем вы будете бить вот это https://aws.amazon.com/what-is/sql/ ?
Structured query language (SQL) is a programming language for storing and processing information in a relational database...
На хранимках вполне можно написать софт. И писали ведь. Не нужно, но можно.
Доброе утро. В банковском секторе огромное количество SQL-кода на проде (так еще и быстрее к тому же, т.к. всё работает в рамках ядра БД)
безусловно, вы можете придумать свою классификацию. Притом придумывать её хоть каждый день.
Я не придумывал эту классификацию. Она уже очень давно есть и достаточно широко распространена.
Вы плохо понимаете, что говорят, когда говорят о декларативном языке программирования. Речь о его расширениях. И да, расширения можно считать языками.
SQL сам по себе считается декларативным языком. Без всяких расширений.
Ощутили, сколько оговорок пришлось сделать, что бы натянуть сову на глобус?
Мне тоже кажется странным причисление SQL к ЯП без уточнений, но широко распространенная классификация, называющая SQL этим гордым именем сушествует. Приходится смириться.
У вас плохо с теорией множеств
Не могу сказать, что с теорией множеств у меня все хорошо, хотя базовые вещи знаю. Но русскую вики особр выделил таки не я, и эта часть моего комментария была именно про выделение русской вики в контексте данной дискуссии.
Снова плохо - нет противоречия между тем, чтобы быть одновременно и языком программирования и транслятором формул.
Нет противоречия и между тем, чтобы быть языком запросов и одновременно ЯП. Мой посыл был лишь про то, что название не всегда определяет всю суть. Python - это не про цирк. Это таки ЯП.
Ну тут уже откровенная демагогия, но мы уже поняли из ваши сообщений выше, что у вас плоховато с математикой.
Не демагогия, а иллюстрация уровня посылок комментария, на который отвечал.
Я бы не назвал SQL языком программирования. И я бы усомнился в квалификации того, кто это будет утверждать. Ссылаться на википедию тут как-то не очень. Посмотрим что скажет вездесущий ИИ.
Алиса: "
SQL (Structured Query Language) — это язык структурированных запросов. Он предназначен для работы с реляционными базами данных (БД) — массивами информации, которые связаны между собой и представлены в виде таблиц. netology.rublog.eduson.academy
SQL нельзя назвать самостоятельным языком программирования, но он дополняет другие языки, такие как Java, Python или C++. netology.rublog.eduson.academy"
ЧатГПТ сначала утверждает, что язык, но после уточнения вопроса пишет: "SQL часто называют языком программирования, потому что с его помощью пишут инструкции для базы данных — запросы и команды. Однако технически SQL — это в первую очередь язык запросов, предназначенный для управления данными в реляционных базах данных. Он не имеет многих особенностей традиционных языков программирования, например, сложной логики или циклов (хотя в расширениях SQL это можно реализовать).
То есть SQL — это специализированный язык для работы с данными, и его иногда называют языком программирования, но точнее называть его языком запросов."
Редкий случай, когда я соглашусь с нашими цифровыми ассистентами.
Спросит что такое парадигма программирования, и про разницу между декларативным и императивным программированием.
Как это нет циклов?
Common Table Expressions (CTE) are part of the ANSI standard since SQL:1999
Я бы не назвал SQL языком программирования. И я бы усомнился в квалификации того, кто это будет утверждать.
В силу жесткости вашего утверждения можно подумать, что вы не знакомы с историей использования слова "программирование". Да и сейчас оно имеет достаточно широкий спектр смыслов, в том числе и в computer science. В частности под програмиированием иногда понииалось любое действие, направленное на осмысленное изменение поведения сложных объектов. Доходит до того, что задание времени в кухонном таймере до сих пор иногда называют программированием таймера (но это, как по мне, совсем крайности).
С учетом этого всего, даже несмотря на то, что причисление SQL к ЯП мне кажется странным, я вполне допускаю такую трактовку.
Кроме того, наши летописи за шесть тысяч лун не упоминают ни о каких других странах, кроме двух великих империй — Лилипутии и Блефуску. Итак, эти две могущественные державы ведут между собой ожесточеннейшую войну в продолжение тридцати шести лун. Поводом к войне послужили следующие обстоятельства. Всеми разделяется убеждение, что варёные яйца при употреблении их в пищу испокон веков разбивались с тупого конца; но дед нынешнего императора, будучи ребёнком, порезал себе палец за завтраком, разбивая яйцо означенным древним способом. Тогда император, отец ребёнка, обнародовал указ, предписывающий всем его подданным под страхом строгого наказания разбивать яйца с острого конца. Этот закон до такой степени озлобил население, что, по словам наших летописей, был причиной шести восстаний, во время которых один император потерял жизнь, а другой — корону.
…Насчитывают до одиннадцати тысяч фанатиков, которые в течение этого времени пошли на казнь, лишь бы не разбивать яйца с острого конца. Были напечатаны сотни огромных томов, посвящённых этой полемике, но книги Тупоконечников давно запрещены, и вся партия лишена законом права занимать государственные должности. В течение этих смут императоры Блефуску часто через своих посланников делали нам предостережения, обвиняя нас в церковном расколе путём нарушения основного догмата великого нашего пророка Люстрога, изложенного в пятьдесят четвёртой главе Блундекраля (являющегося их Алькораном). Между тем это просто насильственное толкование текста, подлинные слова которого гласят: «Все истинно верующие да разбивают яйца с того конца, с какого удобнее.»
А пролог это язык программирования? Если нет, то почему?
Пролог - это язык логического программирования, полностью декларативный как и чистый SQL. И в нём тоже нет процедур, а код на Прологе - это База Знаний, как SQL - База Данных.
Когда-то предполагалось, что код на Прологе будет подобно нынешним нейросетям отвечать на вопросы давая умные ответы. Но, в отличии от самообучающихся нейросетей, Базу Знаний на Прологе нужно было заполнять ручками, внося вручную каждый факт.
Я бы не назвал SQL языком программирования. И я бы усомнился в квалификации того, кто это будет утверждать. Ссылаться на википедию тут как-то не очень. Посмотрим что скажет вездесущий ИИ.
Алиса: "
SQL (Structured Query Language) — это язык структурированных запросов.
Полностью согласен. SQL - не ЯП, а язык описания запросов (транзакций) в БД. Аналогично и AWK - язык описания фильтров текста, HTML - язык разметки гипертекста, и еще примеров можно найти, CSS - язык описания стилей страницы на языке разметки.
Ссылаться на Википедию - не очень, зато на Нетологию - нормально. А уж ссылка на Алису - это прямо верх экспертности.
Есть класс компьютерных языков. Он делится на подклассы.
Конкретики бы, потому что сейчас звучит как есть некий абсолют всем известный и обязательный к знанию/исполнению.
Вот плохо давать ссылку на википедию, ещё и на российскую
Да еще и на мобильную версию. Со светлой темой. Прям комбо какое-то.
Она русскоязычная, а не российская :) Вот плохо так говорить, не понимая темы Википедии..
Удивляюсь хабру, развели срач на ровном месте. Интересно если я захейчу Раст мне тоже так же прилетит ?
Может языки программирования не для вас 🧐👼?
Владимир Кузьмин?
Вспоминаю простыню на 4500 строк SQL, которую я писал для хранимки в PostgreSQL - всё как обычно, поиск экстремума на матрице, линейная алгебра да матстатистика. Я ХЗ, но очень малая часть этой хтони была структурированными запросами
Ах вот ты где, <censored>! После того как ты уволился - мы всем отделом полгода пытались это переписать! Трое уволились, двое спились, тимлида девушка бросила, главбух вернулась к бывшему.. Так и не смогли, оставили как есть!
Ты сделал мой день
успешная провокация)
SQL - не язык программировани
Нет, SQL - это язык декларативного программирования, и в отличии от ProLog'а широко распространённый. Программирование - это не только процедурное программирование, и Пролог тоже не имеет ни процедур, ни функций, ни объектов.
Пример кода на Прологе:
% Ниже правила
speciality(X,tech_translator) :- studied_languages(X),studied_technical(X).
speciality(X,programmer) :- studied(X,mathematics),studied(X,compscience).
speciality(X,lit_translator) :- studied_languages(X),studied(X,literature).
studied_technical(X) :- studied(X,mathematics).
studied_technical(X) :- studied(X,compscience).
studied_languages(X) :- studied(X,english).
studied_languages(X) :- studied(X,german).
% Ниже факты
studied(petya,mathematics).
studied(vasya,german).
studied(petya,compscience).
studied(vasya,literature).
studied(petya,english).
SQL - язык декларативного программирования баз данных
бесполезен
подстава с подвохом, глупо такие включать в сертификацию
вот это вроде более-менее разумный вопрос
как будто вопрос для справочника
не спец по java, но вопрос кажется бесполезным
есть здравое зерно, но намешано слишком много специфичного и ненужного
Итог: ни о чём.
Норм. На джуна, но норм. Понимать как работают сравнения в Джаве надо обязательно. Надо чтобы софт писать без ошибок.
Согласен, ерунда. Цель спросить по дженерикам понятна и разумна, но вопрос плохой.
Хороший вопрос. Это надо знать для того чтобы писать код понимая как он работает.
Прямо хорошо и умно. Требует не знания тонкостей, а понимания принципов.
Не. Это вполне реальный кейс из прода. Не так хорошо как 3, но сойдет. Возможно стоило бы переформулировать. Вроде Что упадет с исключением? И 4 примера кода. Или какую-нибудь обработку стрима и вопрос что будет или что упадет.
А вот это ерунда. Причем заумно сформулированная ерунда в отличии 2. Они конечно хотят ответ 5, но нафиг такие вопросы не нужны. Это в проде не каждый сеньор видел.
Я ожидал что хуже будет.
Джуновское, но удивлен что в этот вопрос они не подняли тему пула строк
Имхо, 2 вопрос не так плох - проверка знания того, что дженерики инвариантны
Согласен
Этот вопрос отвратителен. Может быть я чего-то не понимаю, но во-первых, почему вопрос поставлен во множественном числе, а во-вторых, тут в целом нет правильного ответа, так как TreeSet можно использовать с объектами, которые не реализуют Comparable, если передать в конструктор реализацию компаратора
Нуууу окей, хотя в чем была проблема взять что-то похожее из OCP с примерами кода
Второй по отвратительности вопрос, ответ на который получается только методом исключения остальных вариантов. Причем тут в целом дефрагментация, она же не является именно источником проблемы.
Причем тут в целом дефрагментация
В доках по G1 есть такое упоминание:
Humongous Object Fragmentation
A Full GC could occur before all Java heap memory has been exhausted due to the necessity of finding a contiguous set of regions for them. Potential options in this case are increasing the heap region size by using the option -XX:G1HeapRegionSize to decrease the number of humongous objects, or increasing size of the heap. In extreme cases, there might not be enough contiguous space available for G1 to allocate the object even if available memory indicates otherwise. This would lead to a VM exit if that Full GC can not reclaim enough contiguous space. As a result, there are no other options than either decreasing the amount of humongous object allocations as mentioned previously, or increasing the heap.
Полагаю, у автора вопроса просто глаз зацепился за знакомое слово.
бесполезен
Тест на винмательность. Нет правильных ответов, т.к. для вывода используется println()
, а не print()
. После вопроса сразу понимаешь уровень составителей и закрываешь страничку.
как будто вопрос для справочника
Тоже вопрос без правильного ответа.
еще придётся подтверждать постоянно, проходя тесты?
Сертификат действует 1 год со дня прохождения теста
Потому что, конечно же, через 1 год Питон так сильно изменится, что старые знания уже никуда не годятся!
Нет, агенты класса Д применят к вам амнезиаки и надо проверить - забыли только то что нужно, или ещё и python. :-)
Питон -- нет. Вы — точно изменитесь. Если знания не используются, они размываются.
Ой плиз. Какие такие сеньорские знания питона там проверяются что они забудутся через год? Там наверняка вопросы типа "throw или raise используются для исключений?" или "что вернёт эта функция"..
Я, например, на Ruby уже 10 лет ничего не писал, но вполне могу тест такого уровня пройти.
Отучаемся говорить за всех ))
Вы можете быть жуть какой продвинутый, гениальный и с исключительной памятью, но это не означает, что все такие.
Я вот тоже на Ruby 10 лет ничего не писал, точно как и вы. Но тест по нему пройти не смогу — я с ним вообще не знаком.
Не считаете ли вы, в таком случае, что диплом о высшем образовании тоже должен быть действителен максимум год? А потом - добро пожаловать снова все госы сдавай.
Мое мнение на эту тему не так интересно, на самом деле. Давайте посмотрим на практику.
Что дает диплом соискателю вакансии, если в ней нет явного требования наличия этого самого диплома? Ровным счетом ничего. Кандидат вынужден размахивать резюме, рекомендациями, проходить несколько этапов собеседований, тестирование.
Что дает диплом соискателю, если в ней ЕСТЬ явное требование наличия диплома? Все то же самое, кроме того, что конкурировать он будет только с другими владельцами дипломов.
Ну и никто в здравом уме не будет брать вас программировать на паскале только потому, что 15 лет назад у вас целый семестр был паскаль, правда ведь? Мало того, вряд ли вы укажете его в своем резюме.
Со здравым смыслом и необходимостью диплома я спорить не буду - тут я с вами, большей частью согласен.
Однако, вы защищаете устаревание этого сертификата через год, говоря что знания размываются.
Диплом же действителен всю жизнь - не видите противоречия?
Я не защищаю. Наоборот. Вы меня как-то не так интерпретировали. Я утверждаю, что знания без применения размываются (не у вас и не по Ruby :-) ), а в айти еще и устаревают с изрядной скоростью (Ruby тут тоже мимо, по нему уже не устаревают).
Про дипломы вы первый начали :) Ну и в моем ответе ничего нет про защиту диплома. Наоборот (кмк).
Хах, это они упустили, надо было однодневный сертификат сделать, сдал на сертификат - приступаешь к работе.
Продвинутый уровень Linux не очень-то продвинут. Другие не смотрел.
ага, у вас сломалась сеть, ошибку мы вам не покажем. Угадайте почему у вас проблема

Там есть продвинутые вопросы типа selinux и capabilities или конфига nginx, но сам формат "найди ошибку в конфиге" довольно бессмысленный.
Какие то тесты на hh.ru, спасибо, пока обойдемся.
Всё обязательно нужно стандартизировать и вогнать в рамки, при всём этом, если говорить об государственном айти, то до сих пор системных администраторов и эникейщиков называют - программистами.
А где,и планируется ли вообще, благословенный наш ОдинС???
Хм, а выезд не закроют для отличников?
Там у чиновников куда больше возможностей проявить себя - можно же льготную ипотеку на весь срок привязать к наличию действующего сертификата.
а потом сделают вот так:
Элегантный способ, как всех заставить записаться в реестр компетенций.
Придумать требование для ойти-компаний иметь не менее 10% сотрудников с сертификатом с госуслуг. Каждый год повышать требование +10% к численному составу.
Не выполнил KPI по сотрудникам - вон из реестра ойти-компаний, а там и НДС, и налог на прибыль на всю котлету. Ну и ставочка по ипотеке по ставке ЦБ.
А потом и обязаловка и трудовая повинность появится по бесплатной разработке гос-софта.
Запомните этот твит.
ну и придёт это к тому, что компания заведет в штате отдельного сотрудника для решения этих квестов за всех, толку то.
Поясните, что не так в ваших предложениях? Довольно простые тесты, подтверждающие, что ИТ компания наполнена действительно ИТшниками — это по какой-то причине плохо? По какой?
Очевидно, что там где льготы — там и примазавшиеся. Почему бы их формально не отсечь? При этом для настоящих ИТшников это выгодно — меньше выделенного на них ресурса налево уходит.
Идея хорошая, проблемы связаны больше с конкретной реализацией этой идеи и истинными мотивирующими факторами, которые могут сильно отличаться от тех, что представляем себе мы. Ключевые слова: "подтверждающие" и "формально".
Довольно простые тесты, подтверждающие, что ИТ компания наполнена действительно ИТшниками
Нет. Это довольно простые тесты, подтверждающие, что ИТ компания наполнена людьми, на аккаунтах которых прошли тесты. Может, сами работники, а может и нет - кто знает?
Текущих требований к аккридетации вполне достаточно, чтобы отсечь примазавшихся.
С помощью мягкой силы скорее всего закроют, привьют патриотизм.
А дальше как фишка ляжет.
Интересно, как ограничивают время сдачи этого теста
Вот не туда лезет наше государство. Зачем лезть в сферу, которая сама себя прекрасно регулировала.
Частные компании в основном более-менее адекватно выстраивали и найм и обучение джунов.
Да и для сертификации тоже было много частных компаний. Зачем здесь государство? Для чего были потрачены эти деньги для стр на госуслугах?
Чтобы через год заявить, что если компания хочет сохранить все свои ИТ преференции все сотрудники должны быть сертифицированы. И начать рубить бабло из воздуха
Последние три года они как с цепи сорвались. Давайте без разбора лочить иностранных конкурентов - пофиг на то что бизнес страдает. Теперь будем паковать воздух (тесты) в банки и продавать его (требование закона на прохождение тестов)
Государство стало давать преференции айтишникам - и теперь дошло до того, что хорошо бы определить, кто такие айтишники)
Не исключено, что это нужно для госов и окологосов и их интеграторов. Международные сертификации больше не доступны, а внутренний ответ на "конкурс требует наличия у исполнителя не менее N сертифицированных специалистов по M" такая сертификация даёт. Ну и в госкомпаниях это может быть частью системы требований к должностям. однако прокторинг пока отсутствует и потому ценности в такой оценке сейчас мало: отвечать на вопросы может вообще другой человек.
Иногда до идиотизма... Я в конторе построил систему безопасности (там несколько вендоров, все съинтегрировано огого). Я ее поддерживал, настраивал, модернизировал, обучал джунов несколько лет.
И вот в какой-то момент, ТО по системе отдают на тендер.
И меня просят под запись камеры, на время, сдать экзамен из 20+ вопросов по системам)).
Выглядело как издевка и крайняя степень неуважения. При том на полном серьезе. Потом сказали, что из спецов участников тендера никто и 30% не ответил, ну а я молодец. Хотя нам это ТО нафиг не сдалось к тому моменту...
Так все же очевидно. Кто-то из ТОПов решил продвинуть свою конторку на подряд. Ваше руководство решило, что это дичь и деградация. Но как доказать, что там кто-то продвигает дичь? Слово против слова? Проведем тендер, запишем на камеры, кто что и как отвечает. Понятно, что "спецы" из левой конторки слились, по итогу тендера был составлен документ, который был обсужден на Совете Директоров. А Вы про неуважение. Наоборот, крайняя степень доверия. Просто не все руководство может рассказать.
Зачем лезть в сферу, которая сама себя прекрасно регулировала.
А потому что не должно быть сфер, которые сами себя регулируют.
Странно. Вроде первое апреля два месяца назад прошло.
А Pascal?
Мои знания официально подтверждены моим резюме и рекомендательными письмами от компаний, в которых я работал. Грамоты коллекционировать мне ещё в школе надоело.
Скорее всего, этот балаган нужен, чтобы обязать сотрудников аккредитованных компаний получать эти бумажки и на каком-то из последующих этапов начнут за это брать деньги. Либо чтобы заниматься очковтирательством, рассказывая, как колосятся поля и множатся айтишники в стране.
(del)
Сарказм здесь не в моде, понятно ))
Серт вроде Минцифры, а по факту перекидывает на ХХ (по крайне мере для SQL)
то есть вообще не парились даже внутрь себя интегрировать
ЕМНИП, тестирование всего вот этого вот планируется до конца 2026 года. После уже станет окончательно понятно, зачем это. Лично я порекомендовал бы потенциально-причастным заранее задуматься о собственной мобильности. Так, на всякий случай.
Не, пускай лучше минцифры подтверждает нам свои знания.
А то есть некоторые сомнения.
Про теорию выше писали. Сходил посмотрел их самую сложную практику по Джаве. Двух задачек за 50 минут хватило чтобы зеленую галочку поставили.
Литкод медиум не из самых простых с жутко неудобным интерфейсом входных и выходных данных и необходимостью импортировать все пакеты вручную. При таких входных условиях если не тренироваться две задачки за 50 минут сделать не так просто. Я 2.5 успел. Если потренироваться на их паттерне заданий, то не проблема и больше.
Без тренировки кучу времени сжирает необходимость вспоминать в каком пакете лежит нужный тебе класс и парсинги/сборки строк. Но на это руку набить дело буквально нескольких часов.
Парсить входные строки и хитро собирать результат с пробелами и энтерами в нужных местах совершенно не интересно и ничего не проверяет. Учитесь у Литкода как надо передавать входные данные и как принимать ответ.
Вручную импортировать пакеты это было внезапно и потребовало заметно времени чтобы понять почему мой код не компилится. Опять учитесь у Литкода автоимпорту всего что можно.
А помните, как в 2020 году Шадаев приходил, рассказывал про инновации, про современные практики и интеграцию, про технологичность и адаптивность?
Ну а по факту такой же бесполезный галстук, пилящий на наши налоги реестр реестров.
Странно, что нигде не пишут об этом во «вторичных» источниках, но в оригинале сообщения Минцифры в телеграме есть такое: «Так же это можно сделать на сайте оператора платформы - hh.ru»
То есть как будто взяли ту «проверялку навыков» из хх и вкорячили на госуслуги.
Подскажите пожалуйста, из новости непонятно.
Если прошёл тест, то выдаётся сертификат на год.
А если не прошёл? Пересдать можно тоже только через год?
Интересно, как эти сертификаты будут соотноситься с дипломами о высшем (или даже среднем) образовании по специальности? Ну т.е. есть диплом, где перечислены экзамены по предметам, сданные N лет назад. А теперь каждый год пересдавать что ли надо? А зачем тогда диплом? А если не надо, зачем тогда тесты? Ну, допустим, тесты для тех, у кого нет диплома. Так это частичное дублирование какое-то. Попробуй разберись, то ли сертификацию проходить, то ли обучение, и со стороны найма - то ли дипломы, то ли сертификаты искать. Похоже на значительное усложнение.
Вы можете посмотреть как подобное устроено в медицине (и не только), где есть регулярное повышение и регулярное подтверждение квалификации.
Я бы на вашем месте не сравнивал курсы по Питону или SQL (которые можно на ютубе за 2 недели натаскать) с, например, хотя бы учебником анатомии, не говоря уже о клиническом опыте.
Ну там-то хоть раз в 5 лет подтверждение, а не каждый год. Я даже когда-то проходил подобное по промбезопасности. Это ещё приемлемо.
Нууу, с мест пишут, что такой же ИИ эти вопросы и составлял.

Интересное наблюдение: в задачах на практику справа снизу есть 3 тестовых сценария, где написан ввод и ожидаемый вывод. Так вот, можно вообще не париться с написанием кода, а написать:
if (input == "ввод1") return "результат1";
if (input == "ввод2") return "результат2";
if (input == "ввод3") return "результат3";
И задача принята.
Опять врачами считают только терапевтов :)
Ой, то есть я хотел сказать - опять Итшниками считают в основном программистов и сайтосоздателей.
Вот сетевикам сейчас обидно :)
Самый главный вопрос: зачем мне это? Да еще и каждый год?
Сегодня, буквально диалог на обеде:
сын сегодня вставал в 3 часа ночи ответы с егэ прислали, делал шпоры
мой тоже
Также что ли хотят чтобы было, но у взрослых?
Вообще, самая большая проблема знать, когда нужно остановиться и не пытаться пилить б.. все автоматизировать.
Про уровень "сертификации" в комментариях уже отметили.
В общем, все как обычно...

JS
Как вариант - там где-то буква e в слове truе заменена на русскую e.
Иначе да - все вернут true (я проверил на всякий случай).
Это просто восхитительно! Я такого потока сознания от дипсика не видел никогда, он в какой-то момент даже не выдержал и перешел на английский:
Огромная простыня бедного нейромозга
Мы имеем несколько выражений на JavaScript и должны определить, какое из них вернет false.
Давайте проверим каждое по очереди:
1. 10 % 3 == 1
10 % 3 - это остаток от деления 10 на 3. 10 / 3 = 3 * 3 = 9, остаток 1.
Так что 10 % 3 равно 1, а 1 == 1 -> true.
2. 3 < 5 && 5 < 10 === true
Здесь нужно учитывать приоритет операторов. Оператор строгого равенства (===) имеет более высокий приоритет, чем логическое И (&&).
Поэтому выражение разбивается так: (3 < 5) && (5 < 10 === true)
Сначала: 3 < 5 -> true
Затем: 5 < 10 -> true, а затем true === true -> true
Итог: true && true -> true.
3. (3 < 5 && 5 < 10) === true
Здесь сначала выполняется выражение в скобках: 3<5 -> true, 5<10 -> true, поэтому true && true -> true.
Затем true === true -> true.
4. 2 + 2 * 2 === 6
Умножение имеет приоритет: 2*2=4, затем 2+4=6.
6 === 6 -> true.
5. (1 == true) === true
Сначала 1 == true: в JavaScript, true при численном преобразовании становится 1, поэтому 1 == 1 -> true.
Затем true === true -> true.
Кажется, все выражения возвращают true? Но по условию нужно найти выражение, которое вернет false.
Пересмотрим второе выражение, потому что в нем есть нюанс:
2. 3 < 5 && 5 < 10 === true
Как я разобрал: (3 < 5) && (5 < 10 === true)
Проверим: 5 < 10 -> true, затем true === true -> true, потом true && true -> true.
Однако, возможно, я ошибся. Давайте посмотрим на приоритеты:
Приоритеты операторов (от высокого к низкому):
- Сравнение: <, >, <=, >=
- Равенство: ==, ===, !=, !==
- Логическое И: &&
Поэтому в выражении 3 < 5 && 5 < 10 === true:
Сначала выполняются сравнения: 3<5 -> true, 5<10 -> true.
Затем оператор ===: true === true -> true.
Затем оператор &&: true && true -> true.
Но что, если оператор === связывает сильнее, чем < ? Нет, оператор < имеет приоритет выше, чем ===?
Проверим таблицу приоритетов (по MDN):
Группа 1 (наивысший): ...
Группа 7: * / %
Группа 8: + -
Группа 9: < > <= >=
Группа 10: == != === !==
Группа 14: &&
То есть:
< приоритетнее, чем ===, а === приоритетнее, чем &&.
Поэтому выражение 3 < 5 && 5 < 10 === true разбирается так:
(3 < 5) && ( (5 < 10) === true )
-> true && (true === true)
-> true && true
-> true
Но есть еще один нюанс: операторы сравнения идут слева направо?
В данном случае у нас два оператора сравнения: < и <, и они одного приоритета, поэтому слева направо.
Однако, в выражении 3 < 5 && 5 < 10 === true, сначала будут выполнены оба оператора <, потому что у них приоритет выше, чем у === и &&.
Разбор:
Шаг 1: 3 < 5 -> true
Шаг 2: 5 < 10 -> true
Теперь выражение превратилось в: true && true === true
Теперь, оператор === имеет приоритет выше, чем &&, поэтому:
true === true -> true
Затем: true && true -> true.
Получается true.
Однако, давайте проверим на практике. Запустим в консоли:
console.log(3 < 5 && 5 < 10 === true); // true?
Но я подозреваю, что проблема может быть в другом. Возможно, в JavaScript оператор === имеет более высокий приоритет, чем < ?
Нет, приоритет < выше.
Но давайте проверим без переменных:
5 < 10 === true
Это вычисляется как: (5 < 10) === true -> true === true -> true.
Значит, выражение 2 тоже true.
Тогда почему в задании говорится, что одно из выражений вернет false?
Пересмотрим выражение 2 еще раз. Возможно, я неправильно понял приоритеты.
Есть альтернативное мнение: оператор === имеет приоритет 10, а оператор < имеет приоритет 9 (то есть выше).
Но в стандарте:
Таблица:
Precedence 9: Less than (<), Less than or equal (<=), etc.
Precedence 10: Equality (==), Strict equality (===), etc.
Precedence 14: Logical AND (&&)
Поэтому:
5 < 10 === true -> это (5 < 10) === true, потому что < имеет приоритет 9, а === - приоритет 10?
Нет, наоборот: приоритет 9 выше, чем 10?
Нет! Приоритеты: чем меньше номер, тем выше приоритет?
В таблице MDN:
Precedence 1 - наивысший, 21 - самый низкий.
Значит:
< - 9
=== - 10
&& - 14
Поэтому приоритет < выше, чем ===, а === выше, чем &&.
Тогда выражение 2:
3 < 5 && 5 < 10 === true
= (3 < 5) && ( (5 < 10) === true ) // потому что < выполняется раньше ===, а потом ===, а потом &&
= true && (true === true)
= true && true
= true
Но я вспомнил, что в JavaScript есть особенность: операторы с одинаковым приоритетом выполняются слева направо?
Здесь операторы < и < одинакового приоритета, и они выполняются слева направо?
Да, но они независимы: сначала 3<5, потом 5<10, а затем уже ===.
Так что выражение 2 должно быть true.
Тогда почему в задании нужно найти false?
Возможно, я упустил что-то в выражении 2.
Давайте посмотрим на выражение 2 без скобок:
3 < 5 && 5 < 10 === true
А что, если интерпретатор свяжет так:
3 < (5 && 5) < 10 === true ?
Но нет, потому что оператор < не является ассоциативным в цепочке?
В JavaScript цепочки операторов сравнения обрабатываются по-особенному.
Например, выражение 3 < 5 < 10 разбирается как: (3 < 5) < 10 -> true < 10 -> 1 < 10 -> true.
Но у нас в выражении 2: 3 < 5 && 5 < 10 === true
Здесь нет цепочки из трех операндов для оператора <, потому что между ними стоит &&.
Поэтому выражение 2 разбивается на две части по &&.
Итак, все выражения, кажется, дают true.
Но давайте перепроверим выражение 5:
(1 == true) === true
В JavaScript:
1 == true -> true, потому что true преобразуется в 1.
true === true -> true.
Выражение 4: 2+2*2 -> 2+(2*2)=6, 6===6 -> true.
Выражение 3: (3<5 && 5<10) -> (true && true) -> true, затем true===true -> true.
Выражение 1: 10%3=1, 1==1 -> true.
Тогда какое же выражение возвращает false?
Возможно, я ошибся в выражении 2?
Попробуем запустить выражение 2 в консоли:
console.log(3 < 5 && 5 < 10 === true); // true
Действительно true.
Но есть еще один вариант: может быть, в выражении 2 оператор === применяется к результату всего &&?
Нет, потому что && имеет более низкий приоритет, чем ===.
А если бы было:
выражение: 3 < 5 && 5 < 10 === true
без скобок, то как?
Согласно таблице:
сначала выполнятся все операторы с приоритетом выше 14, то есть и <, и === (приоритет 9 и 10) выполнятся до &&.
Поэтому:
Левый операнд для &&: 3<5 -> true
Правый операнд для &&: 5 < 10 === true -> (5<10)===true -> true===true -> true
И затем true && true -> true.
Тогда в чем же дело?
Я заметил, что в варианте 3 есть скобки: (3 < 5 && 5 < 10) === true
А во втором варианте скобок нет.
Но мы уже разобрали, что без скобок порядок остается таким же.
Возможно, в выражении 2 проблема в том, что оператор === применяется только к правой части?
Но это так и задумано.
Другой вариант: может быть, выражение 2 на самом деле интерпретируется как:
3 < (5 && 5) < 10 === true ?
Но нет, потому что оператор && имеет более низкий приоритет, чем <, поэтому сначала выполнятся <, а не &&.
Или, может быть, цепочка:
3 < 5 && 5 < 10 === true
= (3 < 5) && (5 < 10) && (10 === true) ?
Нет, такого быть не может, потому что оператор && не связывает три операнда в одно целое без дополнительных скобок.
Выражение a && b && c -> ((a && b) && c). Но у нас не три операнда, а два: слева от первого && - "3<5", справа - "5<10===true".
Итак, я в замешательстве.
Попробуем рассмотреть альтернативу:
Возможно, выражение 2: 3 < 5 && 5 < 10 === true
интерпретируется как: 3 < (5 && 5) < 10 === true ?
Но это было бы странно, потому что тогда нужно разбить на цепочку операторов сравнения?
В JavaScript цепочки операторов сравнения обрабатываются слева направо, но с учетом приоритетов.
Однако, в данном случае у нас между числами стоит оператор &&, который не является оператором сравнения.
Поэтому цепочка не образуется.
Еще одна попытка:
Выражение 5 < 10 === true -> true, как мы знаем.
Поэтому 3<5 && true -> true.
Значит, выражение 2 вернет true.
Тогда почему в задании сказано, что одно из выражений вернет false?
Перечитаем варианты:
- ○ 10 % 3 == 1
- ○ 3 < 5 && 5 < 10 === true
- ○ (3 < 5 && 5 < 10) === true
- ○ 2 + 2 * 2 === 6
- ○ (1 == true) === true
Возможно, я пропустил, что во втором варианте нет пробелов и оно пишется как "3<5&&5<10===true", но это не должно влиять.
Или, может быть, в выражении 2 ошибка: оператор === применяется к выражению 5<10, а затем результат (true) сравнивается с true, что дает true, но затем этот true объединяется с 3<5 через И.
Все равно true.
Может быть, проблема в том, что оператор === имеет более высокий приоритет, чем я думал?
Проверим на простом примере:
console.log(5 < 10 === true); // true
Это корректно.
Тогда что если в выражении 2:
3 < 5 && 5 < 10 === true
интерпретируется как: 3 < (5 && (5 < 10)) === true ?
Но нет, потому что приоритет оператора < выше, чем у &&, поэтому сначала идут операции <.
По таблице приоритетов, операторы < идут в группе 9, && - в группе 14.
Поэтому сначала выполнятся оба <, затем ===, затем &&.
Или, может быть, выполнение идет слева направо, но с учетом приоритетов?
Да, выполнение слева направо, но приоритеты определяют группировку.
Группировка для выражения 2:
исходное: 3 < 5 && 5 < 10 === true
операторы: <, &&, <, ===
самый высокий приоритет у первого <: группируем 3<5 -> (3<5)
затем у следующего <: группируем 5<10 -> (5<10)
затем у ===: группируем (5<10) === true -> ((5<10) === true)
затем у &&: группируем (3<5) && ((5<10) === true)
Итог: true && (true === true) -> true.
Так что, видимо, все true.
Но есть вариант, что во втором выражении есть ошибка: оператор === применяется ко всему выражению?
Например: (3 < 5 && 5 < 10) === true?
Но нет, во втором выражении скобок нет.
Тогда, возможно, в задании опечатка, или я упустил выражение.
Попробуем проверить выражение 5:
(1 == true) === true
Шаг1: 1 == true -> true
Шаг2: true === true -> true
Выражение 4: 2 + 2 * 2 === 6 -> 2 + 4 = 6, 6===6 -> true.
Выражение 3: (3<5 && 5<10)===true -> (true && true)===true -> true===true -> true.
Выражение 1: 10%3==1 -> 1==1 -> true.
Остается выражение 2.
Я подозреваю, что во втором выражении может быть неожиданность из-за того, что операторы < and === are non-associative in this context, но вроде бы нет.
Тогда, может быть, в выражении 2: 3 < 5 && 5 < 10 === true
на самом деле правый операнд для && это 5, а не 5<10===true?
Но нет, потому что тогда бы было: 3<5 && 5 ... а что с остальным?
Это невозможно.
Другой вариант: цепочка операторов. В JavaScript разрешены цепочки, но обычно для операторов сравнения, а здесь у нас смесь.
Но давайте представим, что интерпретатор видит так:
3 < 5 && 5 < 10 === true
Он может попытаться выполнить как:
(3 < 5) && (5 < 10) && (10 === true)
Но в стандарте JavaScript так не делается.
В JavaScript нет неявного объединения сравнений с помощью && в одну цепочку.
Выражение a < b && b < c — это два отдельных сравнения, объединенных через &&.
А у нас: a < b && c < d === e
Это: (a < b) && ( (c < d) === e )
Итак, я считаю, что выражение 2 должно быть true.
Но давайте running code:
В браузере или Node.js:
console.log(10 % 3 == 1); // true
console.log(3 < 5 && 5 < 10 === true); // true
console.log((3 < 5 && 5 < 10) === true); // true
console.log(2 + 2 * 2 === 6); // true
console.log((1 == true) === true); // true
Все true.
Однако, я заметил, что в выражении 2, если бы мы записали без пробелов, но это не важно.
Тогда в чем же дело?
Wait, я вспомнил: оператор === имеет более высокий приоритет, чем &&, но не имеет значения, потому что < имеет еще более высокий.
Но может быть, в выражении 2: 5 < 10 === true -> это на самом деле 5 < (10 === true) ?
Но 10 === true -> false, потому что 10 не приводится к true в строгом равенстве.
Тогда 5 < false -> но false преобразуется в 0, поэтому 5<0 -> false.
И тогда: 3<5 && false -> true && false -> false.
Вот это поворот!
Какой порядок?
Согласно таблице приоритетов, оператор === имеет приоритет 10, а оператор < - приоритет 9, который выше.
Но выше - это раньше? Да, приоритет 9 выше, чем 10, значит, < должен выполняться раньше.
Однако, в таблице приоритетов MDN:
Precedence 9: <, >, <=, >=, in, instanceof
Precedence 10: ==, !=, ===, !==
Поэтому оператор < имеет более высокий приоритет, чем ===, и должен выполняться первым.
Но давайте проверим на простом примере:
console.log(5 < 10 === true); // true, потому что (5<10)===true
console.log(5 < (10 === true)); // 10===true -> false, then 5 < false -> 5 < 0 -> false
Так в каком же порядке?
В нашем случае без скобок: 5 < 10 === true
Если приоритет < выше, то (5<10) === true -> true === true -> true.
Если бы приоритет === выше, то 5 < (10===true) -> 5<false -> false.
Но приоритет < выше, поэтому должно быть true.
Однако, я слышал, что в JavaScript есть особенность: если операторы имеют одинаковый приоритет, то выполнение идет слева направо.
Но у нас разные приоритеты.
Так что (5<10)===true -> true.
Тогда почему же я подумал о другом порядке?
Но давайте вернемся к выражению 2: 3 < 5 && 5 < 10 === true
Если бы вдруг === выполнялся до <, то получилось бы false, но этого не должно быть.
Однако, я нашел в спецификации:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
Приоритеты:
9: Relational: <, >, <=, >=
10: Equality: ==, !=, ===, !==
Это значит, что 9 > 10 в смысле приоритета (9 более высокий).
Поэтому в выражении:
a < b === c
группируется как (a < b) === c.
Следовательно, в нашем случае: 5 < 10 === true -> (5<10)===true.
И это true.
Тогда выражение 2: true.
Но давайте проверим в консоли, как группируется 5 < 10 === true:
console.log(5 < 10 === true); // true
И как группируется 3<5 && 5<10===true:
console.log(3 < 5 && 5 < 10 === true); // true
Все правильно.
Тогда в чем же проблема?
Я вижу, что в варианте ответа 2 написано: "3 < 5 && 5 < 10 === true"
а в варианте 3: "(3 < 5 && 5 < 10) === true"
Они оба true.
Возможно, в задании ошибка, или я должен обратить внимание на семантику.
Но давайте look at the fourth option: 2 + 2 * 2 === 6
Это 2 + (2*2) = 2+4=6, 6===6 -> true.
И fifth: (1 == true) === true -> (1==1) -> true, true===true -> true.
Then all are true?
Но пользователь сказал, что одно из них вернет false.
Я должен найти то, которое возвращает false.
Let me reexamine option 2 in a different light.
What if we consider the associativity?
The associativity of the < operator is left-to-right, and for === it is left-to-right as well, but they are not the same precedence.
However, in the expression 5 < 10 === true, the < has higher precedence, so it's (5<10) === true.
But what if we have a chain of mixed operators?
The only way option 2 could be false is if it were parsed as:
3 < (5 && (5 < (10 === true)))
-> 10 === true -> false
-> 5 < false -> 0 (since false is converted to 0) -> 5<0 -> false
-> 5 && false -> false (because && returns the right-hand operand if the left-hand is truthy? but 5 is truthy, so it returns the right-hand, which is false)
-> 3 < false -> 3<0 -> false
But that would be if the priorities were reversed and if we had right-to-left associativity, which we don't.
This grouping is not possible because the operators have higher priority.
So after rethinking, I recall that in JavaScript, the expression without parentheses will be:
step1: 3 < 5 -> true
step2: 10 === true -> false (wait, no, because 10 and true are not the same type and in === no conversion, so 10===true is false)
step3: 5 < (result of step2) -> 5 < false -> false, because false is converted to 0, 5<0 -> false
step4: true && false -> false
But wait, is that the order?
No, the order is determined by operator precedence and associativity, not by position.
The expression is: 3 < 5 && 5 < 10 === true
The operators are: <, &&, <, ===
We must group by operator precedence:
The two < operators have higher precedence (9) than === (10) and && (14), and === has higher than &&.
So first, we do the < operations and the === operation, then &&.
Specifically:
left part of &&: 3 < 5 -> true
right part of &&: 5 < 10 === true
In the right part, we have two operators: < and ===. Since < has higher precedence than ===, it is:
(5 < 10) === true -> true === true -> true
Then: true && true -> true
So it should be true.
But let me run this in a console:
console.log(5 < 10 === true); // true
console.log(3 < 5 && 5 < 10 === true); // true
Indeed, it is true.
Then the only possibility left is that one of the expressions I am considering to be true is actually false.
Let's check the first one: 10 % 3 == 1
10 % 3 = 1, and 1 == 1 -> true.
The third: (3<5 && 5<10)===true -> (true && true) === true -> true.
The fourth: 2 + 2 * 2 === 6 -> 2+4=6, 6===6 -> true.
The fifth: (1 == true) === true -> (1==1) -> true, then true===true -> true.
So all are true.
This is a mystery.
Perhaps the question is about which one returns false, and I have to choose one, but they are all true.
Maybe in the second expression, the triple equal is not what we think.
But let me try to run this in an old browser or in a strict mode?
I think it's time to actually run the code.
I did run it in my mind and in the console (virtually) and got all true.
Then, I recall that in the second expression, there is a === operator, and it is applied to the result of 5<10 and true, which is true and true, so true.
But what if the environment has a bug?
This is not likely.
Perhaps the catch is in the first expression: 10 % 3 == 1
In JavaScript, % is remainder, not modulo, but for positive numbers, they are the same.
So 10%3=1.
Expression 4: multiplication has higher priority, so 2*2=4, then 2+4=6.
Expression 5: 1==true -> true.
Only expression 2 and 3 are in question.
But in expression 3, we have explicit parentheses, so it's clear.
So maybe the answer is expression 2, and it is because of a different grouping.
I found a resource:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
and it says that both < and === are left-to-right, but with < having higher precedence.
So grouping for the second expression is as I said.
But then I found a 4th option:
console.log(3 < 5 < 10 === true); // this would be ((3<5)<10)===true -> (true<10) -> 1<10 -> true, then true===true -> true.
But our expression is not like that. We have && in between.
Given the time, I will assume that the only expression that might be false is the second one if we group it in a way that === has higher precedence, but that is against the specification.
Perhaps in the second expression, the === is applied to the whole left part?
For example: (3 < 5 && 5 < 10) === true, but that is expression 3.
In expression 2, there are no parentheses, so it should be as above.
But let's try to run the following in a real console:
// Expression 2
console.log(3 < 5 && 5 < 10 === true); // true
I did it in my browser console, and it is true.
Then I try to see if there's any type coercion that I missed.
What if in expression 5: (1 == true) is true, but (1 == true) === true is true.
I think the only possibility is that the first expression is 10 % 3 == 1, and in some languages % might be modulo and yield a negative for negative numbers, but here 10 and 3 are positive.
So I am out of ideas.
Then I recall: in expression 2, the === operator is comparing the result of (5<10) to true, and (5<10) is a boolean, and true is a boolean, so it's fine.
But what if we do:
3 < 5 && 5 < 10 === false // then it would be true && (true===false) -> true && false -> false.
But in the expression, it is === true, not === false.
So it should be true.
Therefore, I must have made a mistake in the initial assumption that one of them is false.
Given the options, and if I must choose, then I would choose expression 2, because it is the only one that might be interpreted in a way that yields false in some very specific and incorrect way.
But since the specification says it should be true, and practical try in console says true, then I think the question might have a typo.
However, let's look at the expression 2 as it is written in the question:
"3 < 5 && 5 < 10 === true"
What if the === is not meant to be part of the expression, but that is not the case.
Perhaps in the fifth expression: (1 == true) === true
In JavaScript, 1 == true -> true, but 1 === true -> false, because different types.
However, in the expression, we have (1 == true) === true, not 1 === true.
So it's: (1==true) is true, and then true === true -> true.
So it's true.
I give up.
But then I found a possibility: in expression 2, the part "5 < 10 === true" might be evaluated as 5 < (10 === true) if the === has higher precedence than <, but according to the table, it does not.
However, let me double-check the operator precedence table on MDN.
The table says:
Group 9: <, >, <=, >=
Group 10: ==, !=, ===, !==
Group 9 has higher precedence than group 10.
Therefore, 5 < 10 === true is (5 < 10) === true.
So it is true.
Then what is the solution?
Perhaps the intended answer is expression 2, because the === true is redundant and might be a trap, but it is true.
Maybe in expression 2, the && has higher precedence than <, but that is not the case.
One last try:
What if the expression 2 is:
3 < 5 && 5 < 10 === true
and we evaluate from left to right with the following precedence:
first, 3<5 -> true
then, true && 5 -> 5 (because && returns the operand, not boolean, if the first is truthy, then it returns the second operand)
then, 5 < 10 -> true
then, true === true -> true
but that would be: (( (3<5) && 5 ) < 10) === true
and that is: ( true && 5 ) -> 5, then 5<10 -> true, then true === true -> true.
However, this grouping would be:
((3<5) && 5) < 10 ) === true
but that would require grouping the && first, which has lower priority than <.
So grouping should be:
(3<5) && (5<10) -> then what?
then (true) && (true) -> true, then true === true.
So not.
Alternatively, if we group as:
(3<5) && (5<10) -> true, then true===true -> true.
So no difference.
I think the only explanation is that the meant that the second expression is to be read as:
3 < 5 < 10 === true
without the &&.
But in the question, there is &&.
Perhaps a typo in the question.
Given the above, I will guess that the expression that returns false is the second one, based on the following (incorrect) grouping:
3 < (5 && (5 < (10 === true)))
-> 10 === true: false
-> 5 < false: false
-> 5 && false: false
-> 3 < false: false
Even though it is not the correct grouping, it is a common mistake.
Therefore, the answer might be the second expression.
So I will go with that.
Я работаю фронтом 2 года, но не прошел тесты по css, js, doker и продвинутому html)))
Что выведет этот ... код в консоль? Да в душе не знаю, открыл терминал скопировал вставил и проверил. Результат - ой вы использовали подсказки вы не сдали аххаха)
Вопросы по докеру из разряда "вам нужно совместить муху слона и жирафа в одном приложении без доступа внешнюю сеть" и витиеватые варианты ответа. Дайте написать код, предложить варианты решения, доказать знания то, если вы так их от меня хотите. Может это составители тестов ошиблись а не я😂.
Ничего нового... Вместо того чтобы заниматься делом, опять какие-то "движухи" на показуху и заляпухи намечаются. Значки IT - ГТО по разрядам не забудьте, а так же почётные грамоты "Передовик броуновского движения" и "Ударник бесполезного труда" с материальным поощрением и поездками в региональный профилакторий, а по случаю профессионального юбилея присваивать звание "Стахановец-многопоточник" с записью благодарностей в трудовую книжку. Особо отличившихся можно так же поощрять китайскими чайными сервизами, флэшками, мышками и прочей требухой, как наиболее отличившихся специалистов ко дню сисадмина, программиста и т.д. и т.п. А если серьёзно, IMHO - это просто очередное издевательство какое-то готовится, хорошо если не закончится ещё и тем, что сначала обяжут и пересчитают, а потом закроют выезд из страны вообще. Что не исключено.
Минцифры: подтвердите официально свои знания в ИТ по Python, Java, SQL, C#, PHP, HTML, ООП и PostgreSQL, а также Linux