Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Поиск натуральных чисел на SQL

2016-08-08 16:11:12 / Программирование

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

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

Интересно еще твое мнение, что ты думаешь о таком задании и что оно говорит о том программисте, которого тестируют.


Комментарии

Сергей

задача очень проста в решении
сделано через Хранимку

2016-08-08 17:23:37

Сергей

месяц назад решил такую задачу. через Процедуру. показать код?

2016-08-08 17:24:35

СкульРидер

-- Тут тебе и в консольку вывод и если нужно в таблицу с последующим селектом. Вывод для примера до 50

CREATE TABLE #Numbers(
[id] [int] IDENTITY(1,1) NOT NULL,
[Number] [int] NOT NULL
)
GO

DECLARE
    @i INT,
    @a INT
    
SET @i = 50
SET @a = 1
WHILE (@a <= @i)
            BEGIN
                PRINT @a
                INSERT INTO #Numbers (Number) VALUES (@a)
                SET @a = @a + 1
            END
GO

SELECT Number FROM #Numbers
GO

DROP TABLE #Numbers

2016-08-09 02:54:47

СкульРидер

-- Ну или для совсем ленивых
CREATE TABLE #Numbers([id] [int] IDENTITY(1,1) NOT NULL)
GO

INSERT INTO #Numbers default values
GO 50

SELECT ID FROM #Numbers
GO

DROP TABLE #Numbers
GO

2016-08-09 02:59:04

Test

Чушь собачья такие задания. Помню собеседовался в конторе которая использует для работы исключительно CMS, с нуля сами не делают. Пишут, как я понял, чисто сайты. Собеседование было тупо по основам .NET и C#, я бы на эти вопросы ответилбы даже до того как начал работать с C#. Просили показать пример когда, я прислал тестовое задание за пару дней до собеседование которое когда-то делал в другую контору на Entity Framework, async/await, ASP.NET MVC, WebAPI, AngularJS, Bootstrap, но им этого было мало, сразу после собеседования впарили 3 мини задания ещё - одно посчитать факториал, второе что-то вроде валидации числа, а третье было более математическим надо было понять что делает код, я в итоге не понял, так как не спец в математике, в ответе на задание сказали, что оно делает "Values are the same but the distribution is changed". Так вот вопрос нафиг было давать дополнительные задания, если я прислал тестовое неплохое, отлично отвечал на вопросы, ещё и вопросы с математикой от людей которые вообще кроме своих CMS ничего не используют, наверное без них сами и сайт не напишут. В общем в итоге они предложили работу, но я отказался.

2016-08-09 03:53:57

Юра

По идее, рассчитано на знание SQL (вполне возможно, что у той компании много всяких legacy БД с кучей хранимых процедур и т.п.).

А вообще, задание классное. И есть возможность его не просто сделать, а выпендриться перед потенциальным работодателем, например, задействовав хак конкретной СУБД, который сгенерирует числа без лишних усилий (это как вычислять факториал в C++ на этапе компиляции...). Но даже если придеться писать свою функцию, то можно не просто накодить, но и сделать проверки на граничные значения, написать тесты для функции (на Python, к примеру), и все это запускать на In-Memory БД.

2016-08-09 04:27:34

Dmitry Romanenko

Судя по всему вся фича в использовании функций и процедур из-за их возможности поддержки циклов. А дальше почти тоже самое как на других языках.

2016-08-09 07:53:48

Александр

Это задачка на хорошее знание циклов, хотя доводилось видеть на sql вывод фрактала мандельброта. Возникает лишь вопрос. А зачем оно надо?

2016-08-09 22:56:52

Евгений

Если программист, которого тестируют успешно справился с заданием, то вероятно он недавно закончил учебное заведение и помнит свойства натуральных чисел, а если не справился, то "школьные задачки" для него в далеком прошлом и если бы он открыл справочник по математике, то тоже скорее всего бы справился. Ценность этого задания - никакая. И вообще все эти тесты являются проявлением недоверия к опыту работы соискателя, если он у него конечно есть. Ну а если нет, то можно и потестировать. Сколько у нас к конторе не пытались проводить тесты для соискателей никто не мог в полной мере ответить на большинство вопросов. Вероятно из-за стресса и академического характера такого подхода. Однако испытательный срок эту погрешность всегда исправляет. Кто-то уходил, а кто-то вполне успешно работал долгое время, несмотря на то, что тест то он прошел не особо хорошо.

2016-08-10 06:59:40

Оставить комментарий


Умеешь пользоваться BB кодами? Прекрасно, здесь можно использовать [quote] для цитирования, а так же [b] и [i]. Остальные коды пока использовать запрещено. Я думаю по поводу их использования. В комментариях нельзя выяснять крутость каких-либо продуктов, нужно уважать собеседников и не грубить и нельзя ничего додумывать (читайте мои посты внимательно). Нарушение этих простых правил ведет к удалению комментариев без предупреждения.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Внимание!

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

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне