Re[9]: Задачи для собеседования.
От: StandAlone  
Дата: 25.02.12 17:15
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ> лично я — даже не программист, а деплоймент-инженер.


*FACEPALM*

Конец был немного предсказуем. Не программист ты, не программист.
Чего-то такого и стоило ожидать, для разных саппортеров и админов характерно дрочение на макросы и биты.
Re[10]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 17:23
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Здравствуйте, Паблик Морозов, Вы писали:


ПМ>> лично я — даже не программист, а деплоймент-инженер.


SA>*FACEPALM*


SA>Конец был немного предсказуем. Не программист ты, не программист.

SA>Чего-то такого и стоило ожидать, для разных саппортеров и админов характерно дрочение на макросы и биты.

А для программистов с многолетним опытом видимо характерна неспособность к решению задач, с которыми справляются десятиклассники. Вопрос — зачем нужны такие программисты?
Re[2]: Задачи для собеседования.
От: MescalitoPeyot Украина  
Дата: 25.02.12 17:24
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Вопрос , какие вы видите проблемы и как бы вы смогли улучшить этот код?


Я б сказал, что в таком виде функцию просто надо переименовать в int getUnixTime(), но уверен что вас такой ответ не устроит.
Re[4]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 17:26
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>2 П.Морозов: Есть еще одна идея. Спроси кандидатов, какую литературу они читают (техническую)? Может быть весьма показательным.


А какую техническую литературу должен читать программист?
Re[9]: Задачи для собеседования.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.02.12 17:48
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, gandjustas, Вы писали:


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

G>>Кому должен?

ПМ>Должен уметь решать, если он собирается писать код в моём проекте. Если не умеет — пусть пишет в другом месте. Исправлять за такими ошибки — себе дороже.


Ну вот. Получается что знать разворот списка — совершенно не является необходимым. Это лишь твой каприз, не мотивированный объективными причинами.
Со своими капризами ты не в тот форум зашел, это тебе в КСВ.

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

ПМ>Я не на собеседовании.
Сейчас не можешь и на собеседовании бы не смог. Или тебе пришлось бы заранее готовиться и изучать такие задачи.
Это как раз подтверждает мои слова.


G>>Ты ведь и сам такие задачи решать не умеешь, ты это уже явно показал.

ПМ>Утверждение высосано непонятно из какого пальца.
Ты не решил её.
Re[5]: Задачи для собеседования.
От: Stanislav V. Zudin Россия  
Дата: 25.02.12 17:50
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, Stanislav V. Zudin, Вы писали:


SVZ>>2 П.Морозов: Есть еще одна идея. Спроси кандидатов, какую литературу они читают (техническую)? Может быть весьма показательным.


ПМ>А какую техническую литературу должен читать программист?


"Активная" часть форума меня сейчас загнобит и мы опять скатимся во флейм, но попытаюсь изложить свою мысль.

О своей рабочей платформе что-то читать нужно. Под виндой — Рихтера, Соломона, Руссиновича, под никсами — Стивенса, например.
Если утверждает, что занимается "проектированием структур данных", то хотя бы с Ульманом должен быть знаком (его у нас часто издавали).
Если тема алгоритмическая, то Кнут, Кормен, Седжвиг.
Для С++ — Мейерс, Вандевурд, Саттер, Джосаттис...
Ну и т.д.

Если не книги, то какие-то блоги, онлайн статьи...

На самом деле даже не важно, что читает, главное — читает ли вообще.
Надо учиться на чужих ошибках, а иначе получится, что "чукча не читатель, чукча — писатель".

Раз проводишь собеседование, то поспрашивай. Если накопится какая-то статистика, было бы интересно с ней ознакомиться.
_____________________
С уважением,
Stanislav V. Zudin
Re[4]: Задачи для собеседования.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.02.12 17:56
Оценка: -1 :)
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, gandjustas, Вы писали:


G>>А нахрена оно нужно? Если 1 еще может встретиться в реальной жизни, то 2 и 3 — просто высосаны из пальца.


SVZ>Задачи действительно высосаны из пальца. Хотя полно проектов, где и их надо решать.

"Полно" это что-то около 0.001%

SVZ>Но если кандидаты даже такое задание не могут решить, то как им доверишь что-то сложнее?

Разворот списка — сложная задача, как и множество других, несмотря на простой код решения.
Re[5]: Задачи для собеседования.
От: Stanislav V. Zudin Россия  
Дата: 25.02.12 18:17
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>>>А нахрена оно нужно? Если 1 еще может встретиться в реальной жизни, то 2 и 3 — просто высосаны из пальца.


SVZ>>Задачи действительно высосаны из пальца. Хотя полно проектов, где и их надо решать.

G>"Полно" это что-то около 0.001%

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

Ты работаешь на более высоком уровне — SharePoint, Web-сервисы и прочая.
Поэтому и статистика у нас с тобой будет разная. По моей это не 0.001%, а все 40%.

SVZ>>Но если кандидаты даже такое задание не могут решить, то как им доверишь что-то сложнее?

G>Разворот списка — сложная задача, как и множество других, несмотря на простой код решения.

Кто-то в обсуждении верно заметил, что достаточно нарисовать три кубика со стрелочками, чтобы найти решение.
Не зацикливайся. Рассматривай эту задачку как игру в шахматы Кто-то играет лучше, кто-то хуже, а кому-то вообще не дано.
_____________________
С уважением,
Stanislav V. Zudin
Re: Задачи для собеседования.
От: jhfrek Россия  
Дата: 25.02.12 18:32
Оценка: 9 (1) :))
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Напишите программу, выводящую на экран Ваше имя.

ПМ>Оценивается умение кандидата работать с system out, знание паттернов, умение писать своё имя без грамматических ошибок.

Пойдет?


программа Имя
Имена: массив строк = {Иван, Алексей, Юрий, ...}
начало
  цикл Индекс от 1 до Имена.КоличествоЭлементов 
    печать "Ваше имя ", Имена[Индекс], "? (Да или Нет)"
    цикл пока
      читать Ответ
      если Ответ = "Да" то начало
        печать "Ваше имя: ", Имена[Индекс]
        выходизпрограммы
      конец если
      иначе если Ответ = "Нет" то 
        выходизцикла
      иначе
        печать "Ответ не верный, введите правильный ответ (Да или Нет)"
    конец цикла пока 
  конец цикла
  печать "Ваше имя не известно системе"
конец
Re[6]: Задачи для собеседования.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.02.12 18:40
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, gandjustas, Вы писали:


G>>>>А нахрена оно нужно? Если 1 еще может встретиться в реальной жизни, то 2 и 3 — просто высосаны из пальца.


SVZ>>>Задачи действительно высосаны из пальца. Хотя полно проектов, где и их надо решать.

G>>"Полно" это что-то около 0.001%

SVZ>Я полагаю, мы с тобой занимаемся разными по своей сути проектами.

SVZ>Мне постоянно попадаются вакансии, где надо разрабатывать собственные структуры данных, заниматься графикой, вычислительной геометрией и прочей низкоуровневой шелухой.
SVZ>Про популярные ныне TCP и передачу видеопотоков даже упоминать нет смысла — каждая вторая вакансия.

Статистика HH с тобой несогласна. Хотя даже если взять TCP и видео, то для этого уже давно написаны либы.

SVZ>>>Но если кандидаты даже такое задание не могут решить, то как им доверишь что-то сложнее?

G>>Разворот списка — сложная задача, как и множество других, несмотря на простой код решения.

SVZ>Кто-то в обсуждении верно заметил, что достаточно нарисовать три кубика со стрелочками, чтобы найти решение.

Это лично ему достаточно.

SVZ>Не зацикливайся. Рассматривай эту задачку как игру в шахматы Кто-то играет лучше, кто-то хуже, а кому-то вообще не дано.

Дано всем, только это сложно. реально сложно если нету предварительной подготовки.
Re[6]: Задачи для собеседования.
От: Nuseraro Россия  
Дата: 25.02.12 19:04
Оценка:
SVZ>О своей рабочей платформе что-то читать нужно. Под виндой — Рихтера, Соломона, Руссиновича
SVZ>Ну и т.д.

Мб и не помешают эти книжки, но я бы плюсик ставил за вечную классику: "совершенный код", "программист-прагматик", рефакторинг, ГОФ.
Конечно и то и то уровень невысок, но на прикладных задачах имхо "внимательно прочитавший рефакторинг фаулера" важнее "решающий обращение списка".

PS. Хотя на каком-то уровне посерьёзнее ты понимаешь, что рефакторинг и гоф — это всё полное фуфло. Полезный остаток — по треть книги где-то.
Homo Guglens
Re[5]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 19:06
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Разворот списка — сложная задача


Да, именно это
Автор: Паблик Морозов
Дата: 24.02.12
я и говорю!
Re[10]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 19:11
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Ну вот. Получается что знать разворот списка — совершенно не является необходимым.


То, что знать разворот списка — совершенно не является необходимым я написал раз 10 наверное. Мне не нужно, чтобы человек знал, мне нужно, чтобы сеньёр-девелопер умел решать хотя бы самые примитивные алгоритмические задачи. Иначе такому "девелоперу" лучше сменить профессию.

G>Сейчас не можешь и на собеседовании бы не смог. Или тебе пришлось бы заранее готовиться и изучать такие задачи.


Я решал на собеседованиях более сложные задачи. Именно поэтому мне не понятно, как человек, называющий себя программистом не может справится с такой чепухой.
Re[6]: Задачи для собеседования.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.02.12 19:17
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, gandjustas, Вы писали:



G>>Разворот списка — сложная задача


ПМ>Да, именно это
Автор: Паблик Морозов
Дата: 24.02.12
я и говорю!

Это факты.


А твои выводы такие:

Но сеньёр-девелопер, не могущий решить задачку по программированию для первокурсников — это ведь просто смешно.



И они неверные. Твое мнение что такие задачи должен решать каждый программист — каприз.
Re[6]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 19:42
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>О своей рабочей платформе что-то читать нужно. Под виндой — Рихтера, Соломона, Руссиновича, под никсами — Стивенса, например.

SVZ>Если утверждает, что занимается "проектированием структур данных", то хотя бы с Ульманом должен быть знаком (его у нас часто издавали).
SVZ>Если тема алгоритмическая, то Кнут, Кормен, Седжвиг.
SVZ>Для С++ — Мейерс, Вандевурд, Саттер, Джосаттис...
SVZ>Ну и т.д.

Я не читал ни одной из этих книг. Не знаю, о чём это говорит.

SVZ>Если не книги, то какие-то блоги, онлайн статьи...


Это да.

SVZ>На самом деле даже не важно, что читает, главное — читает ли вообще.

SVZ>Надо учиться на чужих ошибках, а иначе получится, что "чукча не читатель, чукча — писатель".

Тут полезнее навык сопровождения кода, наверное.

SVZ>Раз проводишь собеседование, то поспрашивай. Если накопится какая-то статистика, было бы интересно с ней ознакомиться.


Ок, поспрашиваю. Но решение на основании ответов принимать не буду. Действительно интересно, кто что читает.
Re[7]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 19:50
Оценка:
Здравствуйте, Nuseraro, Вы писали:

N>"совершенный код"


Бросил не прочитав и четверти. Стив — Капитан-очевидность.

N>"программист-прагматик"


Не читал.

N>рефакторинг


Бросил после 20 страниц. Рефакторить код сможет любой человек просто исходя из "здравого смысла", а польза от знания названий этих операций — минимальна. Любой практикующий программист с ними ознакомится исходя из контекстного меню своей IDE.

N>ГОФ.


Прочитал лет 5 назад и забыл. Обычная ООП-профанация.
Re[11]: Задачи для собеседования.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.02.12 20:30
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, gandjustas, Вы писали:


G>>Ну вот. Получается что знать разворот списка — совершенно не является необходимым.


ПМ>То, что знать разворот списка — совершенно не является необходимым я написал раз 10 наверное. Мне не нужно, чтобы человек знал, мне нужно, чтобы сеньёр-девелопер умел решать хотя бы самые примитивные алгоритмические задачи. Иначе такому "девелоперу" лучше сменить профессию.

А я не говорю конкретно про задачу разворачивания списков. Я еще с самого начала говорил про задачи, не имеющие отношения к работе.

Твое желание чтобы соискатели на собеседовании решали такие задачи — каприз, не подкрепленный необходимостью.

G>>Сейчас не можешь и на собеседовании бы не смог. Или тебе пришлось бы заранее готовиться и изучать такие задачи.

ПМ>Я решал на собеседованиях более сложные задачи.
Уверен что они были более сложные? Может они просто более неизвестными тебе были?
Re[7]: Задачи для собеседования.
От: WolfHound  
Дата: 25.02.12 20:35
Оценка:
Здравствуйте, aleks_mur, Вы писали:

_>У меня исходная задача тоже вызвала массу вопросов. Бросаться чего-то писать не прояснив что это и для чего — самый плохой способ, в сложных проектах потом так и делают — сначала что-то накодят, потом разбираются "а надо-то было не так... эх.. не поглядели.. не спросили...".

Исходная задача вопросов не вызывает. Ваще. Ни одного.
Есть только один правильный способ работать со временем.
Объявляем некий момент времени началом времен. Например 00:00:00 01/01/2000. Можно любой другой. Это совершенно не важно.
Если достаточно секундной точности, то берем 64х битное знаковое целое. Нам его хватит почти на 300 миллиардов лет. Это в 20 раз больше возраста вселенной.
Если мы делаем универсальный формат, то в качестве представления нужно брать десятичную дробь неограниченной точности.
Все что меньше нуля произошло до нашего начала времен.
Все что больше произошло позже.
Показ времени пользователю и чтение его из строки производится с помощью календаря. Который кроме собственно календаря (которых даже сейчас больше одного) содержит часовые пояса, прыгающие секунды, итп.
Все остальные способы работать со временем не правильные.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Задачи для собеседования.
От: vshemm  
Дата: 25.02.12 20:57
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Прочитал лет 5 назад и забыл. Обычная ООП-профанация.


Для Программиста (именно с большой буквы "П") Фейнман намного ближе Фаулера, имхо.
Re[12]: Задачи для собеседования.
От: Паблик Морозов  
Дата: 25.02.12 21:52
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Твое желание чтобы соискатели на собеседовании решали такие задачи — каприз, не подкрепленный необходимостью.


Пока практика показывает, что это самый действенный метод отсеять людей, которые не умеют программировать.

G>Уверен что они были более сложные? Может они просто более неизвестными тебе были?


Да, уверен.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.