|
Тестовое задание Yandex
Был несколько месяцев назад в Yandex.
Думал летом поработать там, а потом если бы устроил то остаться на постоянку. К сожалению ритм в Москве очень сложный и побыв 3 дня там понял, что жить я не смогу в столице. Прийдя на собеседование мне сказали, что на удаленку не берут, хотя вроде были готовы взять офисным сотрудником. Хочу показать тестовое задание, которое мне дали. Чтобы те, кто хочет работать в Yandex проверили свои силы и возможно устроились в эту классную компанию. Итак тестовое задание http://vreshenie.ru/Trip_Sorter.doc Теперь как сделал я. Ниже я опишу, что сделано не так и свои комментарии http://vreshenie.ru/done.html Код думаю все смогут просмотреть))) Итак: 1 - Я сделал для наглядности генерацию карточек, чего делать не надо было. 2 - По поводу сортировки и в каком формате должны быть карточки. Карточки должны выглядеть так { "Города 1":{ параметры }, "Город 2":{ параметры } } У меня в коде по другому. Почему именно так. Предположим у нас есть массив, и надо найти индекс массива, у которого у одного из объектов имеется параметр с тем или иным значением. Если это делать через for(), то времени уйдет очень много. Если же это делать обращаясь к свойству объекта, то выполниться моментально. Пример var o = {}; for(var i=0;i<1000000;i++){ o[i] = (function(i){ return function(){ console.log(i); }; })(i); } var t1 = new Date().getTime(); o[900000](); var t2 = new Date().getTime(); console.log(t2-t1); 3 - В коде я использую arguments.callee. Если не ошибаюсь, Илья Кантор говорил, что в EcmaScript 5 этого свойства нет. Также если не ошибаюсь, мне говорили, что при вызове рекурсивной функции через arguments.callee, затрачивается ресурсов в два раза больше, чем при вызове внешней функции. Как то так. В любом случае arguments.callee - использовать не следует. 4 - В программе есть баг при генерации карточек. Но так как это не требовалось, то решил не исправлять. Баг в том, что у одинакового вида транспорта одинаковый рейс и все параметры. Надеюсь кому-нибудь пригодится. Удачи. |
Посмотри тут
пример.. Похоже Яндекс позаимствовал тест. задание у кого-то... А что там с темпом?? Яндекс заставляет работать круглосуточно?? |
DrStrangelove, если не секрет, как это вы с ходу нашли это задание?
PS: вообще задание простое, но весьма интересное с точки зрения его реализации разработчиками. Я бы к примеру, вообще по другому все сделал. Этим оно и интересно |
Цитата:
Я там не работал. Лишь был на собеседовании. Очень понравился офис. Понравилось, что можно на стенах маркером писать - удобно. А еще очень приятно было разговаривать с Федором Голубевым - очень позитивный человек :) |
Цитата:
Хочется себя проверить :) А как бы Вы сделали? |
Цитата:
Нашёл давно, когда только увидел это тест. задание в вакансиях Яндекса- стало интересно как сортировать объекты, и в Гугле как-то всплыла эта ссылка.. |
Цитата:
Проверяют дипломы?? Требуют высшее образование?? обязательно профильное программерское?? или просто высшее?? В объявлениях о вакансии часто не пишут о в/о, в основном об опыте.. А как на самом деле, на собеседовании?? |
Цитата:
Хотя в вакансиях пишут, что желательно. Вообще, если есть знания и без ВО можно работать. Например V~Vladi вроде без ВО, а работает в очень серьезной фирме :) ВО нужно для формирования личности, фундамента знаний, знакомства с очень интересными людьми, выбора пути в жизни и много то, что просто не рассказать. Все профессиональные знания получаются на работе в реальных условиях бизнеса. Либо самим человеком при чтении книг, блогов и прочего. Про собеседование: Я общался с Федором Голубевым и еще одним человеком. Вопросы были вроде тех, что вот здесь http://company.yandex.ru/job/vacanci..._developer.xml http://company.yandex.ru/job/vacanci...dia_search.xml Мне на собеседовании очень понравилось))) Длилось где-то два часа. Я не помню уже всего о чем спрашивали. Вот что запомнилось 1 - Что такое JSONP 2 - Реализации ООП в js(примеры) 3 - Про замыкания, классический пример с массивом Больше ничего не запомнилось))) Собеседование проходило в кабинете с надписью "Пятая колонна" Было очень дружелюбно. На прощанье дали папочку с надписью "Яндекс"))) |
> Карточки должны выглядеть так
не должны. для ускорения выборок лучше создать отдельный индекс как в реляционных субд. нет ничего хуже, чем внутренняя оптимизация зашитая во внешний апи. > В любом случае arguments.callee - использовать не следует. почему? не вижу ни одного веского аргумента. аналогичная ситуация с with. |
Цитата:
|
Часовой пояс GMT +3, время: 18:39. |
|