Тесты для программистов с ответами: Программирование | Тесты с ответами

Содержание

Программирование | Тесты с ответами

1. Алгоритм — это: 1) указание на выполнение действий+ 2) процесс выполнения вычислений, приводящих к решению задачи. – 3) система…

1.​ Какие элементы входят в состав рабочего интерфейса программы IBM Rational Rose? + Окно браузера проекта + Главное меню -…

1. Как правильно определить физический адрес сегмента данных. + MOV AX, @DATA — MOV DX, DATA — MOV AX, #DATA…

Содержание Перечень условных обозначений ………………………………………… .4 Введение ………………………………………………………………………… … 5 ГЛАВА 1 ОПИСАНИЕ предметной области ………………………………… .6 1.1. Общее описание…

. Укажите правильно организован цикл для обработки всех элементов массива, размерность которого n — For (int i = 1; i.

..

1. Что такое препроцессор? — Составная системного блока, предназначенная для обработки данных — Составная процессора, предназначенной для вычислений с плавающей…

Содержание Введение 5 1.Постановка задачи 6 2.Описание математической модели решения задачи 7 3.Блок-схема алгоритма 9 4.Описание алгоритма 13 5.Характеристика данных…

136. С помощью чего реализуется принцип полиморфизма в С ++? A. наличия множественного наследования. B. наличия виртуальных методов. + C….

116. Укажите оператор выбора в языке С ++. A. САSЕ B. choice C. switch … case + D. default 117….

16. Сколько узлов может содержать сеть класса В. A. 65534+ B. 16777214 C. 12347 D. 254 17. Укажите, какие классы…

Как отсеивать плохих программистов. 10 лучших автоматических инструментов проверки качества кода

Проверка технических навыков кандидатов — неотъемлемая часть IT-найма. Нужно хорошо отделить зерна от плевел. Можно сделать это заранее, посмотрев, пишет ли человек достойный код. Это умеют специальные инструменты, зачастую частично бесплатные. В этой статье мы собрали десять лучших из них.

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

Использование таких инструментов тестирования особенно полезно, когда проверка кандидата ведётся онлайн. У нас в Rubrain больше десяти тысяч разработчиков в базе, все уровня Middle и Senior. Это политика компании: не брать тех, кто ещё не научился писать хорошо. И автоматические сервисы экономят нам тысячи часов на веттинг кандидатов. Мы за несколько минут узнаем, если человек, который стучится к нам в двери, нам не подходит. Причем провести проверку может рекрутер или эйчар. На таком этапе ещё ни к чему подключать технических специалистов.

Онлайн-инструменты для проверки разработчиков

Платформы для тестирования качества кода генерируют тесты в соответствии с необходимыми вам техническими знаниями и опытом кандидата. Результаты этих тестов помогут вам решить, подходит ли такой кандидат команде вашего IT-проекта.

 

1. HackerRank

Платформа для технических собеседований, которая помогает своим клиентам находить и нанимать разработчиков с нужными им навыками. Среди её клиентов — PayPal, Atlassian, LinkedIn и многие другие.

HackerRank предлагает следующие продукты:

  • CodeScreen: позволяет работодателям оценивать навыки разработчиков, приглашая кандидатов участвовать в онлайн-тестах программирования.

  • CodePair: позволяет оценить способность кандидата решать проблемы и проверить его коммуникативные навыки с помощью парного онлайн-программирования в реальном времени.

  • Projects: кандидат выполняет реальную задачу, необходимую компании. Работодатель может оценить, способен ли он выполнять роль разработчика на проекте, и насколько комфортно ему в этой роли.

  • Insights: решение на основе искусственного интеллекта, которое помогает отслеживать прогресс ваших кандидатов во время тестов, и предлагает, как можно улучшить вашу воронку найма.

На HackerRank немало разработчиков, которые подают заявки на вакансии компаний. А они сразу же используют этот же сервис для проверки этих кандидатов. Но можно и приводить сюда своих программистов для теста. На 14 дней есть бесплатный триал, не нужно даже вводить информацию своей карточки. Дальше, в зависимости от того, сколько кандидатов вы планируете нанимать, можно платить от $250 до $600 за месяц. Есть также вариант $25 за месяц, но это только найм, без возможности устраивать автоматическую проверку кандидатов.

Вы можете выбрать задачу, которую создали в HackerRank, или написать свою собственную. Затем, когда кандидаты придут и решат задачи, вы сможете просмотреть их результаты, посмотреть на оценку и детальный отчет, сравнить друг с другом.

HackerRank создан как платформа для поддержки всей вашей воронки IT-рекрутинга. Они подбирают кандидатов, проверяют их квалификацию (резюме, рекомендации). И даже позволяют кандидатам улучшиться, натренироваться, решить некоторые проблемы с кодированием.

Поддерживает больше 40 языков программирования.

2. Codility

Codility — вторая по популярности онлайн-платформа для оценки технических навыков. Она состоит из двух компонентов:

  • CodeCheck — инструмент для проверки фундаментальных навыков программирования и технических знаний.

  • CodeLive — онлайн-комната для сотрудничества и написания кода с кандидатами на технических собеседованиях в режиме реального времени.

Платформу используют такие технологические гиганты, как Amazon, Microsoft, Slack, PayPal и Intel. Отлично подходит для больших компаний. Демо-версия бесплатная, стандартный пакет начинается от $6000 в год.

И Codility, и HackerRank не показывают кандидатам их результат. Они не знают, выполнили ли они задачи в целом лучше или хуже, чем другие претенденты. Правда, в HackerRank они видят, какие вопросы они провалили, и почему (неверный результат, слишком неэффективный код и т.д). У них появляется возможность улучшить код — исправить баги, поменять алгоритм. Поэтому HackerRank может также использоваться для тренировки кандидатов.

У Codility таких возможностей нет. Кандидату специально не показывают, что он выполнил неверно. Обычно там демонстрируют один тестовый пример, и дальше кандидат может проверять свой код только самостоятельно, не зная, всё ли верно, или нет. Как в реальной жизни.

Подробнее о других особенностях каждой платформы на английском можно почитать тут: разница между Codility и HackerRank.

3. Coderbyte

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

Coderbyte доверяют более 600 организаций, включая Shopify, AngelList, Zoom, HBO и Microsoft. Большинство переходят сюда с HackerRank, Codility или Coderpad. Чаще всего здесь проверяют на DevOps, бэкенд, фронтенд, Data Sicence. Здесь также нередко подбирают команду для разработки мобильных приложений.

Цены начинаются от $35 в месяц и идут до $499 в месяц. Можно также платить по $10 за каждого кандидата. Бесплатный триал — 14 дней (данные карты придется ввести).

4. CodeSignal

Платформа основана в 2014-м в Сан-Франциско. Раньше, до 2018-го, называлась CodeFights и была заточена на соревнованиях 1х1 между разработчиками. Сейчас позволяет проводить рекрутинг кандидатов и оценивать уровень их технических навыков. Свои силы здесь пробуют больше 1 млн разработчиков.

У CodeSignal есть три основных продукта:

  • Test — проверка знаний кандидата. Можно делать тесты самому или использовать стандартные наборы, предложенные системой. Они быстро проверяют наличие у кандидата навыков, необходимых для конкретной должности. Можно сразу узнать, нужны ли вам услуги такого программиста.

  • Interview — видеоинтервью в прямом эфире в расширенной среде совместного кодирования. Тоже используются созданные пользователем или заранее определенные тесты. Удобно, чтобы проверить, как человек вольется в состав команды разработчиков. Как он общается и реагирует на ситуации.

  • Certify — проверка качества и скорости кодирования, позволяющая быстро проверить любое количество программистов. Подходит для больших компаний, ежедневно сканирующих тысячи резюме. Дает рекрутерам возможность принимать объективные решения о приеме на работу. Отправляете задание кандидатам, и смотрите, кто может с ним справиться, и кого стоит приглашать на следующий этап собеседования.

Здесь есть такие функции как архив заданий (+ можно видеть программистов, которые их выполняли), портал для кандидатов, рассылка приглашений, групповые интервью, база данных с вопросами, запись собеседований, выставление оценок. Поддерживается 38 языков программирования.

CodeSignal предлагает предварительно записанные собеседования, где вопросы и задания постепенно выдаются кандидатам в режиме реального времени. Испытуемые могут даже не знать, что с другой стороны нет человека. Всё это активно используют большие компании, вроде Uber, Evernote, Dropbox, Asana, Quora, чтобы набирать программистов на позиции Middle и ниже.

В общем, у CodeSignal много плюсов, но есть и один большой минус: цена. За продукты нужно платить от $500 в месяц (или $5000 в год) с пользователя. Есть бесплатная версия и бесплатный триал. Их условия обсуждаются индивидуально, но обычно дают те же 14 дней.

5. СoderPad

Простая, минималистичная платформа, которая в первую очередь выступает как среда программирования. В одном окне можно писать и компилировать любой код (поддерживается более 30 языков и технологий). То, что делается, и какой результат выдается, видит как испытуемый программист, так и его рекрутер. Просматривать код и результаты можно как в режиме реального времени, так и потом, по записи (среда детально записывает каждое собеседование). Начать видеозвонок с кандидатом тоже можно прямо из вкладки браузера CoderPad, можно не заморачиваться с Zoom/Skype.

Тесты и вопросы придется придумывать самому (или подгружать с другой платформы). Но у CoderPad достаточно функций, которые выделяют среду среди конкурентов. В том числе:

  • возможность привлечь любое количество соавторов к документу;

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

  • функция записи и воспроизведения процесса написания кода — чтобы видеть не только конечный результат, но и то, как разработчик до него дошел;

  • приятная для работы онлайн-среда: подсветка синтаксиса, номера строк, отступы и так далее.

CoderPad активно используют Netflix, Slack, Shopify, Yelp, Twitch, AirBnB. Платить здесь нужно от 50 долларов в месяц (за 5 собеседований) до 750 долларов в месяц (100 собеседований, 50 аккаунтов для рекрутеров, масса других плюшек). Есть также вариант $1500 в месяц — для больших корпораций. В целом это пока один из самых бюджетных вариантов, хотя полностью автоматически качество кода он пока проверять не умеет.

Бесплатный триал короткий, всего 7 дней.

На Indie Hackers можно почитать интервью с основателем CoderPad — как он к этому пришел, в чём особенность технологии, какие планы на будущее, сколько выходит зарабатывать. Как обычно, начиналось всё с простого парня-программиста из Калифорнии и его пет-проекта. А выросло в миллионные доходы и международный успех.

6. ChallengeRocket

Здесь, наоборот, нет почти ничего, кроме проверки кода. Компания набирает кандидатов, и тестирует их, чтобы понять, подходят ли они компаниям. Разработчиков оценивает искусственный интеллект, вмешательство человека не требуется (разве что нужно выбрать или создать задания). Есть и просто случайные тесты, развивающие сообщество и позволяющие программистам немного размяться. Например, можно порешать задачи, дававшиеся на собеседовании 1960 года в IBM. Или решить один из старых вопросов от Google.

У ChallengeRocket есть следующие продукты:

  • Skill challenge: автоматически генерирует тест для кандидатов и потом оценивает их результаты (скорость и точность решения).

  • Creative challenge: расширенная версия, которая помогает работодателям находить скрытые таланты и продвигать инновационные идеи.

  • Hackathon: онлайн-конструктор хакатонов, которые также можно использовать в виде инструментов для отбора персонала.

Оплата берется в зависимости от числа нанятых специалистов (за одного платите максимум $79, минимум $12). За $350/месяц можно получить безлимитный вариант, плюс еще и любое количество разных испытаний для кандидатов.

В целом база крутых девелоперов у ChallengeRocket не такая большая, как у Kaggle, TopCoder или русского CodeForces. Но если вы ищете, где найти программистов для стартапа, или вам нужен персональный подход к задаче, ChallengeRocket будет неплохим и недорогим вариантом.

В числе клиентов сервиса — IBM, Nvidia и ING.

Бесплатный триал — 30 дней.

7. CodinGame

Тестирование разработчиков в более веселой среде — с помощью видеоигр! Здесь кандидаты отбиваются от врагов, бегают от монстров, собирают ресурсы по карте или избегают препятствий на гоночном треке. И всё это — за счет своих знаний любого из языков программирования.

Проходить такие челленджи — намного веселее, особенно группой или командой. Более крутой программист реально показывает, что он босс: только его персонаж выживает в игре, он буквально физически побеждает всех своих конкурентов. Результатами можно делиться в соцсетях, скриншоты получаются довольно эпические и эстетически приятные. Некоторые компании проводят такие конкурсы даже для существующих разработчиков — чтобы их развеселить, сделать совместный ивент, а заодно (незаметно) найти у себя слабые звенья.

На платформе есть около 1900 игр-задачек. Поддерживаются 42 языка/технологии. Один из больших плюсов — очень подробные и наглядные отчеты по результатам тестирования, показывающие слабые и сильные места кандидата.

Среди клиентов CodinGame — Facebook, Nintendo, Adobe, Bank of America, EA, Deloitte, Warner Bros.

Аккаунт для бизнеса стоит от €249 в месяц. Бесплатный триал — 14 дней.

8. Qualified

Сервис от CodeWars, сообщества инженеров-программистов, старающихся повысить свои навыки за счет соревнований друг с другом. Qualified позволяет оценить технические навыки кандидата, заставляя их решать проблемы, основанные на реальных проектах. Одна стандартная проверка разработчика занимает от 50 минут до 5 часов (в зависимости от языка), и включает в себя от двух до четырех задач.

Платформа поддерживает широкий спектр языков программирования и технологий, а также позволяет вам детально, по строкам проверять выполненные задания. Тесту квалификации Qualified доверяют такие компании, как Apple, Accenture, Domino’s и другие.

Доступ к сервису проверки кандидатов стоит от $150 в месяц за бизнес-аккаунт, но условия с ними нужно обсуждать индивидуально (если вы крупная компания — попросят больше). Бесплатный триал длится 14 дней. С ним можно получить до 5 оценок уровня сотрудников.

9. Quizful

Единственный русский сервис более-менее достойного уровня (есть ещё InTester, но там полно багов, а интерфейс внутри при прохождении тестов всё равно будет английский). Quizful подойдет, если у кандидатов (или рекрутера) с английским всё очень грустно, пользоваться гугл-транслейтом желания нет, а денег на детальную проверку кандидатов тоже жалко. При этом тесты здесь встречаются довольно сложные. Даже самые опытные специалисты в вашей команде разработки проекта правильно ответят далеко не на все вопросы по своей дисциплине.

В целом это сервис больше для программистов: здесь есть своё небольшое сообщество, проверяющее или улучшающее свои навыки. Вопросы создаются самими пользователями, и супер-продвинутым сайт не назвать. Работодатель со своей стороны прохождение тестов не видит, программисту нужно либо шарить экран, либо по окончании отсылать скриншоты. Но для подбора кого-то с фриланса на временный проект — сойдет. К тому же, здесь можно проверить уровень знания администрирования, дизайна, компьютерных сетей, английского и других смежных с IT дисциплин.

10. Codeassess

Codeassess существует уже двадцать лет. Это проект, созданный ExpertRating, компанией, проводящей онлайн-сертификацию сотрудников для таких гигантов как Walmart, Gap, UPS, IKEA, Citrix и тысяч других. Codeassess специализируется конкретно на разработчиках. Это первый в мире (в плане длительности существования) сервис, который занялся их онлайн-тестированием. Им предлагаются задачки-проблемы, и программистам, желающие получить статус эксперта, предлагается их решать. Помимо проверки навыков, можно также настроить виртуальное онлайн-собеседование с кандидатами.

Базовый план стоит всего $49 (он рассчитан на 15 тест-сессий, и включает только несложные проблемы, подходящие для джунов). Триала для бизнеса, к сожалению, нет. Ещё из минусов: поддерживает только 25 языков. Но все самые популярные есть, в том числе и Python (который почему-то не указан на главной странице).

Система опробованная, рекомендации рекрутеру выдает грамотные, и в целом западные стартапы, с которыми мы сотрудничаем, ей вполне доверяют. Нас нередко просят проверить наших специалистов на Codeassess, когда они нанимают человека с языком, который не понимают. Если проходит тест самого высокого уровня — значит, он и станет тем, кто потом будет проверять других.

К сожалению, общий минус онлайн-сервисов проверки программистов — большинство из них (особенно самые популярные) заботятся только о скорости и точности программирования. Они не ставят высокие оценки за написание понятного кода, который приятно потом читать человеку. Их не волнуют имена переменных, им не интересно, есть ли описания того, что делают те или иные фрагменты.

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

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

Краткая инструкция по тестирующей системе fsystem

Для входа в систему необходимо на сайте acm.petrsu.ru щелкнуть справа на ссылку «тестирующая система«. Далее нажать «вход в тестирующую систему«, откроется страница, в которой в поле «имя пользователя» ввести номер (логин), выданный вам заранее, и затем — пароль. В выпадающем списке «Контест» выбрать «Базовые задачи по основам программирования«(Если в имени не присутствует симола «@« то никакой контест выбитрать не надо). Нажать кнопку «вход«. Слева вы увидите ссылки:

  • Информация о контесте
  • Отправить решение
  • Результат тестирования
  • Положение команд
  • Сообщения

 

Если вы перейдёте по первой ссылке, вы получите список предложенных задач. Для каждой задачи написано максимальное ограничение на время работы программы (Time Limit ), максимальное ограничение на объём используемой памяти (Memory Limit) и ссылка на условие задачи.

Для отправки решения необходимо перейти по ссылке «Отправка решения«, в поле «Задача» выбрать задачу, решение по которой вы хотите послать, в поле «Компилятор» необходимо выбрать компилятор, который переобразует вашу программу в исполняемый файл (есть несколько компиляторов для разных языков программирования, так как вы пишите на языке С/C++, вам пока что достаточно выбирать Microsoft Visual C++ 2005), для передачи исходного кода, необходимо либо вставить написанный вами код в поле «Исходный код«, либо выбрать файл с исходным кодом в поле «Файл с исходным кодом«, затем нажать отправить.

После отправки задачи, страница автоматически перейдёт на страницу по ссылке «Результат тестирования«. Здесь отображается журнал ваших посылок, по каждой задаче написан контест, в котором вы отправили задачу, ваш логин, время отправки решения, написан номер задачи, название компилятора в сокращенном виде, вердикт к решению, номер теста, максимальное время работы вашей программы и максимальный использованный объем памяти. Вердиктов по задаче бывает несколько, только один из них указывает на ваше верное решение.

Вердикты:

  • NT — (Not Tested) ваше решение отправлено, но ещё не встало в очередь на тестирование.
  • CO — (Compilation Operation) выше решение компилируется.
  • CE — (Compilation Error) ваше решение не компилируется на данном компиляторе (в поле Compiler указано под каким компилятором вы послали задачу).
  • RU — (Running) решение отправлено, но ещё не протестировано до конца, либо находится в очереди на тестирование.
  • OK — (OK) решение прошло все тесты и считается зачтенным.
  • FT — (Failed Test) произошла ошибка системы связанная с этой задачей, возможные варианты такой ошибки:
    1) Ваше решение «лучше», чем решение жюри 🙂
    2) Жюри забыло положить файл, для проверки решения жюри с вашим решением, такой файл называется «чекер» (checker).
  • WA — (Wrong Answer) ваше решение получает неверный ответ на некотором тесте, тест указывается в поле «Test#». Решение не зачтено.
  • PE — (Presentation Answer) ошибка представления ответа, тест указывается в поле «Test#». Решение не зачтено. (Очень часто можно расценивать как WA) Возможные причины получения ошибки:
    1) Неправильный формат вывода (требовалось строку выдали число, или наоборот)
    2) Выведено значение не из того диапозона
    3) Вообще ничего не выведено. 
  • RE — (Run-Time Error) ошибка времени выполнения, также написан тест на котором это произошло. Возможные причины получения такой ошибки:
    1) Ваше решение выходит за пределы выделенной памяти (за пределы массива, переход по несуществующим указателям, освобождение не существующей памяти)
    2) Переполнение аппаратного стека. Например, у вас используется рекурсия. Как известно, для поддержки рекурсии промежуточные данные в функции запоминаются в стеке, а по возвращении восстанавливаются, в случае если количество шагов рекурсии очень большое, то памяти стека не хватит, поэтому программу может «вылететь», то есть не корректно завершится. Решение не зачтено.
  • TL — (Time Limit Exceeded) превышено время выполнения, тест, на котором это произошло, указан в поле «Test#«. По каждой задаче указано максимальное время работы на каждом тесте, выше решение превысило это ограничение. Решение не зачтено.
  • ML — (Memory Limit Exceeded) превышен объем используемой памяти, тест, на котором это произошло, указан в поле «Test#«. По каждой задаче указано максимальный допустимый объем используемой памяти на каждом тесте, выше решение превысило это ограничение. Решение не зачтено.
  • AC — (ACcepted for manual validation) решение прошло все тесты, однако ожидает ручной проверки (например на правильность стиля кодирования).
  • SV — (Style Violation) решение прошло все тесты, но не прошло ручную проверку (например стиль кодирования неверный).

 

На странице «Сообщение« выможете увидеть окончательные ответы системы по вашим решениям. Сообщение посылается системой автоматически по каждому посланному решению. В ответе к решению написано в начале по какой задаче высылается сообщение, номер посылки решения по задаче и развернутая форма вердикта. Если задача зачтена, то вердикт будет содержать фразу «Accepted». На этой же странице можно посылать вопросы жюри. Жюри так же может вам посылать ответ.

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

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

Тесты по информатике и информационным технологиям, языку Паскаль и Excel

Тесты по информатике и информационным технологиям, языку Паскаль и Excel

Тесты по информатике и информационным технологиям,
языку Паскаль и Excel.
Базовый уровень

 

 

  18.

В какой последовательности расположатся записи в базе данных после сортировки по возрастанию в поле
Память
?

  1, 2, 3, 4  
4, 3, 2, 1
4, 1, 2, 3
2, 3, 4, 1

 

Здесь будет выведен результат

© Тест по ИиИТ разработан в МИОО

Тест по языку программирования Паскаль

Тест по Excel

Тест по языку HTML и созданию веб-страниц

Тест «Компьютерные телекоммуникации»

ОЗНАКОМИТЕЛЬНЫЙ ВАРИАНТ ЕГЭ ПО ИНФОРМАТИКЕ

ЕГЭ по информатике Демо-2007 с решением

ЕГЭ по информатике Демо-2008 с решением

Тесты по ИиИТ учителя информатики В. А. Николаевой

Тесты по информатике П.С. Батищева

Тесты по информатике

Тесты по информатике с ответами

Тестовые задания по теме «Алгоритм и его свойства» с ответами

Скачать тесты по информатике САО (zip 70 Кб)

Задачи о количестве информации >>


Webmaster: Львовский М.Б.


Вопросы-головоломки на собеседованиях с ответами. Часть 1 — Work.ua

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

Соискателям, столкнувшимся с головоломками в процессе собеседования, не стоит паниковать и теряться. Как правило, в большинстве случаев достаточно показать ход ваших мыслей и пути решения поставленной задачи. Вполне может быть, что у задачи и нет правильного решения или однозначного ответа. Ни в коем случае нельзя говорить «я не знаю» или «затрудняюсь ответить», просто размышляйте вслух.

Чтобы вы знали к чему быть готовыми и не растерялись, Work.ua собрал самые популярные вопросы-головоломки и подготовил ответы и рекомендации к ним. Кто знает, может вам попадутся именно эти задачи.

Все эти головоломки могут вам задать при собеседовании на вакансию программиста php.

Канализационные люки

Это, пожалуй, самый распространенный вопрос среди всех головоломок.

Вопрос: Почему канализационные люки круглые?

Ответ: Есть несколько вариантов. Так как диаметр круга одинаков, как его не крути, то круглый люк не может провалиться в колодец. У квадрата же, например, диагональ больше его сторон, поэтому крышка могла бы упасть. Также можно ответить, что круглые люки проще транспортировать и передвигать.

Лампочки

Вопрос: В закрытой комнате есть 3 лампочки, а в коридоре 3 выключателя. За какое минимальное открытие дверей можно определить какой выключатель к какой лампочке относится?

Ответ: За одно открытие. Включаем одновременно 2 выключателя, через некоторое время выключаем второй. Заходим в комнату: одна из лампочек осталась гореть — это первый выключатель, далее щупаем оставшиеся лампочки — теплая и будет вторым выключателем, а холодная соответственно третьим.

Торт

Вопрос: Как разделить торт на 8 равных частей тремя разрезами?

Ответ: Сперва нужно сделать 2 разреза крест на крест, поделив торт на 4 равных части. А затем разрезать торт горизонтально пополам. Ну и что, что куски стали невысокие, зато у вас 8 равных частей. Еще можно после первых двух разрезов сложить кусочки друг на друга и переполовинить одним разрезом.

Мертвый человек и спичка

Вопрос: Среди поля найден мертвый человек со спичкой в руках, следов нет. От чего он умер и при каких обстоятельствах?

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

Автобус и мячи

Вопрос: Сколько теннисных мячей поместится в автобус?

Ответ: Точного правильного ответа не знает и сам рекрутер, так как не уточняется, что за мячи и автобус — их размеры не известны, и никто досконально это не проверял. Поэтому тут важен ход ваших мыслей, вы можете только предположить. Назовите примерные длину, ширину и высоту автобуса, размеры одного мяча. Посчитайте объем автобуса и мяча — так вы узнаете сколько мячей поместится в пустой автобус. Уменьшите примерно это значение с учетом сидений и других деталей автобуса, сделайте поправку на то, что мячи не квадратные и дайте ответ. В этом случае процесс поиска ответа важнее самого ответа. Варианты вопроса могут быть разные: мячи — футбольные, вместо автобуса — комната и т.п.

Таблетки

Вопрос: Доктор выдал пациенту 4 таблетки двух видов — по 2 таблетки каждого, которые нельзя отличить по внешнему виду. Таблетки надо выпить за два приема: утром по одной таблетке каждого вида и так же вечером. Если нарушить дозировку или не принять таблетки, то пациент умрет. Так вышло, что таблетки перемешались. Как пройти курс лечения и выжить?

Ответ: Конечно, можно сказать, что лучше пойти к врачу и попросить еще, все таки вопрос жизни и смерти. Но это могут быть единственные таблетки на Земле, доктор может исчезнуть при загадочных обстоятельствах и т.д. Так что ответить все же придется. К тому же все достаточно просто: нужно разделить каждую таблетку на 2 части и выпить по половинке каждой таблетки утром и вечером.

В заключение

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


Читайте также: Вопросы-головоломки на собеседованиях с ответами. Часть 2



Чтобы оставить комментарий, нужно войти.

Российские программисты «долго запрягают, но быстро едут»

| Поделиться

Аналитики компании Crossover for work, специализирующейся на предоставлении услуг ИТ-специалистов международным корпорациям, проанализировали данные вступительных тестов, выполненных программистами из 80 стран, и выяснили, что российские программисты полностью соответствуют национальному стереотипу «русские долго запрягают, но быстро едут». Так, среди программистов из топ-15 стран они — на последних местах по срокам выполнения тестовых заданий, но на первых местах — по качеству ответов, сообщили CNews в Crossover for work.

В ходе исследования были проанализированы результаты 69 470 вступительных тестов, пройденных соискателями Crossover for work в сфере ИТ в 2015 г. Тестирование проходит в два этапа. Сначала кандидаты проходят один из тестов HackerRank, который тестирует базовые навыки ИТ-специалиста и оценивает экспертизу в области ИТ. Задания варьируются в зависимости от вакансии (от выбора ответов среди предложенных до разработки документов по решению бизнес-задач). Например, на позиции главного архитектора важны и навыки мышления, и развитые коммуникационные навыки, поэтому существенной частью задания будет составление описательного документа. Ответы на все вопросы обычно занимают в пределах 60 минут. Из 69 470 кандидатов вступительный тест HackerRank прошли только 10 610 программистов (то есть только каждый седьмой соискатель).

Кандидатам, прошедшим тест HackerRank, дается задание Tech Trial — написать программный код. Это задание позволяет уже полноценно определить готовность кандидата выполнять задачи, поставленные клиентами Crossover for work. В рамках теста Tech Trial кандидаты получают бизнес-задачу, которую надо решить, написав прототип фрагмента программного продукта. Задача включает в себя разработку программного обеспечения (software development) и документа, описывающего решение задачи согласно приложенному шаблону (design document), и демонстрацию прототипа в работе (видеозапись презентации работы программы на экране монитора).

Из 69 470 кандидатов тест Tech Trial успешно прошли только 522 человека из 10 610, то есть только каждый 20, или менее 1% из всех 69 тыс. кандидатов.

Анализ результатов успешных кандидатов показал, что у кандидатов из разных стран весьма разнятся показатели среднего балла и среднего времени выполнения заданий. Например, кандидаты из США быстрее остальных выполняют тест HackerRank (в среднем 41 минута), но они — на 10-м месте по среднему баллу по этому тесту (97 баллов). А украинские специалисты справляются с заданием HackerRank в среднем дольше всех (165 мин), но при этом их результаты (в среднем 95 баллов) лучше чем у кандидатов из Бангладеша, которые выполняют HackerRank в среднем за 50 минут, но средний балл у них ниже (в среднем 93). При этом по тесту Tech Trial, например, украинские специалисты показали не только самое быстрое время (в среднем 60 часов), но и один из лучших результатов (77 баллов, 3 место).

Илья Зуев, «Райффайзен банк»: Передовые технологии не помогут, если в ИБ-процессах отсутствуют качество и полнота

ИТ в банках

Любопытно, что анализ результатов успешных кандидатов из России подтвердил известное выражение «Русские долго запрягают, но быстро едут». По скорости выполнения заданий российские специалисты находятся на 13 месте по тесту HackerRank и на 10 месте по тесту Tech Trial. Но по уровню результатов они находятся на 2 месте по тесту HackerRank и на пятом месте по Tech Trial тесту.

«Эти результаты показывают, что российские программисты более вдумчивые, чем многие специалисты из других стран. Качество для них важнее скорости. Это также очень важно для наших международных заказчиков», — прокомментировал результаты исследование управляющий директор Crossover for work в России и СНГ Петр Тарасевич-Николаев.

Татьяна Короткова

Конструктор тестов, квизов, викторин и опросов Madtest. Создать тест бесплатно

Мы в Центре защиты прав СМИ* давно искали сервис для создания образовательных тестов, который был бы с одной стороны надежным, а с другой — не очень дорогим. Предыдущий ресурс, на котором мы делали тесты для аудитории нашего сайта, вдруг стал стоить, как крыло самолета, платить огромные деньги за функции, которые нам не особо нужны, мы не очень хотели. Поэтому я очень рада, что коллеги посоветовали Madtest.

Инструмент очень продуманный. В нем есть все, что нам было нужно: начиная от возможности менять оформление, настраивая нужные цвета, и заканчивая возможностью собирать и анализировать статистику. Особо отмечу, что в сервисе можно вставлять призыв к действию, причем не один, а разные, в зависимости от того, какой результат показал пользователь. Мне кажется, что очень удобно, что призыв к действию может содержать как ссылку, так и форму сбора контактов (мы пока выбрали этот вариант).

Интерфейс сервиса — интуитивно понятный, разобраться с первого раза сможет даже человек, который никогда не работал с подобными инструментами. Создать тест можно с нуля (это вообще не трудно), а можно использовать уже готовый шаблон. Можно настроить время прохождения теста, то, как он отображается на сайте, добавить комментарии к правильным и неправильным ответам. В общем, есть все, что нужно, если вы создаете развлекательные или образовательные тесты.

Мы выбрали тариф «Базовый», в нем есть ограничения по числе доменов, на которые можно вставлять тест. Несмотря на это, техподдержка пошла на встречу и убрала это ограничение, разрешив использовать тесты и на некоторых других наших площадках. Кстати, о техподдержке — получить консультацию, если что-то непонятно, можно буквально в течение нескольких минут, не нужно ждать часами, что суперудобно.

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

*признан НКО, выполняющим функции иностранного агента.

Базовый тест по программированию

Базовый тест по программированиюВернуться к указателю активности

Заполните форму ниже и нажмите кнопку [Написать инструктору], чтобы напишите свои ответы преподавателю.

Административная информация

Пожалуйста, выберите вашу группу из списка: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Имя капитана:

Электронный адрес капитана:

Имя регистратора:

Электронный адрес регистратора:

Имя рефлектора:

Электронный адрес рефлектора:


Словарь

Выберите лучший ответ на каждый вопрос ниже:
  1. ввод/вывод.
    1. Получение данных в и из компьютера
    2. Независимые операции
    3. Интерактивные операции
  2. Переменные.
    1. Именованные места хранения
    2. Названия мест хранения
    3. Места хранения, которые могут содержать что угодно
  3. Типы переменных.
    1. Именованные места хранения
    2. Названия мест хранения
    3. Допустимое возможное содержимое для мест хранения
  4. Приоритет.
    1. Порядок появления утверждений
    2. Порядок, в котором происходят вычисления
    3. Порядок, в котором происходит компиляция

Вопросы для критического мышления

  1. Какой результат вы получите из утверждения:
        cout << "H" << "el" << 'l' << 'o' << endl;
     
    1. Привет
    2. Здравствуй
    3. "H" << "el" << 'l' << 'o' << endl
  2. Какой результат вы получите из утверждения:
        cout << "0. 500 = " << 0,500 << endl;
     
    1. 0,500 = 0,500
    2. 0,5 = 0,5
    3. 0,500 = 0,5
  3. В чем разница в выводе между сегментами программы слева и справа:
        cout << "Строка 1\nСтрока 2\n"; cout << "Строка 1\n";
                                          cout << "Строка 2\n";
     
    1. Все печатается в одной строке левым отрезком, на двух отдельных линиях справа.
    2. Левый сегмент разделяет две строки одинарным пробелом, правый сегмент двойные пробелы между ними.
    3. Нет никакой разницы.
  4. В чем разница в выводе между кусками программы на слева и справа:
        cout << "Строка 1\n"; cout << "Строка 1" << endl
        cout << "Строка 2\n"; << "Строка 2" << endl;
     
    1. Левый сегмент разделяет две строки одинарным пробелом, правый сегмент двойные пробелы между ними.
    2. Нет никакой разницы.
    3. Сегмент справа не будет компилироваться: cout пропал, отсутствует.
  5. Что вы должны получить из заявления:
        cout << "\a" << "Привет" << "там" << endl;
     
    (Не работает на ПК, но работает на Unix.)
    1. Программа пишет на экране \a Всем привет
    2. Программа пишет на экране \aHithere
    3. Программа пишет на экране Сюда и компьютер пищит.
  6. Почему программа справа намного лучше, чем та, что на левый:
        #include  #include 
        недействительным основным (недействительным) { недействительным основным (недействительным) {
           в а; в а;
           ... интервал б;
           интервал б; ...
           ... ...
           а=1; а=1;
           б=3; б=3;
           cout << a+b << endl; cout << a+b << endl;
           ... ...
        } }
     
    (Точки обозначают множество других утверждений, которые не важны.)
    1. Все объявления переменных должны быть в начале.
    2. Кому-то проще узнать о такой переменной как b, если все объявления сгруппированы вместе.
  7. Что явно не так (кроме неаккуратности):
        #include 
        недействительным основным (недействительным) {
        число пи;
        ...
        пи = 3,141593;
        ...
        }
     
    1. В конце должна стоять точка с запятой включить строку.
    2. Оператор присваивания pi = 3,141593; рухнет.
    3. Для переменной pi установлено значение 3, а не 3,141593.
  8. Почему программа слева намного лучше, чем та, что на правильно:
        #include  #include 
        недействительным основным (недействительным) { недействительным основным (недействительным) {
           поплавок пи = 3.141593; число пи с плавающей запятой;
           .... ....
           .... пи = 3,141593
           .... ....
           площадь = pi*r*r площадь = pi*r*r
           .... ....
     
    1. Легче проверить, была ли переменная pi задано правильное значение.
    2. Компьютеры не могут хранить много строк кода. Вы беспокоитесь о каждую строку.
    3. Если мы присвоим пи значение раньше, оно обязательно будет получили значение к тому времени, когда мы достигнем области= утверждение.
  9. Почему комментарий слева намного лучше, чем тот, что слева? правильно:
        #include  #include 
    
        недействительным основным (недействительным) { недействительным основным (недействительным) {
           // Объявления: // Объявления:
    
           // Определяем число пи: float pi = 3.141593; // число пи определено
           число с плавающей запятой пи = 3,141593; ....
           .... ....
     
    1. Вы не можете оставлять комментарии после утверждений, они должны быть включены. отдельные строки.
    2. К моменту, когда читатель прочитает комментарий в программе на верно, он либо озадачен, либо уже понял заявление из себя.
  10. Кому могут быть полезны ваши комментарии ваша программа?
    1. Вы прямо сейчас.
    2. Вы, когда пытаетесь повторно использовать программу через год.
    3. Кто-то, кто хочет использовать вашу программу, но не знает именно то, что он делает.
    4. Кто-то, кто хочет изменить вашу программу для аналогичной задачи.
    5. Все вышеперечисленное.
  11. Можете ли вы хранить сколь угодно большие целые числа в int? В длинном интервале?
    1. да. да.
    2. Нет, есть ограничения по размеру. да.
    3. Нет. Нет, но вы можете хранить большие целые числа.
  12. Можно ли хранить сколь угодно большие действительные числа в вещественном числе? В двойке?
    1. да. да.
    2. Нет, есть ограничения по размеру. да.
    3. Нет.Нет, но, возможно, вы можете хранить большие действительные числа.
  13. Можете ли вы хранить сколь угодно точные числа с плавающей запятой, такие как как $\pi$ или $\sqrt 2$ в поплавке? В двойке?
    1. да. да.
    2. Нет, существуют ограничения на количество цифр после первый ненулевой, который будет сохранен. да.
    3. Нет. Нет, но вы можете сохранить больше цифр.
  14. Что вы получаете от:
        cout << "3*3 = " << 3*3 << endl;
     
    1. 3*3 = 3*3
    2. 9 = 9
    3. 3*3 = 9
  15. Что вы получаете от:
        плавать а; ...; а=1,5; cout << a << endl;
     
    1. 0
    2. 1
    3. 1,5
  16. Что вы получаете от:
        в а; ...; а=1,5; cout << a << endl;
     
    1. 0
    2. 1
    3. 1,5
  17. Что вы получаете от:
        cout << ".33 = " << 1/3 << endl;
     
    1. .33 = 0
    2. 0,33 = 0,33
    3. .33 = .3333333
  18. Что вы получаете от:
        cout << ".33 = " << 1./3 << endl;
     
    1. .33 = 0
    2. 0,33 = 0,33
    3. . 33 = .3333333
  19. Что вы получаете от:
        cout << "Большой: " << 300000*300000 << endl;
     
    1. Большой: 300000*300000
    2. Большой:

      000000

    3. Ни один
  20. Что вы получаете от:
        cout << "9 = " << 1+2*3 << endl;
     
    1. 9 = 1+2*3
    2. 9 = 9
    3. 9 = 7
  21. Что вы получаете от:
        cout << ".25 = " << 1./2.*2. << endl;
     
    1. .25 = 1./2.*2.
    2. 0,25 = 0,25
    3. .25 = 1.
  22. Что вы получаете от:
        cout << "1 = " << 1./2./2. << конец;
     
    1. 1 = 0
    2. 1 = 0,25
    3. 1 = 1.
  23. Что вы получаете от:
        инт я; ...; я=1; cout << i++; cout << i << endl;
     
    1. 11
    2. 1 1
    3. 12
  24. Что вы получаете от:
        инт я; ...; я=1; cout << ++i; cout << i << endl;
     
    1. 11
    2. 2 1
    3. 22
  25. Что происходит во время выполнения:
        интервал я, j; . ..; цин >> я >> j;
     
    1. Программа выводит ij.
    2. Программа выводит значения переменных i и Дж
    3. Программа ждет, пока вы наберете ij.
    4. Программа ждет, пока вы наберете i j.
    5. Программа останавливается на операторе cin, пока вы не введите два целых числа с клавиатуры.Он хранит их в переменные i и j.

Оценки

Назовите две сильные стороны вашей группы:

Укажите две области улучшения вашей группы:

Приведите два полученных мнения о вашей группе:

Укажите две сильные стороны класса:

Укажите два направления улучшения класса:

Дайте два представления о классе:


Представление

Когда все в порядке, нажмите кнопку Mail to Instructor .Кнопка Сбросить очистит все поля.
Вернуться к указателю деятельности

Кодирование вопросов и ответов для интервью

Вы кандидат?

Сокрушите свое интервью с нашим гидом

Как использовать вопросы по программированию для тестирования кандидатов

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

Если задать слишком много технических вопросов на собеседовании по программированию, кандидаты могут растеряться. Во время собеседования по программированию сосредоточьтесь на конкретных языках, которые вы хотите протестировать, исходя из ваших потребностей. Например, выберите между вопросами собеседования по кодированию Java и вопросами собеседования по кодированию Python в зависимости от роли, на которую вы нанимаете.

На все инженерные должности ищите кандидатов, сочетающих академическое образование в области компьютерных наук с опытом работы в сфере ИТ. Следите за кандидатами, которые увлечены кодированием и могут найти обходные пути для проблем с кодированием. Бонусные баллы для кандидатов, которые идут в ногу с последними разработками в области кодирования и технологий.

Общие вопросы для собеседования по программированию

  • Опишите процесс написания фрагмента кода от требований до поставки.
  • Какие инструменты вы использовали для проверки качества кода?
  • Как можно отлаживать программу во время ее использования?
  • Какой ваш любимый язык программирования и почему? Какие функции (если есть) вы хотели бы добавить в этот язык?
  • На что вы больше всего обращаете внимание при просмотре чужого кода?
  • Как вы остаетесь в курсе последних технологических разработок?

Дополнительные примеры см. в нашем полном списке вопросов для интервью по программированию.

Вопросы на собеседовании по программированию на Java

  • Чем исключения среды выполнения отличаются от проверенных исключений?
  • Зачем использовать фабрику объектов и как бы вы реализовали шаблон Singleton?
  • Возможно ли это в Java? «А расширяет В, С»
  • В чем разница между String, StringBuilder и StringBuffer в Java?

Дополнительные примеры см. в наших полных списках вопросов для собеседования с разработчиком Java или в списках вопросов для собеседования с инженером-программистом Java.

Вопросы на собеседовании по программированию на Ruby

  • Какая польза от load и require в Ruby?
  • Объясните каждый из следующих операторов и как и когда их следует использовать: ==, ===, eql?, equal?
  • Что такое модуль? Можете ли вы сказать мне разницу между классами и модулями?
  • Какие ваши любимые драгоценные камни?

Дополнительные примеры см. в нашем полном списке вопросов для интервью с разработчиком Ruby.

Вопросы на собеседовании по программированию на Python

  • Почему в Python функции считаются объектами первого класса?
  • Можете ли вы объяснить циклические зависимости в Python и возможные способы их избежать?
  • Приведите пример фильтрации и редукции итерируемого объекта.
  • Можете ли вы объяснить использование/преимущество генератора?

Дополнительные примеры см. в нашем полном списке вопросов для собеседования с разработчиком Python.

Вопросы на собеседовании по кодированию .NET

  • Что такое класс WebSecurity в .NET? Каково его использование?
  • В .NET атрибуты — это метод связывания декларативной информации с кодом C#. Пожалуйста, опишите, как они используются и правильный вариант использования.
  • Как лучше всего передать переменные конфигурации в ASP.NET-приложения?
  • Возможно ли в .NET расширить класс (любой класс) некоторыми дополнительными методами? Если да, то как это можно осуществить?

Дополнительные примеры см. в нашем полном списке вопросов для интервью веб-разработчика .NET.

Вопросы на собеседовании по программированию на PHP

  • Если вам нужно генерировать случайные числа в PHP, какой метод вы бы выбрали?
  • В чем разница между функциями include() и require()?
  • Объясните, как вы разрабатываете и интегрируете плагины для фреймворков PHP, таких как Laravel и Yii.
  • Как получить информацию о веб-браузере с помощью PHP?

Дополнительные примеры см. в нашем полном списке вопросов для интервью с разработчиком PHP.

Вопросы на собеседовании по кодированию HTML/CSS

  • Можете ли вы описать разницу между строчными и блочными элементами?
  • Почему рекомендуется размещать CSS между и JS