Как стать автором
Обновить

Комментарии 195

2, 3 и 7 можно сформулировать проще: «Говорите правду»

Если соискатель готов скорее сдохнуть в муках, чем ответит просто «я не знаю» — то пусть уж действительно сдохнет в муках %)

Искренность — наиболее ценимое мною качество в сотрудниках.
Да, честность совершенно точно лучше, чем попытка уйти от ответа или обмануть.
Найдите мне работодателя который возьмёт меня, и я вам первые пол года буду пол зарплаты отдавать… Я не шучу, строго следую пункту 3 (жизненный принцип, никогда не вру, могу заблуждаться, сказать «не всю правду», но никогда не вру, ни письменно ни устно) в итоге до пункта 7 даже не доходит, моё резюме сразу отправляется в помойку (скорее всего со словами «вот лузер, нифига не умеет») и до собеседования так и не доходит…

Знакомый один есть (врёт всем, даже друзьям и особенно работодателем) никогда дольше недели без работы не сидит, однажды даже был главным в HR для одной софтовой фирмы, набрал туда таких программеров, что те завалили многомиллионный проект (так мозги пудрил что его даже не уволили, ушёл в другую фирму где платили больше)
У меня были похожая ситуация. Знающий чел обьяснил что на вопрос какой ваш уровень в ASP.NET не стоит думать «Да я ноль по сравнению со SCOTTGU!!!» и отвечать «посредственно» а чесно ответить про опыт работы и вспомнить что по сравнению с большинством коллег на предидущих местах уровень «выше среднего». Интервьюер скорей всего не вкурсе про гуру технологий на которых хочется равняться. И наоборот, был у меня кандидат, который в ответ на этот вопрос так и сказал — слежу за такими-то, такие книги уже прочел, а такие пока ждут очереди (в общем средненько :) ) в итоге парень стал звездой компании, хотя резюме было средненькое.
Тут дело уже не в правде, а в том, что раотодателю нужен человек, умеющий что-то нужное ему. )
Научитесь многому — и до пункта 7 дойдет. )
Конечно нужен, кто же спорит то. Только людей которые действительно столько знают единицы, а вот запись об этих знаниях в резюме у большинства. В итоге выбирая кандидатов на собеседование смотришь в их резюме, так кругом одни специалисты, а как проводишь собеседование так одни ламеры. (Был и у меня опыт поиска программистов.)
ну интерес работодателя в честности кандидата понятен. у них свой интерес, у соискателя свой.
думаю, ваш знакомый напишет не менее полезный топик на эту тему :)
2. Не гуглите во время интервью.
O_o
Если интервьюер задал вопрос — например, «Какая сложность у сортировки пузырьком?»
Нафига мне нужен специалист, который забивает голову бесполезными знаниями?) И нафига они нужны вам?))
Вам не нужен — я заберу. Нафига мне нужен специалист, который не может посчитать / прикинуть вычислительную сложность простейших алгоритмов?
Вот честно, когда вы в последний раз в вашем проекте прикидывали сложность возможных алгоритмов решения проблемы, и выбирали тот, у которого она меньше?
Да постоянно.

Вчера — когда подбирал регулярки для рерайтов в нжиникс.
Три дня назад — когда думал над алгоритмом поиска и хранения подобных элементов (нечто вроде расстояния Левенштейна, или, проще говоря, нечто вроде списка похожих товаров на сайте магазина).
Список похожих товаров — почти наверняка cosine similarity (content filtering) если товары однородные или collaborative filtering (опираясь на список людей, которые их купили если нет). Если товары не очень однородные, но данных нет, то сперва первое, а потом, когда данные пойдут, постепенно заменяется на второе. Метрика Левенштайна это не в ту сторону, хотя и похоже ;)
Мне лучше знать, в какую сторону, правда? Я не хочу здесь расписывать всю задачу, но это НЕ похожие товары в магазине. Привел для примера.
Да ну разумеется вам лучше знать!!! Куда уж нам… ;)
Э, в чем проблема? В чем повод для иронии? Конечно, я лучше знаю, в чем моя задача, но описать ее в комментариях займет много времени. Может, я отдельный топик потом напишу, это интересная штука. И она действительно более касается расстояния Левенштейна, чем collaborative filtering.

Или вы в телепатии упражняетесь? С такими талантами люди в саппорте нужны.
Честно скажу, что всегда стою на стороне тех, кто считает, что математический бэкграунд нужен. Но сам никогда сложность алгоритмов не считал и считаю, что считать не нужно. Для этого есть википедия или вольфрам альфа. Человек должен уметь выбирать нужный алгоритм по неким критериям, а не держать все эти циферки в голове.
Да никто их и не держит. О том и речь, что выбирать нужно в том числе и по вычислительной сложности.

Более того, если соискатель наизусть помнит O(N) для пузырьковой сортировки, а не рассчитывает ее на месте — так это ему минус, а не плюс. В том смысле, что нужно не помнить, а думать.
Я конечно дико извиняюсь, но O(N^2)…
Я имел в виду просто O(), без конкретного значения.
Если в вашем проекте самое узкое место скорость вычисления регулярных выражений, честь вам и хвала. Если нет, а во всех проектах, которые я видел (каюсь, вполне возможно что видел мало) это не самое узкое место, лучше бы за ту же единицу времени добиться большего эффекта, приложив усилия в другом месте.
И, подозреваю, выбора алгоритма в первом случае у вас не было (или таки пришлось переписать часть pcre?)

Алгоритмы поиска и хранения подобных товаров (элементов?) уже давно изучены, о чем думать то?) Google it :)
Моя аватарка какбе намекает, что про скорость регулярных выражений я знаю достаточно %)
И кстати, это узкое место в очень многих задачах, только не все замечают.

Например: /[0-9]/ для utf-8 строки может быть медленнее, чем /\d/ в 60 (!) раз. Кроме шуток.
А не подскажите, где можно почитать про такие тонкие моменты?
Ситуация нигде не описана, я докладывал ее пару раз на конференциях. Для меня самого было очень удивительно.

Очень хочется выбрать пару дней и подробно расписать про тонкости TRIEC-EXACT, ANYOF и символьных классов в pcre. Но это ж надо найти время… %)
Дополню: удивительно, потому что интуитивно ожидалось обратное, ведь \d в UTF-8 матчит гораздо больше, чем [0-9]. Но оно вот так.

Правда, зависит от сборки. Как раз поведение \d в последние годы меняют от версии к версии. Обсуждается еще.
А речь идет о каком-то конкретном языке программирования, или в разных языках проявляется одинаковая ситуация?
PCRE для многих языков — основная библиотека для работы с регэкспами. Практически стандарт.
т.е. все шансы, что замедлят до уровня [0-9]?)))
:)

Сильно надеюсь, что этот затык уже решили. Надо будет протестировать последние версии.

На скорую руку хотел закинуть бенчмарк в браузер, но тут облом: в ECMAScript принудительно установили, что \d всегда есть [0-9]. Так же, как \w всегда [0-9a-ZA-Z_]. Что, вообще говоря, для юникода неправильно.
Т.е. вы когда кодите, думаете «так, эта часть неважна, использую-ка я здесь самый неоптимальный алгоритм который знаю»? Может вы в неважных частях также переменные называете как попало, код не комментируете и не соблюдаете стили форматирования? Использовать эффективные алгоритмы — это такая же необходимая привычка, как и другие правила хорошего кода. Кроме того, опыт говорит, что алгоритм который имеет оптимальный ( или близкий к оптимальному ) порядок сложности для задачи — чаще всего незначительно сложнее в написании, чем неоптимальный ( при определенном опыте ). Вот константы в сложности алгоритма — их, да, можно оптимизировать бесконечно, и этим нужно заниматься только в случае необходимости.

Ну и над действительно большим проектом работает куча людей, и желательно чтобы каждый из них делал хорошо свою часть работы, а не делал второпях ее так, чтобы потом другим людям пришлось все переделывать.
Ну да, конечно, куда лучше выкинуть тормозящее убожество, чтобы потом думать, блин а ведь я сначала мог отсортировать не пузырьком а Хоаром (утрирую), чем сразу хороший, быстрый код.
Да и, конечно в этом случае все равно лучше без фанатизма.
Сравнивать возможные варианты реализации кода — можно и нужно. Знания об абстрактной сложности пузырьковой сортировки — избыточные знания. Гораздо лучше знать, например, что для одних случаев нужно выбрать один метод, в других случаях — другой, и будет ли данный алгоритм эффективен на текущей платформе с текущими данными, можно ли его легко расширить на кластер из 1000 машин, ну и так далее.

Само по себе знание O() бесполезно без практического опыта.
Если может и может это сделать точно — хорошо — лишним не будет (особенно если человек хороший).
Проблема только в том что это умение часто переоценено, и столь же часто отсутсвует у людей которые снисходительным тоном другим рассказывают как это важно.
У кого не хватает обсуждения на работе — могут заглянуть в ЖЖ — часто можно видеть как умные (дейсвтиетльно умные в академичекском смысле люди, которые постоянно изуччают что-то новое в области CS и возможно часть из этого применяют) допускают ошибки при попитке вывенсти оценку простых алгоритмов «из википедии». Что уж говорить об оценках действительно сложных алгоритмов и обычных людях. Да и когда ответ посмотреть не где — то и проверить отсутсвие ошибок непросто. Поэтому в сложных ситуациях (если это действительно нужно и важно) я больше доверяю способу «реализовать и сделать 10 замеров». Оценить таким образом можно даже если у вас в команде только обычные люди и ответ этот часто будет точней чем мыслительный эксперимент.

Кстати пример «из жизни». Кто знаком с Java — там есть HashMap. Внутри он грубо говоря устроен как массив спсиков. В документации заявлено что сложность получения из этой структуры по ключу O(1).
Но это не так если: у объектов int hashCode(){return 1;} или если объектов в это коллекции больше чем 2^32 — тогда сложность операции становится O(N).
Ну и вот — попросили вы человека оценить эту сложность. Он «вывел» вам O(1). Ответ не правильный — но значит ли это что специалист плохой? Наверно нет. В общем случае — неизвестно) Поэтому важность этого навыка кажется мне часто переоцененной.

Полностью согласен, конкретные значения O(N) для алгоритмов мало интересуют и соискателя, и интервьюера. И если человек хороший, но не в курсе теории сложности вычислений, то и хрен с ней — научится.

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

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

Беда в том, что до коллизий не все доходят.
В Гугле это очень даже полезные знания. Никто не просит кандидатов перечислять все аргументы какой-нибудь системной функции, но вот основы computer science хороший кандидат должен знать.
Если вопрос был задан, то скорее всего важен собственный ответ на него, а погуглить человек из гугла наверно и сам сможет. Опять же если мне надо знать как человек гуглит, я бы так и попросил.
И да, полезность информации в работе зависит от типа работы.

Ваш Кэп
А считается, что гуглить все умеют, да? Мне кажется, что очень многие вокруг меня гуглить умеют очень плохо, когда я делаю это быстро и эффективно. Интервьюера это во мне не интересует?
Скажу даже больше, иногда (особенно в решении нестандартных задач) умение гуглить на порядок важнее чем имение знаний в голове…
Умение гуглить для создателя поисковика неоднозначно.
С одной стороны понимание метода позволит алгоритмизировать свое умение. С другой стороны непонимание проблем рядового пользователя может привести к никому не нужным улучшениям.
думаю, просто для работы в гугле надо не только уметь гуглить, но и знать все эти вычислительные сложности сортировок назубок)
Если у вас первое место на кубке Яндекса, скажем — то это, конечно, плюс. Но лично я не прошу кандидатов погуглить на время.
Мда, на этом месте я бы точно завалился — никогда не изучал математику на таком уровне и даже плохо понимаю, что вообще значат эти значения.
То есть я понимаю, что O(N) лучше чем O(NlogN) лучше чем (N2), но это все.
хм, это же на первом курсе проходят
Ну у кого-то и этого не было…
Только не на факультете психологии ))
Где-то проходят, а где-то пробегают мимо. :(
1. Если не достаточно текущих знаний математики, но хочется в гугл — не стыдно и подтянуть знания.
2. Значительных знаний математики здесь совсем не нужно. Это даже не дифференциалы или интегралы. В общем-то я сомневаюсь, что для оценки сложности на базовом уровне нужно что-то больше школьного уровня математики. ИМХО, тенденция зависимости работы алгоритма от размера входа — это даже как-то интуитивно чувствуется, если есть практика программирования. Для более сложных — теорию вероятности подтянуть. Совсем сложные случаи могут доказываться не тривиально, но такое и спрашивать не будут.
Ну я примерно себе представляю, что метод пузырьку может быть в разы менее эффективен, чем быстрая сортировка.
Да и в википедии есть вся необходимая информация. Но на память я точно не воспроизведу эффективность алгоритмов.
Вы знаете алгоритм пузырька? Зная как оценивается сложность алгоритма, сложность пузырька считается в уме. Быстрая в общем-то тоже в уме, но тут уже нужно видеть вероятностную составляющую. В худшем случае тот же квадрат, что и у пузырька будет.
Видимо, проблема в том, что я понятия не имею, как оценивается сложность алгоритма.
Я же про это и говорю, понять как производится оценка — не требует значительной математической базы. Полные доказательства с выкладками — это ведь не всегда нужно. Если грубо — смотрим сколько раз выполняется цикл/рекурсия. Если вложенные циклы — умножаем. Нетривиальные условия окончания бывают — в той же сортировке быстрой условие в исходном виде не совсем тривиально. Но если посмотреть на алгоритм в его «понимательном» виде, то глубина рекурсии тоже считается мгновенно.
> Значительных знаний математики здесь совсем не нужно.
> Это даже не дифференциалы или интегралы

Меня на интервью в Гугл попросили в качестве части одного из заданий вычислить площадь под кривой заданной набором точек ;) Если это не численное вычисление определенного интеграла, то я не знаю что это ;)
Это численное вычисление суммы площадей трапеций с вершинами в заданных точках и точках пересечений оси Х с перпендикулярами, опущенными на эту ось их заданных точек.
… и при длине основания стремящейся к нулю, оные трапеции неотличимы по площади от прямоугольника соответствующей высоты; сумма площадей же прямоугольников представляет (под тем же пределом) представляет собой каноническое определение определенного интеграла, ЧТД.
Если точки расположены близко то это ОК. А если не очень, то мне кажется можно наворотить какие-нибудь сплайны или полиномиальную аппроксимацию, а потом уже считать интеграл =)) Правда устно или на листике будет напряжно.
Самый сложный технический вопрос-задание какой был?
Честно говоря уже не помню. Помню что на пятом часу интервью мне задали вопрос на котором я почти срезался, потому что уже ничего к тому моменту не соображал — быстро дал алгоритм, но долго тупил и не мог написать код на доске. Но сути вопроса, увы, уже не помню ;)
> Помню что на пятом часу интервью мне задали вопрос на котором я почти срезался, потому что уже ничего к тому моменту не соображал

Похоже на пытку шпиона или разведчика…
Ну вы сами все поняли, да? ;-)
Воды попить хотя бы давали или совсем всё сурово было? :D
Ну что вы! И пить давали, и на ланч водили, и вообще обращались очень по-человечески. Будущие инженеры — народ нервный и пугливый ;)
Во втором пункте я говорил «здесь» — имея в виду оценку сложности алгоритмов, а не вообще то, чо задаёт Google на собеседованиях (не имею представления). А определение площади многоугольника методом трапеций — да, формально это то же самое, что и численное интегрирование, в силу ограничений дающее точный результат. Но, имхо, тоже не пример сложного задания, ибо изучается в школе до изучения интегралов — вместе с разбиением на треугольники.
#define чо что
очепятка
Согласен почти со всем, кроме одного — одно дело знать что-то. Другое дело — суметь это вспомнить и применить, когда задача формулируется совсем не так, и настоящая суть задания состоит не в том, чтобы вспомнить с пяток алгоритмов, а представить нестандартную задачу как композицию нескольких стандартных подходов. Имхо, именно это и проверяется на интервью.
Да, тут олимпиадные задачки, наверное действительно хорошее подспорье. Иногда такие сказки наплетены, а посмотришь внимательно — какой-нибудь базовый алгоритм, вроде топологической сортировки, или там потоки. Иногда вообще простота вроде жадного :)
это не имеет никакого отношения к определению сложности алгоритма.

определение сложности алгоритма — это не математика, а информатика.
Ничего сложного тут нет, все в рамках доступной старшекласснику математики. Откройте книгу Кормена и почитайте первые главы, там это объяснено так, что запомнится на всю жизнь.
Что за книга?
Алгоритмы: построение и анализ, Т. Кормен, Ч. Лейзерсон, Р. Ривест
оууу какая классная толстая книжка ;)
опа, есть люди, которые не знают Кормена?
а вы считаете себя программистом? если не секрет
Да. Просто я не занимаюсь всякой математикой — для этого у нас есть другие люди.
просто вы не программист, а так, максимум — кодер. на должность программиста вас нанять не могут.

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

А чем программист отличается от кодера?

Кстати, это было оскорбление?
не оскорбление, кодер — это достойная профессия, как и любая другая.

Кодер — человек, чьей задачей является написать код функции по данному ему интерфейсу и алгоритму.

Программист, он же Software Engineer и Software Developer, это человек, который создаёт программу — от техдизайна и архитектуры до алгоритмов, классов и интерфейсов. Во многих фирмах есть и программисты и кодеры, и программисты обычно ставят задачи кодерам. В Google в кодерах необходимости нет, потому и людей без знания алгоритмов не нанимают.
По этому описанию я программист ))).

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

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

Мне достаточно просто знать, как работает какая-то сортировка, чтобы представить себе, насколько она сложна.

А циферки со всякими там логарифмами я в вики могу посмотреть.

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

И оба, конечно, знают, что такое сложность алгоритма.
Простите, но человек, который претендует на должность software engineer, должен уметь оценивать сложность алгоритмов или хотя бы помнить сложность распространенных алгоритмов, просто потому, что даже если он никогда не будет писать быструю сортировку, он должен знать границы ее применимости. И он так же должен понимать, что сложность быстрой сортировки в худшем случае совсем не O(NlogN), как некоторые кандидаты считают :-)
NlogN — это лучший случай, как я понимаю. Худший — n2. Так?
С другой стороны, зачем мне это помнить? Я в любой момент могу зайти на вики и посмотреть. Если будет часто надо — запомнится. А ради одного раза — и голову забивать не надо.

Я тут в чем-то согласен с Шерлоком Холмсом, который искренне не понимал, какой ему прок от знания того, что Земля круглая )
Дело в том, что это простейшие базовые алгоритмы, и если вы «плывете» в них, то у работодателя сразу возникают сомнения в вашей способности решать действительно сложные алгоритмические задачи в том же Гугле.
К тому же совершенно не обязательно помнить сложности алгоритмов сортировки — они достаточно легко рассчитываются «в уме» на лету =)
Ну, я знаю как они работают ))
А сложность и эффективность, имхо — вопрос второй.
Хотя я даже близко не считаю себя гуру программирования.
Как бы вам объяснить… Не надо помнить. Надо понимать. Если вы понимаете как работает сортировка, то вы сможете быстро это объяснить, и никуда не надо лезть. Если вам известна концепция сложности алгоритма, вы можете взять два алгоритма и быстро на пальцах их сравнить. Если вы знаете базу, то вы можете писать софт, а не уподобляться (столь популярным в мои институтские годы) программистам на Дельфи, которые на каждый чих пытаются найти готовый компонент и при отсутствии оного объявляют задачу нерешаемой.

Есть база. Ее нужно знать, если вы хотите оставаться в профессии. Это аксиома и обсуждать ее, на самом деле, бессмысленно.
Ну, уж тут-то я с вами согласен.
Просто мне не знакома концепция сложности алгоритма.

А дельфи-уровень, я надеюсь, я уже года два как прошел (что прямо скажем мало, но все равно)
>Я в любой момент могу зайти на вики и посмотреть

Для сортировок — да, для более других алгоритмов — возможно, что нет.

>Если будет часто надо — запомнится.

Запоминать как раз бессмысленно.

>А ради одного раза — и голову забивать не надо.

Вообще зубрить не надо. Это ж математика. проще понять суть, тк зазубрить все возможные частные случаи невозможно, тк их бесконечность суть.

>согласен с Шерлоком Холмсом, который искренне не понимал, какой ему прок от знания того, что Земля круглая

В самом деле — какой прок от обладания теми навыками и знаниями, которые от вас требуются для работы на которую вас нанимают? Холмс, например, знал, например, каким шрифтом печатается какая газета.
Если следовать вашему высказыванию: Нафига мне нужен специалист, который забивает голову бесполезными знаниями?) И нафига они нужны вам?))
То в принципе 2+2 можно и в гугле посчитать Пруф =), а ещё АОрфаграфию.
То есть Вам разницы нет, каким путём и за сколько времени будет решена задача, лишь бы была решена?
Каким путем — нет разницы, кроме оговореных в задаче ) за сколько времени — нормальные люди в постановку задачи включают сроки :)
Ну поэтому я и выберу человека, который знает азы и умеет пользоваться поиском, вместе человека который просто умеет пользоваться поиском.

Представляете, вы приезжаете к мастеру и говорите, замени мне покрышку. А он он берёт и меняет за 20 минут, при этом: открутил болты в правильную сторону, снял колесо не поцарапав диск, разбортовал-забортовал, накачал 2 положенные атмосферы, выполнил балансировку, поставил на место, затянул болты динамометрическим ключом.

И то же самое, только каждые 5 минут бегает в Гугл и смотрит на форумах, как нужно сделать. Если найдёт нужную инфу
Я выберу человека, который способен решить поставленную задачу (can do the job, aka make it work)
И, как следствие, способен самостоятельно находить ответы на свои вопросы, решать большие и маленькие проблемы. С меня ресурс, постановка задачи, и естественно оплата в срок.
Второе важное требование, которое во многом совпадает с первым — уважение к чужому времени, и к своему времени. Без этого работа в команде невозможна. Если человек не ценит свое время, он будет проводить дни в поисках «самого правильного решения», вместо того чтобы удовлетвориться достаточным результатом и идти дальше. Если не ценит чужое, он будет задалбывать коллег своими маленькими проблемами, вполне реальными, вместо самостоятельного ихрешения.
Можно много обсуждать на эту тему)

Кстати что забавно, у меня много одноклассников-одногрупников в разных западных ИТ-компаниях, они почему-то уверены что мне бы понравился Гугл )) И звучит с их стороны это скорее как издевка )

PS: По моему мнению, для любой ситуации можно найти две одинаково хорошо звучащих аналогии, которые будут подтверждать противоположные точки зрения, поэтому для серьезной дискуссии они не годятся. Не надо про покрышки, но раз уж зашел разговор — во-первых ни одна уважающая себя компания не показывает клиенту «кухню», будь то автомастерская, или компания разработки софта. И у хороших автомехаников стоят специализированные базы знаний. Но это так, оффтоп-постскриптум.
забыл третье важное требование, оно же следствие того что человек ценит свое время — стойкое нежелание изобретать велосипед
и тут тоже важно умение искать готовые компоненты и знать, что вообще существует) гугл, ага)
это не значит, как тут писали выше, что «если для этого нет компонента, то это невозможно»
и это включает в себя «если в компоненте что-то непонятно, я изучу его исходник, или разберу его в IDA/Reflector, и узнаю, что с ним не так»
Я говорю с тем, с чем столкнулся. Стажёра взял себе, вместо работника. Он в курсе, что такое Гугл. Но знает только основы программирования. В связи с этим городит велосипеды, вместо использования стандартных библиотек.
Так что если бы он знал — это бы пошло ему на пользу, и сократило время проекта.
если он ценит свое время и пользуется Гуглом, достаточно несколько раз «выбросить» его код и поставить стандартный, чтобы он задумался
если нет, то, мм, может быть мои критерии не такие и плохие?
Не могу не ответить на PS обратным. Любая уважающая себя компания показывает хоть часть своей «кухни», для рекламы и для доверия.
Могу конкретно сказать про 2 автомастерские:
  • Сеть Midas — куда я езжу всегда, когда не могу решить проблему сам. Потому что там не только я могу стоять рядом, но ещё и сопровождают анализ поломки объяснением.Сеть Feuvert — Которые недавно показывали рекламу на эту тему. Говорят, что можно смотреть, что делает техник.

    Могу сказать про свою фирму, Thales: делаем радары и антирадары для истребителей Rafale, Mirage, всю авионику SSJ100, на российские танки Т90 ставим тепловизоры.
    2-3 Раза в год, мы устраиваем недели открытых дверей. Сначала закрытого типа (только для персонала с уровнем секретности), затем полуоткрытого (только для юридических лиц), затем открытого (для всех желающих). Мы не показываем последние разработки, но показываем например чистую комнату, Front Desk, Front Office… При этом все работники продолжают работать, как в штатный день.

    А ещё есть «не уважающая» себя компания Volkswagen, которая показывает свою «кухню»
    www.youtube.com/watch?v=nd5WGLWNllA

    Ну я думаю, что это не единственные примеры. И что таких не мало. Просто не всем приятно показать что и как они делают. Что могут накосячить при клиенте. А принимать свои ошибки ой как трудно, да и по эго бъёт.
давайте разделять PR и реальную кухню? экскурсии в кухню макдональдса тоже проводятся
я уверен, что прежде чем показывать, ваш ответственный отдел все проверил, перепроверил, и куда не надо экскурсантов не пригласят, неважно там секреты или просто масло разлилось
Т.е. это продуманная, просчитанная и вылизанная PR акция, но никак не кухня
Давайте, ссылка на ролик в youtube, чуть выше.
4.25 млн просмотров. и это не PR акция?
Это просмотры и репортаж, сделанный независимым каналом. То есть канал осуществил PR.

давайте разделять PR и реальную кухню?
Если сможете разделить в данном примере — я согласен. Но в данном случае PR акция и кухня — слиты воедино. То есть каждый клиент может прийти и посмотреть, как делается его машина.

В данном примере, весь процесс является пиаром. То есть, для любой уважающей себя компании, показать кухню — это престижно.
А когда её нельзя показывать, когда творится бардак, шум, гам, то тогда и не показываем — стыдно.
В данном примере, весь процесс является пиаром. — 100%

То есть, для любой уважающей себя компании, показать кухню — это престижно. — Не согласен.
Престижно показать себя в белом свете, как именно, дело техники, если для этого можно использовать часть кухни (нет, ну правда, автомобильное производство с тысячами деталей, которые делаются по всему миру, это не один конвеер автоматической сборки), то почему бы и нет. Если у компании есть, что показать, работа пиарщиков упрощается.

Вы когда-то видели репортаж с заводов Apple?) И врядли увидите…
Чую подвох. Вообще сомневаюсь, что хоть кто-то в последние 5 лет видел завод Apple. Даже Jobs.

Может потому, что у Apple нет заводов? И всё собирается на мощах саб контракторов?

Возвращаемся к тому же. Престижно показывать кухню, или нет. Если на кухне бардак — то не престижно, а если чистенько?
Я согласен на ничью :)
«Если на кухне чисто, это можно использовать для эффективного продвижения компании.»
человек, который не знает сложность сортировки пузырьком, не может называться специалистом. а псевдо-программисты не нужны.
ИМХО наоборот. Человек который вообще знаком с пузырьком более чем «увидел не понравилось» не может называться программистом. Это зубрила-теоретик не более того. Пузырёк один из самых медленных алгоритмов, ибо у него почти постоянно идёт чтение/запись это катастрофически увеличивает время его работы по сравнению с другими (не менее простыми) алгоритмами (тот же «Selection Sort» к примеру)

Алгоритмы сортировки вовсе не нужно держать в голове. Достаточно в процессе обучения ознакомиться с эффективностью всех что есть в учебнике, выбрать один самый лучший, а остальные смело забыть как страшный сон.
смешно, да.
при этом пузырек — это кеш фриенди алгоритм, уверен что есть набор данных на котором он порвет все остальное.
пузырек не использует дополнительную память, выполняя все действия inplace в отличии от qsort который на определенных наборах может портебовать O(N) памяти на рекурсию, что опять таки при определенных данных может быть в разы больше чем сортируемый массив

вот разгон пузырька, основанный на свойстве его дружелюбности к кешу
blog.gamedeff.com/?p=268
Пример где пузырёк порвёт хоть кого-то можно?

Пузырёк использует чтение->запись даже там где хватит только чтения (а это тоже такты процессора) в конечном итоге он чуть ли не вдвое медленнее любого другого (даже медленного и примитивного) алгоритма!!! (опять же «Selection Sort» к примеру)
Есть несколько состояний специалиста)
Пару лет после окончания ВУЗа он еще думает, что очень важно знать и помнить то, чему его учили (если он учился хорошо)

Но примерно лет через 5-6 остаются преимущественно знания, которые используются в повседневной работе) Врядли среди них будет сортировка пузырьком, и пр. демо-алгоритмы из университетского курса )
На уровене «знаю что такое есть» вполне может быть, но помнить сложность абсолютно бесполезного алгоритма может либо человек, которому больше нечем заняться, кроме как тешить свое самомнение знанием курса университета, либо просто молодой специалист
во, мы нашли pointed-hair boss из Дилберта. это noonesshadow. человек, который через несколько лет после окончания вуза забывает всё, чему учился, не знает больше ничего по своей работе и может только «руководить».
Смело) Предложите мне интересное пари, я готов померяться чем-нить))

PS: недавно друг попросил помочь в одном проекте, проект некоммерческий гуманитарный, финансируется из ЕС. Я готов был помогать просто так, они делают очень полезные вещи для моей страны, а помощь там не очень много времени заняла бы, но у них своя бюрократия.
CV+интервью по скайпу, итог — мой час работы оценили в $36, контракт уже подписал.
Расскажите про самую любимую технологию

Все равно что художника попросить назвать любимый цвет
Хм… Думаю, зелёный. В прошлой своей картине я очень активно пользовался зелёным. Даже в одном месте пришлось немного доработать стандартный зелёный из гаммы, подмешав к нему немного белого и жёлтого, чтобы можно было точнее передать цвет гусеницы.
Белый люблимый. Он самый красивый. Остальные цвета — украшение белого.

То есть есть и любимый цвет, и любимая технология…
Цветовые предпочтения описывают психологическое состояние (из этого исходит тест Люшера), художник должен уметь хорошо обращаться с любыми цветами. Если предпочтения преобладают над эффективностью — это не есть гуд.
Какой точный тест. Я поражен.
Я бы не стал серьёзно относиться к его результатам :) Он никогда ничего хорошего не говорит. Я не думаю, что это у меня одного такое)
Говорит. У моей возлюбленной вполне милый и веселый результат. В отличие от меня, которому давно пора вены резать судя по тому что написано :D
На такой вопрос ответ «Мне нравится несколько — А, В и С (и потом сравнить их, например)» — тоже принимается. С другой стороны, если человек несколько минут тушуется и не может ничего кроме «Ну я не знаю какую выбрать» сказать — то это тоже как-то этого человека характеризует.
Как?
Ему сложно анализировать и принимать решения в стрессовых ситуациях, например.
А это важное качество для программиста?
Да.
И когда вы сталкиваетесь с необходимостью принимать решения в стрессовых ситуациях? Аврал нельзя ею назвать.
Когда я убиваю весь сервер легким мановением руки.
Когда я удаляю репозиторий проекта.
Когда я делаю DROP таблицы заказов.

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

А по поводу аврала — не понимаю, почему для вас свалившийся большой объем работы это стресс. Он же не должен на качество влиять? Как по мне, это просто работа 12-14 часов в сутки.
примерно каждый день по десять раз
Просто удивительно. Какие причины стресса у вас?
Компьютер слабый )?
Который у большинства из них таки есть.
Скорее имелась в виду платформа. А если нет — можно смело отвечать «полупроводниковый транзистор».
Тон советов такой обыденный, как будто Гугол каждый день названивает всем подряд со своим «соц.опросом» :)
для интервьюера это очень обыденно. по несколько раз в неделю с кандидатами говорить очень надоедает)
так, вынимаем пирсинг, пацаны
Лично мне Старкрафт 2 на интервью по барабану, но вдруг, действительно, для кого-то это важно? :)
Ну если компании важна сортировка пузырьком (зачем интерестно, когда есть более быстрые и эффективные методы). Может это из разряда «Ищем веб-девелопера HTML, CSS, Flash, Java, C++ со знаним автокада и опытом работы в MS Office»…
>7. Не пытайтесь угодить интервьюеру.
Но пирсинг достать не забудьте…
Угодить в плане мнения(не только заголовки читать нужно, там даже пример есть).

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

Ни разу еще не замечала за собой цоканье и бряканье в разговорах.

Хотя, если поставить в язык гантелю, возможно, будет брякать…
Я не думаю о тех у кого есть пирсинг в языке, ничего, к тому же у меня есть знакомая с пирсингом в языке, и проблем с разговором тоже не было. Я всего лишь пояснил что имелось в виду в топике(возможно у автора были подобные случаи, не допускаете?), и совсем не собирался никого задевать.

Пункт подразумевает «устраните все возможные проблемы для общения», к которым кстати относится не только пирсинг.
=)
Хорошо, но если вас примут на работу, вы ведь будете ходить с пирсингом? Значит на собеседовании вы угождаете интервьюверу, доставая пирсинг.
Я не в коем случае не поддерживаю пирсинг, просто считаю, что на собеседовании надо быть самим-собой… Это очень важно.
Тут всё зависит от восприятия. Продолжать спор считаю бессмысленным, каждый всё равно останется при своем =)
Ок)
При прочих равных однозначно возьмут человека без пирсинга.
Вы знаете, так получается, что не однозначно… Работодатели они нынче такие:)
Как я уже говорил, рот великоват.
А у меня сегодня первый shadow ;)
PS посмотрел на твою start date — молодец, жжешь! Я очень долго ленился тренинг проходить.
По моему опыту (не в гугле), всегда хочется найти ответ на вопрос: «А хочу ли я работать с этим человеком в команде?» Зачастую, ответ на этот вопрос может перевесить многие недостатки. Например, человек не помнит сложность этого самого пузырькового метода, но чесно это говорит + отлично пишет, интересуется смежными областями, обучаем в общем «глаза горят». Я лично буду рад нанять такого человека даже если есь кандидат, который супер хорошо разбирается в теории вычилсений, с огромыным опытом, но «перегорел»
А сколько платите? :)
*смотрит горящими глазами*
Хотел приписать, что глаза готовы испепелять, но решил ограничиться смайлом.
Эти вопросы регулируются HR :)
Если решу использовать свою бесплатную поездку — буду помнить о вас.
Исследования показывают что человек плохо делает рациональный выбор, основанный на большом количестве параметров. Даже рандом статистически делает этот выбор лучше. Но вот подсознание легко решает за человека эту задачу, подсказывая сознанию эмоциями типа «нравится»
А по моим наблюдениям с наиболее эффективными сотрудниками часто бывает непросто сработаться. Но пользы от них бывает в разы больше чем от рубахи-парня, у которого горят глаза и с которым вам просто комфортно работать.
смешно это, «глаза горят» а человек не знает базовых вещей. это значит, что у него глаза горят только во время интервью, а всё остальное время ему на работу по барабану.
>..«простые вещи он напишет не приходя в сознание.»
Весело у вас проходят собеседования
Когда человек уровня top 100 на топкодере пишет код — это действительно весьма захватывающее зрелище :).
НЛО прилетело и опубликовало эту надпись здесь
Есть, но это конфиденциально. Но вы можете зайти и посмотреть код «красненьких» прямо на topcoder.
интересно, кто-нибудь из наших общих знакомых там есть?
Я бы еще добавил совет — найти hands-free к телефону. Очень неудобно кодить одной рукой, и медленно.
Тут лучше посоветовать поставить Skype и договариваться об интервью по нему. Это сразу решит проблемы с занятыми руками, средствами на счету телефона, его батарейкой и качеством связи.
интервью по скайпу это же ужасно, в первую очередь из-за качества связи.
Качество связи, при нормальной гарнитуре и интернете, лично у меня в квартире, много лучше чем по сотовому телефону, a стационарного просто нет.
Какие еще минусы у интервью по Skype?
Признаюсь что я ни разу не проходил именно интервью по Skype. Зато часто общаюсь по личным и рабочим вопросам, и все время считал, что проходить собеседование мне будет удобнее по Skype. Если я заблуждался, просветите в чем.
>таков синтакс языка

синтаксис
Постарайтесь убрать все, что будет мешать вам четко говорить.

Очень актуальное замечание, последнее свое собеседование по телефону проходил на улице зимой в жуткий мороз. Думал разговор будет мин 10-15, затянулся до 40 мин, под конец дрожал я так, что даже зубы стучали… благо все обошлось. (На работу, кстати, приняли) -)
Эх, помню Larrr писала как классно проходить практику в гугле, а теперь уже проводит интервью… Круто!
… кстате, в этом году мне снова позвонили дядьки из гугла и проводили собеседование. В последний раз с ними общался две недели назад — сказали что в течении двух-трёх недель свистнут с ответом.
… пока ответов нет :(
Иногда ответ занимает несколько недель — сейчас в Гугле очень много нанимают, поэтому рекрутеры очень загружены.
НЛО прилетело и опубликовало эту надпись здесь
Тут есть разница — зазубривание vs понимание. Я вот не знаю сложности кучи алгоритмов, но при необходимости могу подумать и выдать правильный ответ.

Кстати, зазубривание без понимания на интервью не поможет — это обычно довольно хорошо видно.
3. Не врите в резюме.

Все же я бы не был столь категоричен. Иногда бывает так что на определенную вакансию есть некие требования, которым соискатель не удовлетворяет, однако он уверен, что данный недостаток не является критическим. Например возраст или опыт работы.
Если в небольших компаниях еще можно как-то договориться, то в случае работы с рекрутинговыми агенствами или HR отделами крупных компаний, вас могут зарезать еще на стадии longlisted.
В этих случаях, имхо, имеет смысл приврать и потом уже на собеседовании доказать, что это было не зря.
Вы не задумывались, что смешные циферки про возраст, опыт и т.п. для того и придумываются, чтобы отрезать на стадии longlisted? Потратишь час на собеседование человека, а в ходе выясняется, что у него опыта нет нужного или зелен он еще (а на многие вакансии это крайне немаловажный фактор, когда нужны тёртые бойцы, которых сразу на амбразуру кинуть можно, а не няньчить их месяц-другой-полгода) или под другие формальные критерии не подходит. Гневно смотришь на HR-а, а она, красавица, тебе улыбается, мол, в резюме так было написано.
Вы не задумывались, что смешные циферки про возраст, опыт и т.п. для того и придумываются, чтобы отрезать на стадии longlisted?

Именно по этому на стадии longlisted отсеиваются все кто не врут. (На заключительные стадии проходят только виртуозные лжецы.)
Всегда есть шанс, что «вранье» не заметят. Но если человек сильно расходится со свом резюме — например, он по резюме олимпиадник, у него 10 лет опыта работы и нобелевская премия — и при этом он не дотягивает по уровню даже до выпускника ВУЗа, то это значит, что он либо соврал в резюме, либо очень сильно сдал с момента своих последних достижений и ушел в сильную стагнацию. И в первом, и во втором случае второго шанса легко можно не получить.
Гугл уже делает за меня отличную работу, предоставляя доступ к любой «энциклопедической» информации. Я умею быстро и эффективно гуглить, зачем мне забивать голову чем-то, что мне, возможно, и не понадобится никогда? Другое дело — если работа это непосредственно подразумевает и это отмечено в требованиях к вакансии.

И еще — «зачитывать» ответ действительно нельзя. Но нельзя запрещать гуглить. Если человек знает что и как найти за 3 минуты и сходу разобраться в этом — это огроменный плюс, который зачастую не учитывается.
Когда-то говорили «Мы все довольны своим умом и никто положением». А сейчас я вижу слишком много людей которые довольны своей скоростью гугления и считают что это их в чем-то выделяет среди всех остальных. Зато не видел ни одного программиста, который бы жаловался на свой навык гугления. Для программистов — это такой же необходимый навык как умение печатать, и хвастаться им или говорить что он в этом крут — просто странно.
А еще, увы, слишком много людей считает
а) что нагуглить можно все
б) что во всем можно разобраться за 3 минуты
Это не так. Можно нагуглить сложность и описание алгоритма по его названию, но нельзя нагуглить алгоритм для данной конкретной задачи, которая сейчас стоит перед тобой. Можно нагуглить названия паттернов, их описания и примерную реализацию — но нагуглив это, ты не научишься ими пользоваться уместно и логично. Можно за 3 минуты нагуглить что такое монады, но это не значит что ты сразу же сможешь применять их с пользой.
Все эти вопросы призваны проверять базу. Человек который знает базу — не тратит время в работе на выяснение тривиальных вещей. Он гуглит более сложные вещи, когда ему понадобится. Не стыдно гуглить Штор-Вагнера, стандарт IEEE 754 или параметры не самых часто используемых функций вашего родного языка, но гуглить «сложность алгоритма сортировки пузырьком» — это честно говоря, гребаный стыд.

Larrr, а даются ли на гугловских собеседованиях задачи на смекалку? Вроде того, что:

«утка плавает в центре круглого пруда радиуса R, по краю бегает лиса, скорости их такие-то, может ли утка выбраться на берег покушать травки прежде чем лиса её зохавает?»

Сегодня впервые за несколько лет столкнулся с ситуацией «я не студент чтоб решать такие задачки, мне их влом делать». Кандидат добавил, что Гугл перестал такие задачи давать на собеседованиях.
Решать/нерешать это, конечно, его дело, но наши разработчики считают что такие задачки далеко не бесполезны. А как у вас?
твой пример — не задача на смекалку, а обычная математика. числа и расчёты, ничего особенного.

задача на смекалку это, например, «вы в блендере и его включили. что будете делать?»
НЛО прилетело и опубликовало эту надпись здесь
Выключу.
8 пункт никак не относится к профессиональным навыкам. Ну совсем.
Какая, к чертям, разница, если ли у человека пирсинг в языке?

Вы бы ещё к логопеду посоветовали сходить. А то ведь дефект речи тоже мешают четко говорить.
НЛО прилетело и опубликовало эту надпись здесь
Ерунда.
НЛО прилетело и опубликовало эту надпись здесь
ИМХО пирсинг личное дело каждого, это никак не говорит о его профессионализме.

Другое дело что это говорит немного о его характере, и тут надо быть психологом чтоб понять «вольётся ли в существующий коллектив».
думать как сломать двигатель блендера!
НЛО прилетело и опубликовало эту надпись здесь
А трансвеститов у Вас на интервью не было? Мы вот всё интервью пытались понять, какого оно пола. По квалификации не подошло, так что мы до сих пор в неведении. Имя в резюме было указано нейтральное.

А вот ещё замечательный приём, который либо прокатывает на собеседовании, либо нет, и не всегда раскрывает суть даже в первый месяц работы: «Да это всё понятно, с этим я много работал, но после этого ещё много работал с много чем другим и конкретно сейчас не помню, как там именно, но стоит открыть справочник и я сразу...». Иногда за такой личиной скрывается ленивый и склеротичный виртуоз, а иногда хитрый незнайка.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории