Напишите метод, генерирующий случайную последовательность m целых чисел из массива размером n. Даны два слова или фразы, и ваша задача — проверить, являются ли они анаграммами. Предложите алгоритм поиска в односвязном списке k-го элемента с конца. Список реализован вручную, есть только операция получения следующего элемента и указатель на первый элемент.
Напишите функцию, определяющую количество битов, которые необходимо изменить, чтобы из целого числа А получить целое число B. Самые популярные задачи с IT-собеседований — более 100 логических задач, IT-кейсов и заданий по разработке для профессиональных программистов (с ответами!). Не забывайте быть самим собой, задавать вопросы и проявлять инициативу.
В зависимости от требований к кандидату как к профессионалу, руководителю или члену команды, вопросы разбиты на соответствующие блоки. Рекомендую показать эти скиллы с помощью авторских статей. Так вы продемонстрируете свои коммуникативные навыки и умение обращаться со словом. https://deveducation.com/ Я просто пищу от кандидатов, у которых есть блог или проект, связанный с их работой. Например, вы претендуете на должность senior-разработчика. Стандартное требование тут — опыт наставничества джунов и вообще умение доступно объяснять коллегам сложные вещи.
В будущем планируется внести изменения в программу, где вместо 30-минутных блоков будут минутные, как это реализовано в представлении Unix-времени. С учетом этого изменения нужно, чтобы ваша функция уже сейчас могла работать с большими числами. Еще не забудьте, что кортеж — это такой тип данных, в котором содержимое переменной невозможно изменять после ее создания. На первый взгляд эта задача кажется довольно сложной, особенно если вы не эксперт в C++.
На прямой даны N отрезков (в реальной жизни это могут быть промежутки времени, например), которые заданы координатами их левого и правого конца. Для каждого данного отрезка необходимо узнать, сколько из данных отрезков полностью находятся в нем. Предложите как можно более эффективный способ решения этой задачи. Гарантируется, что все концы данных отрезков различны. Задачи на прикидку, то есть подразумевающие приближенное решение — популярный класс задач, которые предлагают на собеседованиях в IT компании. Предлагаем вам несколько таких задач, а также рассказ об общих методах их решения и конкретные советы для собеседований.
Крупные компании отказались от этих вопросов, но никто не застрахован. Посмотреть список наиболее распространенных и порассуждать над ними в домашнем кругу или, например, в сообществе Хекслета. Одни и те же люди, проводят каждое собеседование немного по разному. Очень многое зависит от того, в какую сторону пойдет диалог, какие ошибки совершит собеседующийся и куда приведут его размышления. Более того, даже в рамках одной специализации, разные компании могут спрашивать абсолютно разные вещи.
Напишите функцию суммирования двух целых чисел без использования «+» и других арифметических операторов. Первое, что нужно иметь ввиду, это то, что нельзя наблюдать за самим диском. Например, вы сидите в офисе, а диск вращается в закрытой лаборатории. Единственная возможность портфолио программиста определить направление вращения — использовать оцифрованные показания датчика, и ничего больше. Это классическая google-задачка, хороший разбор которой в рунете не так-то просто найти. Абсолютного правильного ответа нет, но есть те, которые явно лучше остальных.
Практических задач, которые могут просить решить hr-специалисты на собеседовании, много. Вот ещё список из 123 практических задач для собеседования программистов, которые «любят» задавать. Практикуйтесь в свободное время и читайте, как их можно решить.
Однако, чтобы убедить потенциального работодателя или клиента в своей компетентности, необходимо предоставить примеры своей работы и проектов. Здесь нужно отметить, что при ближайшем рассмотрении условие задачи оказывается некорректным. Во-первых, шасси вращаются с угловой скоростью, а лента с линейной, поэтому их сравнение некорректно.
Научитесь проходить задачи уровня easy с закрытыми глазами. Этот навык поможет не только для прохождения собеседований, но и в реальном программировании. Эти задачи показывают насколько у интервьюируемого хорошо с логикой, алгоритмическим мышлением, как он владеет базовыми конструкциями языка. Они позволяют отсеять слабых кандидатов, но не помогают определить сильных.