Re[21]: Задачи на собеседовании - не нужны
От: Undying Россия  
Дата: 19.05.11 07:47
Оценка:
Здравствуйте, Donz, Вы писали:

D>За пятнадцать минут обучить человека, который ни сном, ни духом в теории алгоритмов и структурах данных? С объяснения, как устроена та или иная коллекция, плавно перейдем на методы класса Object, потом объяснение, что такое хеш вообще, потом базовый курс теории информации и т.д.


Зачем все это? Для грамотного применения структур данных достаточно: http://rsdn.ru/forum/job/4267935.1.aspx
Автор: Undying
Дата: 12.05.11
и http://rsdn.ru/forum/job/4268317.1.aspx
Автор: Undying
Дата: 12.05.11
Объясни, что там можно объяснять более 15 минут?
Re[22]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 19.05.11 08:15
Оценка:
Здравствуйте, Undying, Вы писали:

D>>За пятнадцать минут обучить человека, который ни сном, ни духом в теории алгоритмов и структурах данных? С объяснения, как устроена та или иная коллекция, плавно перейдем на методы класса Object, потом объяснение, что такое хеш вообще, потом базовый курс теории информации и т.д.

U>Зачем все это? Для грамотного применения структур данных достаточно: http://rsdn.ru/forum/job/4267935.1.aspx
Автор: Undying
Дата: 12.05.11
и http://rsdn.ru/forum/job/4268317.1.aspx
Автор: Undying
Дата: 12.05.11
Объясни, что там можно объяснять более 15 минут?


Боюсь, ты судишь по себе. А теперь представь человека, который несколько лет зарабатывает программированием, но так и не поинтересовался, как же оно там все внутри устроено, и зачем вообще такое разнообразие коллекций.
И не так все просто с хешами. Во-первых, надо объяснить, что это такое (а при этом есть все шансы встретить непонимание других понятий). Во-вторых, для тебя считать хеш по ключевым параметрам — это правильно. А я вижу, что многие не особо парясь делают копи-паст из функции equals, вычисляя хеш по всем возможным полям. А кто-то вообще предлагает использовать ГСЧ для вычисления хеша объекта.
Ну и нафига нужен "специалист", которого надо обучать и надеяться, что он спросит то, чего не понимает, а не просто забьет и сделает через попу? К счастью, людей с базовыми знаниями хватает. И при этом остальные навыки правильного программирования присутствуют.
Re[23]: Задачи на собеседовании - не нужны
От: Vzhyk  
Дата: 19.05.11 08:34
Оценка:
18.05.2011 17:04, Donz пишет:

>

> И дальше продолжаешь свой полет фантазии, подменяя факты своими
> домыслами. См. выше. Никто узкое место не создавал. Я сразу написал код
> так, что он гарантировано не сделает это место узким.
Ты писал вот это: "У меня сейчас самая что ни на есть типовая задача:
получить данные, сравнить, сохранить. Буквально вчера применил этот
самый "никому не нужный" хеш-мап, уменьшив сложность алгоритма с n^2 до
n." ?

Здесь у тебя написано сначала сложность n^2, затем ты уменьшил сложность
до n.
Если ты имело в виду нечто другое, формулируй тогда четче.
Posted via RSDN NNTP Server 2.1 beta
Re[24]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 19.05.11 10:01
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Здесь у тебя написано сначала сложность n^2, затем ты уменьшил сложность

V>до n.
V>Если ты имело в виду нечто другое, формулируй тогда четче.

Ок, "уменьшил сложность алгоритма "решение в лоб", который бы написал человек, не знающий про HashMap". Не думал, что будет столько постов с обсуждением этой фразы.
Суть в другом, а не в том, было этот кусок кода написан ранее или нет.
Re[16]: Задачи на собеседовании - не нужны
От: aik Австралия  
Дата: 19.05.11 10:25
Оценка:
Здравствуйте, SkyDance, Вы писали:

aik>>Для начала — ни тебя, ни меня не зовут ни в один гугль Не то чтоб прямо бедаааа, но все таки

SD>Так в московский я сам не пошел. В сиднейский просто не пробовал (до вчера я даже и не знал, что он тут есть).

Ну это один из приколов Австралии по-моему — (почти?) все глобальные корпорации имеют по нормальной лабе в Сиднее, Мельбурне и Бризбане. Любой из городов уже прикольнее в смысле работы чем Москва.
Re[25]: Задачи на собеседовании - не нужны
От: Vzhyk  
Дата: 19.05.11 10:28
Оценка:
19.05.2011 13:01, Donz пишет:

>

> Ок, "уменьшил сложность алгоритма "решение в лоб", который бы написал
> человек, не знающий про HashMap". Не думал, что будет столько постов с
> обсуждением этой фразы.
Ну и фантазия у тебя.
Несуществующий человек незнающий HashMap не написал. А ты уже все поправил.
Опять же очень показательно. Ты уверен, что ты не с ветряными мельницами
воюешь? — Это риторический вопрос.
Posted via RSDN NNTP Server 2.1 beta
Re[21]: Задачи на собеседовании - не нужны
От: Klatu  
Дата: 19.05.11 10:39
Оценка:
Здравствуйте, Donz, Вы писали:

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


Начнем с того, что ему вообще не надо "знать" сортировку. Она уже реализована в стандартной библиотеке, а если нет — берешь другую готовую реализацию и пользуйся. Так что обоих программистов из твоего примера надо бить по пяткам бамбуковой палкой, чтобы дурью не маялись.
Re[26]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 19.05.11 12:23
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Несуществующий человек незнающий HashMap не написал. А ты уже все поправил.


Нет, я описал один случай, когда знание хешмапа помогло сделать код оптимальнее. Ты уже развил тему в направлении "преждевременная оптимизация" и "сами понабрали не пойми кого", нафантазировав удобные тебе факты.
Re[22]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 19.05.11 12:33
Оценка:
Здравствуйте, Klatu, Вы писали:

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

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

Чтобы сделать правильный выбор реализации, нужно что-то иметь в голове. И не у всех платформ в стандартные библиотеки включены готовые структуры данных и методы работы с ними.
Re[21]: Задачи на собеседовании - не нужны
От: зиг Украина  
Дата: 19.05.11 13:55
Оценка:
Здравствуйте, Donz, Вы писали:

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


D>>>У меня сейчас самая что ни на есть типовая задача: получить данные, сравнить, сохранить. Буквально вчера применил этот самый "никому не нужный" хеш-мап, уменьшив сложность алгоритма с n^2 до n.

aik>>Применил или реализовал? Разные вещи, мягко говоря.

D>Применил. Потому что знаю стоимость вставки и получения элементов из хеш-мапа. И также знаю принцип, по которому сделана реализация HashMap. И также понимаю, что у объектов-ключей должна быть хорошая дисперсия хеш-функции, и как хеш-функция вообще должна быть реализована.

D>Непонимание любого из условий может привести к увеличению, а не уменьшению, сложности алгоритма.

так это такие азы которые все знают.
Re[22]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 19.05.11 14:48
Оценка:
Здравствуйте, зиг, Вы писали:

D>>Применил. Потому что знаю стоимость вставки и получения элементов из хеш-мапа. И также знаю принцип, по которому сделана реализация HashMap. И также понимаю, что у объектов-ключей должна быть хорошая дисперсия хеш-функции, и как хеш-функция вообще должна быть реализована.

D>>Непонимание любого из условий может привести к увеличению, а не уменьшению, сложности алгоритма.
зиг>так это такие азы которые все знают.

К сожалению, это не так.
Если все знают, к чему столько постов в эту тему? Влом ответить на вопрос про хеш-таблицу?
Re[23]: Задачи на собеседовании - не нужны
От: зиг Украина  
Дата: 19.05.11 15:25
Оценка: +2
Здравствуйте, Donz, Вы писали:

D>Здравствуйте, зиг, Вы писали:


D>>>Применил. Потому что знаю стоимость вставки и получения элементов из хеш-мапа. И также знаю принцип, по которому сделана реализация HashMap. И также понимаю, что у объектов-ключей должна быть хорошая дисперсия хеш-функции, и как хеш-функция вообще должна быть реализована.

D>>>Непонимание любого из условий может привести к увеличению, а не уменьшению, сложности алгоритма.
зиг>>так это такие азы которые все знают.

D>К сожалению, это не так.

D>Если все знают, к чему столько постов в эту тему? Влом ответить на вопрос про хеш-таблицу?

если я не ошибаюсь все началось с того что кто-то сказал — как это глупо не знать как хэшмап устроен внутри и не смочь написать его реализацию на собеседовании... вот про это наипсание реализации кучи кода многие и спорят
потому что там действительно внутри много кода.. можно знать ответы на поставленные вами выше вопросы, но не знать кучу других более "тонких" тонкостей и провалить имплементацию
Re[24]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 19.05.11 15:27
Оценка: +1
Здравствуйте, зиг, Вы писали:

зиг>если я не ошибаюсь все началось с того что кто-то сказал — как это глупо не знать как хэшмап устроен внутри и не смочь написать его реализацию на собеседовании... вот про это наипсание реализации кучи кода многие и спорят

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

Ну первый пост про логические задачки. А потом началось про то, что и хешмеп — это те же никому не нужные гномы.
Ни разу на собеседованиях не просили написать реализацию хешмепа. Только основные принципы спрашивали.
Re[3]: Задачи на собеседовании - не нужны
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 19.05.11 16:34
Оценка:
S>Зачем вообще проходить собеседование, если у тебя есть не иллюзорное портфолио? Если бы у меня были за спиной проекты по 5 лямов, как вас, я бы сказал об этом работодателю и дал бы ссылку на исходники/репозиторий (если это опенсурс) и пришел бы к нему только для обсуждения условий трудового контракта. Я не прав?

Работодателю интересно что человек сделал сам и как, из ссылок это не очень может быть видно, а копаться в коде — тоже смысла особенного нет. Вот если человека знают (соответственно, знают что он делал) — тогда другое дело.

Пример из жизни: по резюме человек и архитектор, и сделал бОльшую часть сам etc etc. А когда начали выяснять что да как на собеседовании — сторговались до того что написал он какую-то мелкую библиотеку, причем сам не помнит что она делала
Re[23]: Задачи на собеседовании - не нужны
От: SkyDance Земля  
Дата: 20.05.11 00:07
Оценка:
D>Судя по этой теме, да, видимо недоступно. К тому же, чтобы выбрать тип коллекции, надо бы знать особенности этой коллекции.

Вы неверно понимаете тему. Тут не выбирают тип коллекции. Выбрать коллекцию из готовых реализаций по оценке ее параметров (доступ, модификация, синхронизация) — легко, этот выбор легко делает любой приличный программист. Но на собеседованиях спрашивают не то, какую коллекцию выбрать, а то, какие грабли лежат на пути тех, кто реализует оную коллекцию.
Аналогия: вас берут "клепать формы" под Windows. Но вместо знания WinAPI (какую функцию позвать == какую коллекцию выбрать) у вас спрашивают специфику реализации той или иной функции в определенном SP какого-нибудь варианта Windows XP.

D>Так и спрашивают. Сложность поиска элемента, сложность вставки и т.д.


Нет, это не спрашивают.

D>Чтобы принимать, нужно знать основные принципы, как устроена коллекция. Никто полную реализацию HashMap'а на листочке не просит.


Вы немножко заблуждаетесь. Вопрос как раз не про основным принципы.

SD>>PS: я в своей нынешней работе использую порой нестандартные реализации структур (вот не далее чем вчера пришлось сделать свою реализацию односвязного упорядоченного списка — очереди таймеров, т.к. там требования специфичные, не подходили ни стандартные timer wheels, ни тем более priority_queue).


D>Ну молодец. Тебе плюсик поставить?


Нет. Это я к тому упоминал, что изучение структур данных — простая задача. Любой адекватный программист осилит реализацию той структуры, которая ему будет нужна. Но заранее изучать все варианты граблей (грабель?), лежащих в реализации того или иного контейнера — не очень полезно.
Re[17]: Задачи на собеседовании - не нужны
От: SkyDance Земля  
Дата: 20.05.11 00:09
Оценка:
aik>Ну это один из приколов Австралии по-моему — (почти?) все глобальные корпорации имеют по нормальной лабе в Сиднее, Мельбурне и Бризбане. Любой из городов уже прикольнее в смысле работы чем Москва.

Серьезно? Меня тут Мельбурн заинтересовал с точки зрения переезда туда. Там тоже есть Гуглы и Эпплы с Фейсбуками? Я думал, только в Сиднее.
Re[18]: Задачи на собеседовании - не нужны
От: aik Австралия  
Дата: 20.05.11 00:55
Оценка:
Здравствуйте, SkyDance, Вы писали:

aik>>Ну это один из приколов Австралии по-моему — (почти?) все глобальные корпорации имеют по нормальной лабе в Сиднее, Мельбурне и Бризбане. Любой из городов уже прикольнее в смысле работы чем Москва.

SD>Серьезно? Меня тут Мельбурн заинтересовал с точки зрения переезда туда. Там тоже есть Гуглы и Эпплы с Фейсбуками? Я думал, только в Сиднее.

Хм. У Гугля нету там лабы ДАЖЕ у IBM есть, а гугля нет. Надо проверить остальное
Re[24]: Задачи на собеседовании - не нужны
От: Donz Россия http://donz-ru.livejournal.com
Дата: 20.05.11 08:35
Оценка:
Здравствуйте, SkyDance, Вы писали:

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

...
SD>Вы немножко заблуждаетесь. Вопрос как раз не про основным принципы.

Я активно включился после вот этого коммента: http://www.rsdn.ru/forum/job/4275761.1.aspx
Автор: aik
Дата: 18.05.11

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

SD>Аналогия: вас берут "клепать формы" под Windows. Но вместо знания WinAPI (какую функцию позвать == какую коллекцию выбрать) у вас спрашивают специфику реализации той или иной функции в определенном SP какого-нибудь варианта Windows XP.


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

D>>Так и спрашивают. Сложность поиска элемента, сложность вставки и т.д.

SD>Нет, это не спрашивают.

Значит мы с тобой ходим совсем по разным собеседованиям. В московском гугле, с которого я и включился в дискуссию, реализацию на бумажке написать не просят. А просят как раз оценить тот или иной алгоритм, спрашивают основные принципы хеш-мепа. И на этот свой коммент получил ответ см. выше. Я спорю с этим, а не с тем, что писать полную реализацию коллекции на бумажке — это бред.

SD>Нет. Это я к тому упоминал, что изучение структур данных — простая задача. Любой адекватный программист осилит реализацию той структуры, которая ему будет нужна. Но заранее изучать все варианты граблей (грабель?), лежащих в реализации того или иного контейнера — не очень полезно.


Какие грабли? Нет в теории структур данных граблей. Нужно просто знать основные типы коллекций, чтобы уметь их принимать. Чтобы человек начал что-либо изучать, он как минимум должен понять, что ему не хватает знаний. А как понять, что их не хватает, если ArrayList — наше все? Ну подумаешь делает миллион итераций там, где можно всего тысячу. Не тратить же время на обучение, потому что это преждевременная оптимизация. Да и код будет запутаннее — другие же программисты тоже не встречались с HashMap, название их испугает, сразу же начнутся вопросы: "А почему не ArrayList?"
Re[5]: Задачи на собеседовании - не нужны
От: Философ Ад http://vk.com/id10256428
Дата: 21.05.11 07:47
Оценка:
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, Философ, Вы писали:


U>>>А чем новые задачи так отличаются от старых, что человек не сможет их решать?

Ф>>Решения новых задач нет в гугле.

U>А что на старой работе человек решал только те задачи, решения которых есть в гугле?


А он там вообще какие-нибудь задачи решал, вообще что-нибудь делал?
(Видел всякое)
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Задачи на собеседовании - не нужны
От: Ночной Смотрящий Россия  
Дата: 21.05.11 07:50
Оценка:
Здравствуйте, Klatu, Вы писали:

K>И обратные примеры я тоже видел.


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