Re: Покритикуйте собеседование
От: TheBeard Россия  
Дата: 09.08.11 11:51
Оценка: 7 (5) +4
Здравствуйте, monax, Вы писали:

M>Критика?


Хорошее, годное собеседование. Видите, в комментариях уже появились "адекватные специалисты", которых такое собеседование и должно отсеивать.
Re[3]: Покритикуйте собеседование
От: elmal  
Дата: 09.08.11 14:19
Оценка: 1 (1) +2 -1 :))) :))
Здравствуйте, monax, Вы писали:

M>1. выходят за пределы строки

При реализации на бумажке это не ошибка
M>2. строка из-за сложностей в реализации остаётся исходной
При реализации на бумажке это не ошибка
M>3. теряют часть символов
При реализации на бумажке это не ошибка
M>4. городят огород из дополнительных массивов с конвертацией в строку (часто тоже с потерей символов)
Сложно себе это все представить, но возможно тут и ошибка, но не думаю что таких талантов много.

M>Списать всё на стресс и волнение не могу, потому что задача простая и до этого человек держался спокойно и уверенно рассказывал о своих успехах.

На практике человек ОЧЕНЬ редко пишет код на бумажке, это уже не актуально лет 20 минимум. Вот не привык он! Обленился, сейчас навык работы с перфокартами несколько потерял актуальность, очень жаль, что вы до сих пор с перфокартами работаете, пора б технику то обновить! Тем более, что обычно итерирование по строке через цикл на практике очень редко требуется, как результат, что там ставить — length() — 1 или length() хрен еще вспомнишь, так как 100 лет на практике не надо.
Он привык по быстрому написать на компе, написать тестик, прогнать тестик. Как результат, пункт 1 и 3 у кандидатов появится на практике только на твоих мегасобеседованиях. Вот выдели товарищу компутер, и странным образом количество успешных кандидатов увеличится.
Далее, задание ну ни черта не годится. Ну что ты по нему проверять будешь? Что он помнит границы массива чтоль? Такое актуальное знание?
Много с SQL работать приходится? Даешь доступ к реальной базе, и просишь написать запрос, удовлетворяющий условию. Просишь модифицировать реальный запрос. Нужно html верстать? Даешь реальную html, и просишь его немного модифицировать, а также попросить сказать, как бы это сделать пооптимальнее, чтоб часть кода кешировалась, стили ьыли настраиваемые и тому подобное. Надо немного программировать? Напиши сам формочку на jscript, с удобными интерфейсами, и попроси кандидата устранить дубликаты, например.
Ведь сделаешь если — времени меньше потратишь как своего, так и кандидата, да и больше информации о нем получишь.

А давай я тебя спрошу, раз такой умный. Для начала проверим, способен ли ты к простейшим действиям, например набрать текст на клавиатуре. Итак, проверяю. Отойди от компьютера, и нарисуй на бумажке все клавиши компа, с расположением всех символов! Как не нарисовал, как это " с ' попутал? Так ты даже на юзера не тянешь, как вообще ты можешь работать с такими знаниями! Стресс наверно, но тыж вроде вполне успешно говорил про то, как зарубаешь кандидатов. А давай проверим твои институтские знания. Ручку, бумажку, без инета, википедии, по честному... Расскажи ка мне свойства псевдообратных матриц. Расскажи ка мне в чем заключается симплекс метод. Расскажи как решать системы нелинейшых уравнений. Задачу оптимальной загрузи оборудования, формулировка и решения. Хм ... Чет как то от зубов не отскакивает смотрю, наверно лекции не посещал, троечник. Школьные знания давай проверим — напиши ка мне формулу вычисления корней кубического уравнения. Хм ... Ну хоть теорему Виета?
Ладно, давай про компьютеры. В каком году был построен Марк-1? Какая у него элементная база и характеристики? Так ... историю не знакмс, значит специальностью не интересуемся.
Re[2]: Покритикуйте собеседование
От: warhast Россия  
Дата: 09.08.11 12:50
Оценка: +1 :))) :))) :))
M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.
MM>Должен ли я заниматься проверками на null, учитывать кодировку?
Занятно было бы невзначай так сказать что строка в utf-8.
Re: Покритикуйте собеседование
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 09.08.11 06:14
Оценка: 1 (1) +2 :))) :))
Здравствуйте, monax, Вы писали:

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


Ты ща еще больше удивишься, когда набежит куча народу и расскажет тебе что давать задание на переворачивание строки на собеседовании это просто жуткое ущемление прав кандидата, а ты в собеседованиях вообще нихрена не понимаешь.
Re: Покритикуйте собеседование
От: Mesc  
Дата: 09.08.11 08:30
Оценка: +3 -3 :)
Здравствуйте, monax, Вы писали:

M>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию


на этой стадии адекватные люди встают и уходят

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


мало денег предлагаете
Re[4]: Покритикуйте собеседование
От: Temnikov Россия  
Дата: 09.08.11 10:23
Оценка: +4 -1
M>>>мало денег предлагаете
M>>~30тыр после налогов + социальные плюшки для вчерашнего выпускника это мало денег для Ростова-на-Дону?
M>лет пять назад нормально было.
M>ну и фиксед: "я был удивлён, как много людей, согласных работать за 30 тыр, не способны написать код для переворачивания строки."

Для замкада и для студента это очень хорошие деньги, которые можно заработать своим трудом на наемной, не по блату работе.
Re[5]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 10:50
Оценка: -3
09.08.2011 13:45, monax пишет:

> даже 5-10 строк? при том, что меня не интересует правильность

> синтаксиса, а только логика человека?
И ты можешь оценить логику человека по 5 строкам перевертывания строки?
Да ты крут. Ты не Гуглом владеешь, случаем, а тут под левым ником
потролливаешь.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 08:22
Оценка: +1 -1
09.08.2011 9:14, kaa.python пишет:

> M>З.Ы. я был удивлён, как много людей не способны написать код для

> переворачивания строки.
>
> Ты ща еще больше удивишься, когда набежит куча народу и расскажет тебе
> что давать задание на переворачивание строки на собеседовании это просто
> жуткое ущемление прав кандидата, а ты в собеседованиях вообще нихрена не
> понимаешь.
А че его критиковать. Он ССЗБ. Я только не понимаю смысла его поста, тем
более поскриптума.
Возможно, он не доверяет себе и хочет здесь услышать поддержку своим
действиям. Но в этом случае, думаю, ему следует обратиться к психологу
по поводу заниженной самооценки.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 18:15
Оценка: 3 (1)
Здравствуйте, Abyx, Вы писали:

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


M>>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php.


A>я надеюсь вы сами на себе этот тест проверили? — взяли лист бумаги и написали переворот строки

A>(эксперимент не чистый, т.к. когда сам себя проверяешь — обстановка более спокойная)

Именно, и не только в спокойной обстановке (я сам писал такой код на одном из собеседований). Ещё я попросил двух своих друзей программистов провести мне собеседование. Одно прошёл без проблем, во втором не ответил на один вопрос, где нужно было применять код Хемминга (но на работу меня бы всё равно взяли, потому что ход решения был правильный, не хватило одного шага для верного решения).

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

A>возможно вы узнаете много нового.

Не узнал В бытность студентом писал много курсовых на ассемблере на заказ. Там почти в каждом была подзадача, где нужно было что-то куда-то переводить. Ну и перевод десятичного в двоичный сложнее, чем двоичного в десятичный, потому что тут достаточно посчитать степени двойки и сложить.
Покритикуйте собеседование
От: monax  
Дата: 09.08.11 06:09
Оценка: +1
Ищу к себе в группу разработки ещё одного программиста. По навыкам меня устроил бы студент 4-5 курса, но поскольку нужно быть на работе целый день, то и вчерашний выпускник тоже подойдёт. От кандидата требуется базовое знание html, php, т.е. если человек способен написать цикл, условие, функцию, то он подходит, если может написать класс, то тем более. Javascript знать не обязательно, его мало. Нужно хорошее знание sql, потому что запросы нужно писать часто, много, и большие, ну и часто приходится разбираться с запросами, которые были написаны 5-7 лет назад. Вроде, весь список требований. ЗП предлагается вполне неплохая (по ростовским меркам).

Теперь о собеседовании.

Сначала общение по тому, что написано в резюме. Просто чтобы познакомиться, присмотреться и послушать, что человек может рассказать о работе в предыдущих местах. Если таких мест нет, то спрашиваю про диплом. Если сам сталкивался с технологиями, о которых рассказывает кандидат, то спрашиваю подробнее, просто чтобы удостовериться, что он написал резюме о своём опыте работы, а не выдумал его неделю назад (бывает и такое). По ходу дела объясняю с чем ему придётся работать, сколько будет получать и с кем будет работать.

После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php. Если php не его любимый язык, то допускается написать функцию на любом другом (потому что тот объём знаний php, который нужен в работе может быть получен за неделю). Этого кода на 5-10 строк достаточно, чтобы оценить логическое мышление на простой задаче.

Потом рисую две таблицы на доске: авторы и статьи — связь необязательная один ко многим (у одного автора 0 или более статей, у статьи один автор). Прошу написать два запроса, один на объединение с like, второй с group by. Тут по ходу дела могут возникнуть дополнительные вопросы, в зависимости от того, как кандидат будет писать запрос. Но в целом вопросов по sql не будет больше 7-10.

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

Ещё могут быть вопросы по регуляркам, но только если человек скажет, что работал с ними. Вопросов 2-3, на знание базовых вещей (больше в работе не нужно, а дрючить кандидата тем, что не пригодится в работе не вижу смысла).

Критика?

З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.
Re[4]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 10:45
Оценка: +1
Здравствуйте, Mesc, Вы писали:

M>адекватные люди не пишут код на бумажке


даже 5-10 строк? при том, что меня не интересует правильность синтаксиса, а только логика человека?

M>>~30тыр после налогов + социальные плюшки для вчерашнего выпускника это мало денег для Ростова-на-Дону?


M>лет пять назад нормально было.

M>ну и фиксед: "я был удивлён, как много людей, согласных работать за 30 тыр, не способны написать код для переворачивания строки."

30тыр после налогов — это весьма неплохая зарплата для ростова, может в мск люди несколько больше получают, но я ищу программиста не в мск
Re: Покритикуйте собеседование
От: Abyx Россия  
Дата: 09.08.11 16:12
Оценка: +1
Здравствуйте, monax, Вы писали:

M>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php.


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

если не проверили — попробуйте решить аналогичную простую задачу, типа перевод 32-разрядного целого числа в строку с десятичным числом.
возможно вы узнаете много нового.
In Zen We Trust
Re[5]: Покритикуйте собеседование
От: elmal  
Дата: 17.08.11 14:02
Оценка: +1
Здравствуйте, kittown, Вы писали:

K>Если нужно продумать непростой код (алгоритмически, а не по синтаксису — пофиг на синтаксис и точные имена методов), то лучше бумажки ничего нет. Комп, ide, синтаксические проверки и прочая хрень очень сильно грузят мозг и отвлекают.

K>PS. Я отвечал с позиции senior-а. Для junior-а, действительно, на бумажке уметь писать необязательно — он еще не дорос. И алгоритмы оптимизировать не надо. Хорошо, если хоть реализует то, что уже разжевано.
Я даже соглашусь, но:
1) Здесь на бумажке требовалось написать тривиальный, но рабочий код. Тривиальная ошибка вида выход за пределы массива, считалась критичной. Соответственно никакой потребности в бамажке нет. И далее, на практике на бумажке требуют не набросать алгоритм, а чаще всего требуется полная реализация. Некоторые орлы хотят еще ввод вывод элементов чтоб был, если ввод вывод не написал то это недочет;
2) Когда мне дают задачу, где на бумажке требуется набросать высокоуровневый алгоритм — у меня никакого неприятия нет, я только приветствую такие задания, особенно если они приближены к реальности. Я готов выполнять, и действительно, я скорее всего на практике возьму именно бумажку. Но когда требуют чтоб я на бумажке этот алгоритм реализовал в деталях, с вводом-выводом, и без ошибок — такие задания меня просто бесят.
Re[5]: Покритикуйте собеседование
От: SkyDance Земля  
Дата: 17.08.11 23:19
Оценка: +1
K>Если нужно продумать непростой код (алгоритмически, а не по синтаксису — пофиг на синтаксис и точные имена методов), то лучше бумажки ничего нет. Комп, ide, синтаксические проверки и прочая хрень очень сильно грузят мозг и отвлекают.

Только такой "непростой код" вообще не на языке программирования обычно выражен. А какими-нибудь схемами, диаграммами — в общем, псевдокодом.
Писать код на реальном языке программирования на бумажке неудобно и непривычно. Простой пример: я вот _вообще_ не помню, какие классы в Java работают с файлами (нутром чую, что должен быть класс File, у него какие-нибудь Input/Output Streams, и какие-нибудь форматтеры али ридеры). Я не помню точных названий классов и их методов (в основном потому, что никогда не надо было). Написать код на бумажке не смогу. А вот с IDE + google — легко, названия находятся за 5 минут. Методы — еще за 5 минут.
Re[7]: Покритикуйте собеседование
От: SkyDance Земля  
Дата: 18.08.11 23:44
Оценка: +1
G>А что на твой взгляд должен очень хорошо знать программист на Java? ну если файлы помнить не надо, то что надо?

Стоп-стоп, не файлы помнить не надо. А не надо синтаксис или наименования помнить.
Что помнить реально надо: базу. Основу. То, что не гуглится за 5 минут — т.е. любые вещи на понимание. К примеру, понимание нормальных форм в теории СУБД. Можно не помнить конкретику запросов в T-SQL, но знать, что такое НФ, зачем нужна нормализация и почему не стоит увлекаться денормализацией раньше времени — это помнить надо.
Можно не помнить, какие буковки писать, чтобы открывать файлы (сокеты или еще что). Но надо знать о существовании этих самых файлов.
Можно не помнить, что за классы реализуют SSL-соединение, но нужно понимать, что такое public key, private key и чем всякие эти key отличаются от certificate.
Можно не знать, какой класс осуществляет хеширование (я вот не знаю, есть ли в Java что-нибудь вроде SHA1Stream, чтобы в него писать, а потом взять SHA1-хеш от записанного). Но нужно знать про сам факт существования хеширования, про применение его, про то, где какой хеш следует применять.

Можно не знать, как запустить новый поток. Но нужно помнить о синхронизации доступа к данным из разных потоков. Даже если не помнить конструкции (вот я реально сейчас не помню — последние 9 месяцев писал на голом Си, и из головы Java-конструкции выветрились). Найти эти конструкции, их синтаксис и особенности работы — легко и быстро. Но вот если человек принципиально не понимает, что такое memory barriers, не поможет ему знание всех этих synchronized штук.

Вывод: на собеседовании надо проверять умение человека _решать задачу_, а не функционирование его головы в режиме справочника. Благо в интернете все равно справочного материала больше.
Re[10]: Покритикуйте собеседование
От: Alex Dav Россия  
Дата: 23.08.11 01:21
Оценка: +1
Здравствуйте, SkyDance, Вы писали:

SD>Другой вариант — поговорить. Именно что по основам. Можно без терминов (человеку свойственно забывать неиспользуемые термины), но по общим вещам — например, как работает TCP. Как организовать man-in-the-middle. А можно ли защититься от MITM? А как? А без использования third-party trusted store? Во, придумали trusted network... как, не мы первые?

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

а на фига человеку знать как работает TCP? Как часто в крупном проекте вы пишите модули соединения? — поправьте меня но это делается раз и на годы, т.к. кому то надо бизнес логику реализовывать. (Хотя, если вы пишите небольшие апликушки — может быть)

Остальные слова вообще не знаю и даже не слышал — ни от тупых собратьев ни от умных — видать обходятся как то?
Re[11]: Покритикуйте собеседование
От: kittown  
Дата: 23.08.11 15:39
Оценка: +1
Здравствуйте, Alex Dav, Вы писали:

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


SD>>Другой вариант — поговорить. Именно что по основам. Можно без терминов (человеку свойственно забывать неиспользуемые термины), но по общим вещам — например, как работает TCP. Как организовать man-in-the-middle. А можно ли защититься от MITM? А как? А без использования third-party trusted store? Во, придумали trusted network... как, не мы первые?

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

AD>а на фига человеку знать как работает TCP? Как часто в крупном проекте вы пишите модули соединения? — поправьте меня но это делается раз и на годы, т.к. кому то надо бизнес логику реализовывать. (Хотя, если вы пишите небольшие апликушки — может быть)


AD>Остальные слова вообще не знаю и даже не слышал — ни от тупых собратьев ни от умных — видать обходятся как то?


Все приведенные слова — из категории общей грамотности. MITM сокращение никогда раньше не видел, но очевидно, что это сокращение от man-in-the-middle. Смысл извествен, но если бы не был — он в общем и из названия понятен. Trusted store/network — базовые знания по безопасности, читали на 3 курсе. Как ориентировочно работает TCP рассказали еще на 2 курсе; и там и там забывать особо нечего — меняются только алгоритмы шифрования, а не основные принципы.

Спрашивать тонкие детали, если не специалист по конкретной области, неправильно, но общие принципы не знать (хотя бы после второго курса вуза по CS/IT специальностям) — аномалия. От частоты применения не зависит.

А вот про "бизнес-логику реализовывать" — это уже наброс. Ничего хорошего от кандидата, слишком часто применяющего терминологию такого сорта, я бы не ждал. Баззворд ни о чем.
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 06:31
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


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


не удивлюсь, потому что на форуме постоянный житель
Re[2]: Покритикуйте собеседование
От: zubr Россия  
Дата: 09.08.11 06:47
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


надо придумать задачу в которой это будет требоваться, но только будет завуалировано.
Re: Покритикуйте собеседование
От: divergo  
Дата: 09.08.11 06:54
Оценка:
M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.
Не верю, чтобы студент 4-5го курса не мог бы это сделать. Как такое возможно
Возможно, не хотели. Иногда сразу видно, что эта компания, эта работа, этот собеседующий(как потенциальный начальник) вовсе не то, что хотелось бы иметь. Или задание сбило с толку своей простотой.
Re[3]: Покритикуйте собеседование
От: shrecher  
Дата: 09.08.11 06:56
Оценка:
Здравствуйте, zubr, Вы писали:

Z>Здравствуйте, kaa.python, Вы писали:


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


Z>надо придумать задачу в которой это будет требоваться, но только будет завуалировано.


А зачем? Задача на переворот строки — банально. Ее спрашивают на каждом втором собеседовании.
Re[2]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 08:26
Оценка:
09.08.2011 9:54, divergo пишет:

> Не верю, чтобы студент 4-5го курса не мог бы это сделать. Как такое

> возможно
Конечно возможно, особенно если студент пединститута или автотракторного.

> Возможно, не хотели. Иногда сразу видно, что эта компания, эта работа,

> этот собеседующий(как потенциальный начальник) вовсе не то, что хотелось
> бы иметь.
+1
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 10:02
Оценка:
Здравствуйте, Mesc, Вы писали:

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


M>>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию


M>на этой стадии адекватные люди встают и уходят


а чем же адекватным людям не нравится переворачивание строки?

M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


M>мало денег предлагаете


~30тыр после налогов + социальные плюшки для вчерашнего выпускника это мало денег для Ростова-на-Дону?
Re[3]: Покритикуйте собеседование
От: Mesc  
Дата: 09.08.11 10:21
Оценка:
Здравствуйте, monax, Вы писали:

M>>>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию


M>>на этой стадии адекватные люди встают и уходят


M>а чем же адекватным людям не нравится переворачивание строки?


адекватные люди не пишут код на бумажке

M>>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


M>>мало денег предлагаете


M>~30тыр после налогов + социальные плюшки для вчерашнего выпускника это мало денег для Ростова-на-Дону?


лет пять назад нормально было.
ну и фиксед: "я был удивлён, как много людей, согласных работать за 30 тыр, не способны написать код для переворачивания строки."
Re[6]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 11:08
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>09.08.2011 13:45, monax пишет:


>> даже 5-10 строк? при том, что меня не интересует правильность

>> синтаксиса, а только логика человека?
V>И ты можешь оценить логику человека по 5 строкам перевертывания строки?
V>Да ты крут. Ты не Гуглом владеешь, случаем, а тут под левым ником
V>потролливаешь.

ага, сижу вот вжика дожидаюсь, чтобы его затролить. как же без тебя родимого
Re[7]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 11:18
Оценка:
09.08.2011 14:08, monax пишет:

> V>И ты можешь оценить логику человека по 5 строкам перевертывания строки?

> V>Да ты крут. Ты не Гуглом владеешь, случаем, а тут под левым ником
> V>потролливаешь.
>
> ага, сижу вот вжика дожидаюсь, чтобы его затролить. как же без тебя родимого
Ну наверное. Тем более этим постом подтверждаешь, что троллишь, ибо на
вопрос по сути и не ответил.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Покритикуйте собеседование
От: Alex Dav Россия  
Дата: 09.08.11 11:51
Оценка:
Здравствуйте, shrecher, Вы писали:

S>А зачем? Задача на переворот строки — банально. Ее спрашивают на каждом втором собеседовании.

А как часто вы это используете в жизни?
Лучше уж дать задачу — разбить строку на токены — это хоть живая вещь.
Re: Покритикуйте собеседование
От: Alex Dav Россия  
Дата: 09.08.11 11:57
Оценка:
Здравствуйте, monax, Вы писали:

M>Критика?

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

А в целом ничего нормально

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.

потому что никто их не переворачивает в реале, а только на собеседованиях
Re: Покритикуйте собеседование
От: Философ Ад http://vk.com/id10256428
Дата: 09.08.11 12:02
Оценка:
Здравствуйте, monax, Вы писали:

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


В чём сложность?
На чём люди стопоряться? Какие проблемы у них возникают при переворачивании строк?
...не понимаю.
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Покритикуйте собеседование
От: Son of Northern Darkness  
Дата: 09.08.11 12:22
Оценка:
Здравствуйте, monax, Вы писали:

M>Критика?


Хорошее собеседование, если жаль своего и чужого времени, то можно еще попросить людей подготовиться по теме PHP и SQL, сказать что будешь это спрашивать. Для толкового студента вечера достаточно, чтобы выучить основы, если даже ничего не знает.
А по поводу адекватных спецов, которые не пишут код на бумажке... Значит работа не так и нужна, да и вам нафиг такой подарок нужен, если сегодня реверс строки в лом писать, что же будет когда его наймешь.
Re: Покритикуйте собеседование
От: MxMsk Португалия  
Дата: 09.08.11 12:31
Оценка:
Здравствуйте, monax, Вы писали:

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.

С одной стороны, ничего страшного в этом вопросе нет. Однако там найдется полно поводов для придирок. Например, зачтется ли мне ответ, если я тупо выделю память под другую строку и скопирую туда символы в обратном порядке? Должен ли я заниматься проверками на null, учитывать кодировку? Скорее всего это и вызывает неприятие. Задача простейшая, но правильно ее можно решить многими способами. Если ты ожидаешь единственного рассово-верного решения, где ходят по половинке строки, то хозяин барин, конечно, но на мой взгляд студент вполне может упустить из виду такое решение. В том числе, если он больше встречался с языками, где строки — неизменяемы.
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 12:48
Оценка:
Здравствуйте, Философ, Вы писали:

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


M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


Ф>В чём сложность?

Ф>На чём люди стопоряться? Какие проблемы у них возникают при переворачивании строк?
Ф>...не понимаю.

1. выходят за пределы строки
2. строка из-за сложностей в реализации остаётся исходной
3. теряют часть символов
4. городят огород из дополнительных массивов с конвертацией в строку (часто тоже с потерей символов)

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

Уточню, меня вполне устроит такой вот код:

function myrev($src) {
    $length = strlen($src);
    for ($i = 0; $i < $length / 2; $i++) {
        $a = $src[$i];
        $src[$i] = $src[$length - $i - 1];
        $src[$length - $i - 1] = $a;
    }
    return $src;    
}


и даже если человек вместо strlen по ошибке напишет count — это лишь небольшой минус, но не значит, что задача не решена.
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 12:57
Оценка:
Здравствуйте, MxMsk, Вы писали:

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


M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.

MM>С одной стороны, ничего страшного в этом вопросе нет. Однако там найдется полно поводов для придирок.

если цель придраться, то да — найдётся

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


зачтётся

MM>Должен ли я заниматься проверками на null, учитывать кодировку?


нет

MM>Скорее всего это и вызывает неприятие. Задача простейшая, но правильно ее можно решить многими способами. Если ты ожидаешь единственного рассово-верного решения, где ходят по половинке строки, то хозяин барин, конечно, но на мой взгляд студент вполне может упустить из виду такое решение. В том числе, если он больше встречался с языками, где строки — неизменяемы.


Вот решение, которое подходит под твоё описание. Если бы это был язык с неизменяемыми строками, то в цикле я бы просто создавал новую строку, а не менял старую. Этот код будет засчитан как верный. Может последовать вопрос про половинки строки. Если ответит, значит плюс умению держаться в стрессовых ситуациях, не ответит — минуса не получит.

$s = 'abcde';
$s2 = '';
for ($i = strlen($s) - 1; $i > -1; $i--) {
    $s2 .= $s[$i];
}

print $s2;
Re[3]: Покритикуйте собеседование
От: MxMsk Португалия  
Дата: 09.08.11 13:31
Оценка:
Здравствуйте, monax, Вы писали:

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

M>зачтётся

MM>>Должен ли я заниматься проверками на null, учитывать кодировку?

M>нет

Тогда ок!
Re[2]: Покритикуйте собеседование
От: Ulitka США http://lazarenko.me
Дата: 09.08.11 14:05
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


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


А интересно, как круче всего перевернуть строку? Ну просто ходить с конца и от начала и делать swap — то конечно просто. А вот SSE2 какой-то прикрутить, чтобы пожесточее перевернуть? Ну или можно на CUDA, распердолить потоков N / 2 где N — кол-во символов, каждый поток переворачивает свою пару, ггг
Re[4]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 14:57
Оценка:
Здравствуйте, elmal, Вы писали:

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


M>>1. выходят за пределы строки

E>При реализации на бумажке это не ошибка
M>>2. строка из-за сложностей в реализации остаётся исходной
E>При реализации на бумажке это не ошибка
M>>3. теряют часть символов
E>При реализации на бумажке это не ошибка
M>>4. городят огород из дополнительных массивов с конвертацией в строку (часто тоже с потерей символов)
E>Сложно себе это все представить, но возможно тут и ошибка, но не думаю что таких талантов много.

т.е. чтобы человек не написал — это всё не ошибка. зачем тогда вообще собеседование, может проще сразу на работу брать?

M>>Списать всё на стресс и волнение не могу, потому что задача простая и до этого человек держался спокойно и уверенно рассказывал о своих успехах.

E>Тем более, что обычно итерирование по строке через цикл на практике очень редко требуется, как результат, что там ставить — length() — 1 или length() хрен еще вспомнишь, так как 100 лет на практике не надо.

а написать код без индексов фантазии не хватает?

$str = 'abcd';
$dst = '';
foreach (str_split($str) as $ch) {
        $dst = $ch . $dst;
}


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

E>Он привык по быстрому написать на компе, написать тестик, прогнать тестик. Как результат, пункт 1 и 3 у кандидатов появится на практике только на твоих мегасобеседованиях. Вот выдели товарищу компутер, и странным образом количество успешных кандидатов увеличится.


какой тестик для 7 строк кода, 5 из которых — это объявление функции, скобки и возврат значения?

E>А давай я тебя спрошу, раз такой умный. Для начала проверим, способен ли ты к простейшим действиям, например набрать текст на клавиатуре. Итак, проверяю. Отойди от компьютера, и нарисуй на бумажке все клавиши компа, с расположением всех символов! Как не нарисовал, как это " с ' попутал? Так ты даже на юзера не тянешь, как вообще ты можешь работать с такими знаниями! Стресс наверно, но тыж вроде вполне успешно говорил про то, как зарубаешь кандидатов.


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

E>А давай проверим твои институтские знания. Ручку, бумажку, без инета, википедии, по честному... Расскажи ка мне свойства псевдообратных матриц. Расскажи ка мне в чем заключается симплекс метод. Расскажи как решать системы нелинейшых уравнений. Задачу оптимальной загрузи оборудования, формулировка и решения. Хм ... Чет как то от зубов не отскакивает смотрю, наверно лекции не посещал, троечник. Школьные знания давай проверим — напиши ка мне формулу вычисления корней кубического уравнения. Хм ... Ну хоть теорему Виета?

E>Ладно, давай про компьютеры. В каком году был построен Марк-1? Какая у него элементная база и характеристики? Так ... историю не знакмс, значит специальностью не интересуемся.

ни один из твоих вопросов не катит. я спрашивал только то, что нужно в работе, либо то, что в резюме заявлено как умение. кстати, для решения систем нелинейных уравнений мне приходилось делать свою реализацию метода Бройдена, так что могу рассказать, потому что работал с этим, а всё остальное не имеет к моей работе никакого отношения.
Re[3]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 15:16
Оценка:
09.08.2011 15:48, monax пишет:

>

> 1. выходят за пределы строки
> 2. строка из-за сложностей в реализации остаётся исходной
> 3. теряют часть символов
> 4. городят огород из дополнительных массивов с конвертацией в строку
> (часто тоже с потерей символов)

Значит по твоей вакансии к тебе идут особые персонажи. Возможно что-то
не так в тексте вакансии. Ужесточи требования в вакансии.
Просто я очень редко сталкивался с таким, обычно это происходило, когда
знакомых начальство притаскивало.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 15:19
Оценка:
09.08.2011 17:05, Ulitka пишет:
>Ну или можно на CUDA,
> распердолить потоков N / 2 где N — кол-во символов, каждый поток
> переворачивает свою пару, ггг
Вот такого кадра я бы тут отправил дальше работу искать.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Покритикуйте собеседование
От: BulatZiganshin  
Дата: 09.08.11 15:42
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>>Ну или можно на CUDA,

V>Вот такого кадра я бы тут отправил дальше работу искать.

и ошибся бы. меня менеджеры чуть не на коленях уламывали хоть что-нибудь реализовать на куде, поскольку это даст такой рекламный импульс...!
Люди, я люблю вас! Будьте бдительны!!!
Re: Покритикуйте собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 09.08.11 15:44
Оценка:
M>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php. Если php не его любимый язык, то допускается написать функцию на любом другом (потому что тот объём знаний php, который нужен в работе может быть получен за неделю). Этого кода на 5-10 строк достаточно, чтобы оценить логическое мышление на простой задаче.

и

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


Если так то имеет смысл поставить переворот строки в самое начало. Идея — не тратить много ресурсов на собеседование впустую, если Вы считаете что человек заведомо не подходит (фильтры организуются в порядке увеличения стоимости). Лично я считаю правильной идеей давать список вопросов с вариантами ответа перед интервью (по-крайней мере перед техническим интервью).
Re[2]: Покритикуйте собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 09.08.11 15:44
Оценка:
M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.
D>Не верю, чтобы студент 4-5го курса не мог бы это сделать. Как такое возможно
D>Возможно, не хотели. Иногда сразу видно, что эта компания, эта работа, этот собеседующий(как потенциальный начальник) вовсе не то, что хотелось бы иметь. Или задание сбило с толку своей простотой.

Люди, по нескольку лет работающие программистами тоже не всегда справляются.
Re[4]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 15:47
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Значит по твоей вакансии к тебе идут особые персонажи. Возможно что-то

V>не так в тексте вакансии. Ужесточи требования в вакансии.
V>Просто я очень редко сталкивался с таким, обычно это происходило, когда
V>знакомых начальство притаскивало.

возможно, что ты прав. если ещё один такой придёт, то так и сделаю
Re[4]: Покритикуйте собеседование
От: Ulitka США http://lazarenko.me
Дата: 09.08.11 15:51
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>09.08.2011 17:05, Ulitka пишет:

>>Ну или можно на CUDA,
>> распердолить потоков N / 2 где N — кол-во символов, каждый поток
>> переворачивает свою пару, ггг
V>Вот такого кадра я бы тут отправил дальше работу искать.

А почему? Вдруг он хороший программист, просто любопытный и идейный, да и разговор поддержать? Вот допустим у нас строка — 5K символов. Это влезет в 80 cache lines на каком-то Xeon-е. Что быстрее — идти с обеих сторон строки и делать swap или CUDA? Тут интересно как сработает prefetcher в случае reverse iteration, не будет ли давать cold miss на каждом 65-м байтике? Возможно, прийдется дать hint (ну, GCC например сама умеет такое делать, если использовать subscript). Ну или залить всю память в GPU, обсчитать и слить результат обратно? Или лучше host mapped mamory заиспользовать? Стойте, погодите, может MPI лучше прикрутить? Или самому распараллелить? Кстати, кто-то из кандидатов делал/упоминал loop unrolling?
Re: Покритикуйте собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 09.08.11 15:53
Оценка:
Имеет смысл IMHO поменять порядок.

Например так:
* вводная introductionary болтовня (типа чем компания занимается, кто нужен). Если есть HR — можно дать ему и не тратить время. Если Вы считаете что народ и так к вам прет — можно забить на эту стадию наверное.
* формальный тест на дебильность. Тест, который Вы считаете отсеивает тех, кто точно Вам не подходит. Сюда можно положить переворот строки и структуры файлов/классов. Если результат сильно не нравится — собеседование прекращатся, инача продолжаете.
* более содержательный разговор
Re[5]: Покритикуйте собеседование
От: Ulitka США http://lazarenko.me
Дата: 09.08.11 15:53
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

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


>>>Ну или можно на CUDA,

V>>Вот такого кадра я бы тут отправил дальше работу искать.

BZ>и ошибся бы. меня менеджеры чуть не на коленях уламывали хоть что-нибудь реализовать на куде, поскольку это даст такой рекламный импульс...!


Дык сложил бы два вектора в global memory и концы в воду
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 15:54
Оценка:
Здравствуйте, kosmik, Вы писали:

M>>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php. Если php не его любимый язык, то допускается написать функцию на любом другом (потому что тот объём знаний php, который нужен в работе может быть получен за неделю). Этого кода на 5-10 строк достаточно, чтобы оценить логическое мышление на простой задаче.


K>и


M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


K>Если так то имеет смысл поставить переворот строки в самое начало. Идея — не тратить много ресурсов на собеседование впустую, если Вы считаете что человек заведомо не подходит (фильтры организуются в порядке увеличения стоимости). Лично я считаю правильной идеей давать список вопросов с вариантами ответа перед интервью (по-крайней мере перед техническим интервью).


вариантов может быть много и не факт, что мой — лучший. когда искал прошлой зимой человека в группу, то увидел несколько новых для себя решений. а давать человеку сразу задание написать код, не поговорив — вот это уже невежливо и неадекватно. ну вот если непредвзято посмотреть, то собеседование — это не только выбор сотрудника с моей стороны, но и выбор работодателя с его стороны. если я начну сразу человека гонять вопросами, не объяснив, что он будет делать, зачем и для кого, а также сколько он будет получать за это, то я его вполне пойму, если он встанет и уйдёт сразу же. к тому же общий разговор в начале знакомства как раз помогает кандидату освоиться и не сильно теряться из-за стресса.
Re[5]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 16:04
Оценка:
09.08.2011 18:42, BulatZiganshin пишет:

>

> и ошибся бы. меня менеджеры чуть не на коленях уламывали хоть что-нибудь
> реализовать на куде, поскольку это даст такой рекламный импульс...!
Так а нафига что-то реализовывать — это же рекламный импульс? Главное в
требованиях к продукту написать, что нужна Tesla и пропиарить.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Покритикуйте собеседование
От: Vzhyk  
Дата: 09.08.11 16:09
Оценка:
09.08.2011 18:51, Ulitka пишет:

>

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

> Вот допустим у нас строка — 5K символов. Это

> влезет в 80 cache lines на каком-то Xeon-е. Что быстрее — идти с обеих
> сторон строки и делать swap или CUDA? Тут интересно как сработает
> prefetcher в случае reverse iteration, не будет ли давать cold miss на
> каждом 65-м байтике? Возможно, прийдется дать hint (ну, GCC например
> сама умеет такое делать, если использовать subscript). Ну или залить всю
> память в GPU, обсчитать и слить результат обратно? Или лучше host mapped
> mamory заиспользовать? Стойте, погодите, может MPI лучше прикрутить? Или
> самому распараллелить? Кстати, кто-то из кандидатов делал/упоминал loop
> unrolling?
Бррр. Что курил?
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Покритикуйте собеседование
От: shrecher  
Дата: 09.08.11 16:12
Оценка:
Здравствуйте, Alex Dav, Вы писали:

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


S>>А зачем? Задача на переворот строки — банально. Ее спрашивают на каждом втором собеседовании.

AD>А как часто вы это используете в жизни?

Это простое и понятное алгоритмическое задание, которе должен уметь решать любой программист.

AD>Лучше уж дать задачу — разбить строку на токены — это хоть живая вещь.


Это сложнее, на доске не написать.
Re: Покритикуйте собеседование
От: Abalak США  
Дата: 09.08.11 16:20
Оценка:
Здравствуйте, monax, Вы писали:

M>Теперь о собеседовании.


M>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php...


M>Потом рисую две таблицы на доске...


Имхо, годится.

M>После этих простых вопросов человек уже в теме и тогда меня начинает интересовать, способен ли человек разбивать задачу на мелкие подзадачи до того момента, как сядет писать код. Прошу его нарисовать мне структуру файлов/функий/классов, с помощью которых он бы реализовал систему управления контентом для этих двух таблиц. Т.е. хочу видеть, как он будет делать декомпозицию. Нескольких квадратиков с перечнем задач у каждого квадратика вполне достаточно, чтобы начать разговор и успешно его закончить через минут 10-20.


А вот тут не уверен. Все-таки навык более практический, приходящий с опытом. Хотя пример элементарный, может и сгодится, если строго не судить.

M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


Хехе, мне эту задачу задали на последнем этапе собеседования на вакансию сеньера с з/п далеко за сотню вечнозеленых Я для себя похожие выводы сделал, хотя сам этот алгоритм сочинял (если там есть, что сочинять) по ходу.
Re[2]: Покритикуйте собеседование
От: Abalak США  
Дата: 09.08.11 16:22
Оценка:
Здравствуйте, Abyx, Вы писали:

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


M>>После такой беседы даю человеку карандаш с листиком или предлагаю доску с маркером (кому как нравится) и прошу написать мне функцию для переворота строки на php.


A>я надеюсь вы сами на себе этот тест проверили? — взяли лист бумаги и написали переворот строки

A>(эксперимент не чистый, т.к. когда сам себя проверяешь — обстановка более спокойная)

Что там сложного, хоть на бумаге, хоть на доске? 5 строк кода, на php может еще меньше.
Re[3]: Покритикуйте собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 09.08.11 16:55
Оценка:
M>вариантов может быть много и не факт, что мой — лучший. когда искал прошлой зимой человека в группу, то увидел несколько новых для себя решений. а давать человеку сразу задание написать код, не поговорив — вот это уже невежливо и неадекватно. ну вот если непредвзято посмотреть, то собеседование — это не только выбор сотрудника с моей стороны, но и выбор работодателя с его стороны. если я начну сразу человека гонять вопросами, не объяснив, что он будет делать, зачем и для кого, а также сколько он будет получать за это, то я его вполне пойму, если он встанет и уйдёт сразу же. к тому же общий разговор в начале знакомства как раз помогает кандидату освоиться и не сильно теряться из-за стресса.

Какой лучший — это вопрос, на который можно ответить только зная Вашу ситуацию, поэтому отвечать на него придется Вам Все зависит от того кто Вам нужен, какова ситуация на рынке труда, как компания на нем позиционирована. Я не считаю что начало с тестов как-то оскорбительно, есть известные компании, чтобы только попасть на собеседования в которые нужно уже что-то написать/решить, а есть такие где интервью закончится сразу же если кандидат не знает чем занимается компания, в которую он пришел. Но, я думаю, с учетом российской специфики вводная болтовня должна быть, особенно если есть hr — логично начать именно с этого. Хотя, почитав сдешний форум, создается впечатление что разговор с симпатичной девушкой вводит многих как-минимум в ступор
Re[2]: Покритикуйте собеседование
От: monax  
Дата: 09.08.11 18:04
Оценка:
Здравствуйте, Abalak, Вы писали:

M>>После этих простых вопросов человек уже в теме и тогда меня начинает интересовать, способен ли человек разбивать задачу на мелкие подзадачи до того момента, как сядет писать код. Прошу его нарисовать мне структуру файлов/функий/классов, с помощью которых он бы реализовал систему управления контентом для этих двух таблиц. Т.е. хочу видеть, как он будет делать декомпозицию. Нескольких квадратиков с перечнем задач у каждого квадратика вполне достаточно, чтобы начать разговор и успешно его закончить через минут 10-20.


A>А вот тут не уверен. Все-таки навык более практический, приходящий с опытом. Хотя пример элементарный, может и сгодится, если строго не судить.


А что тут судить? Это ж не вопрос из разряда "сколько будет 2+2", где ответ один. Тут может идти обмен мнениями, можно подискутировать по поводу разбиения на части, можно что-то ещё придумать. В общем, это просто тема для разговора, а не вопрос с однозначным ответом.

M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


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


Дык мне и не нужно, чтобы человек на зубок помнил самый лучший алгоритм (если такой вообще есть), мне нужно чтобы он написал маленький кусок кода, который перевернёт строку задом наперёд. Я тут уже три варианта переворота написал, которые бы зачёл.
Re[6]: Покритикуйте собеседование
От: landerhigh Пират  
Дата: 10.08.11 00:54
Оценка:
Здравствуйте, shrecher, Вы писали:

AD>>А как часто вы это используете в жизни?

S>Это простое и понятное алгоритмическое задание, которе должен уметь решать любой программист.

std::string::rbegin() работает гораздо быстрее.

S>Это сложнее, на доске не написать.


Вы программируете на досках?
www.blinnov.com
Re[2]: Покритикуйте собеседование
От: gangof4  
Дата: 10.08.11 09:55
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


M>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


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


IMHO лучше попросить написать код, меняющий порядок слов в строке, а то переворот строки, это как-то уж совсем..
Причем я бы даже код не спрашивал, а просто сказать какой будет алгоритм.
Re: Покритикуйте собеседование
От: TimurSPB Интернет  
Дата: 10.08.11 10:01
Оценка:
Подход хороший. Но я всё таки против бумажки и карандаша. Ноутбук или десктоп предпочтительнее. Надо еще учесть что новое поколение специалистов от карандашей уже отвыкает. Объективно на столах специалистов начинающих сейчас карьеру очень мало блокнотиков-бумажек. У людей с большим опытом весь стол завален листочками с неведомыми набросками, кусками диаграмм и прочим.
Make flame.politics Great Again!
Re[6]: Покритикуйте собеседование
От: Alex Dav Россия  
Дата: 10.08.11 12:05
Оценка:
Здравствуйте, shrecher, Вы писали:

S>Это простое и понятное алгоритмическое задание, которе должен уметь решать любой программист.

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

S>Это сложнее, на доске не написать.

не спорю. Хуже того, когда спрашивали меня — мне еще привели код, где она вызывается, т.е. ф-ция должна была работать уже в написаном коде.
Re[3]: Покритикуйте собеседование
От: Ulitka США http://lazarenko.me
Дата: 10.08.11 13:10
Оценка:
Здравствуйте, gangof4, Вы писали:

G>Здравствуйте, kaa.python, Вы писали:


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


M>>>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.


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


G>IMHO лучше попросить написать код, меняющий порядок слов в строке, а то переворот строки, это как-то уж совсем..

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

Нужно было бы еще уточнить, как именно должен меняться порядок. А то можно и поменять два любых слова местами и все — готово.
Re[4]: Покритикуйте собеседование
От: kittown  
Дата: 17.08.11 12:48
Оценка:
Здравствуйте, elmal, Вы писали:

E>На практике человек ОЧЕНЬ редко пишет код на бумажке, это уже не актуально лет 20 минимум. Вот не привык он! Обленился, сейчас навык работы с перфокартами несколько потерял актуальность, очень жаль, что вы до сих пор с перфокартами работаете, пора б технику то обновить! Тем более, что обычно итерирование по строке через цикл на практике очень редко требуется, как результат, что там ставить — length() — 1 или length() хрен еще вспомнишь, так как 100 лет на практике не надо.


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

Относительно простой псевдокод можно набрать в комментариях и потом реализовывать, но комп все равно давит на мозг. Для чего-то реально мозгоемкого бумага (где написанное нельзя стереть и все исправления видны, так что писать приходится вдумчиво) и тихая обстановка рулят.

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

E>Он привык по быстрому написать на компе, написать тестик, прогнать тестик.


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

Про рутинный код не говорю. Там и тесты проще писать, и думать особо не надо.

E>Много с SQL работать приходится? Даешь доступ к реальной базе, и просишь написать запрос, удовлетворяющий условию. Просишь модифицировать реальный запрос. Нужно html верстать? Даешь реальную html, и просишь его немного модифицировать, а также попросить сказать, как бы это сделать пооптимальнее, чтоб часть кода кешировалась, стили ьыли настраиваемые и тому подобное. Надо немного программировать? Напиши сам формочку на jscript, с удобными интерфейсами, и попроси кандидата устранить дубликаты, например.

E>Ведь сделаешь если — времени меньше потратишь как своего, так и кандидата, да и больше информации о нем получишь.

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

Приходилось иметь дело с "реальными запросами" строчек в 30, которые оригинальные авторы уже не рисковали сильно переписывать. Детальный анализ, что там в конечном счете делается, проще всего провести в кресле за чашкой кофе с распечаткой, ручкой для пометок в руках, и еще листком бумаги для произвольных набросков. Ну, понятно (кто этим занимался), что срубить прирост производильности на пару десятичных порядков в таких случаях — обычное дело. IDE помогает мало, т.к. профайлер например намекнет на необходимость тех или иных индексов, а индексами такая шняга не решается. Нужен мозг. В ide он работает не лучше, чем на бумаге.

PS. Я отвечал с позиции senior-а. Для junior-а, действительно, на бумажке уметь писать необязательно — он еще не дорос. И алгоритмы оптимизировать не надо. Хорошо, если хоть реализует то, что уже разжевано.
Re: Покритикуйте собеседование
От: vsb Казахстан  
Дата: 17.08.11 14:20
Оценка:
Здравствуйте, monax, Вы писали:

M>После этих простых вопросов человек уже в теме и тогда меня начинает интересовать, способен ли человек разбивать задачу на мелкие подзадачи до того момента, как сядет писать код. Прошу его нарисовать мне структуру файлов/функий/классов, с помощью которых он бы реализовал систему управления контентом для этих двух таблиц. Т.е. хочу видеть, как он будет делать декомпозицию. Нескольких квадратиков с перечнем задач у каждого квадратика вполне достаточно, чтобы начать разговор и успешно его закончить через минут 10-20.


Человек без опыта реального программирования вполне может не уметь этого делать. С опытом тоже не факт, смотря где работал.

В принципе поддержу предыдущих ораторов в плане того, что бумажка очень неудобна. Возьмите ноутбук, настройте на нём окружение (апач, notepad++ с открытым php файлом, браузер с им же, чтобы смотреть результаты) и просите на нём делать задания. Не то, чтобы переворот строки было сложно написать на бумажке, но всё же полный цикл edit [compile] run проще. Да и интереснее наверное смотреть на кандидата в "боевых" условиях.
Re[3]: Покритикуйте собеседование
От: FirstStep Россия  
Дата: 18.08.11 00:57
Оценка:
Здравствуйте, monax, Вы писали:


M>Уточню, меня вполне устроит такой вот код:


А такой (извиняюсь за js):

javascript:alert('\u202E'+'строка для переворачивания');


?
Re[3]: Покритикуйте собеседование
От: FirstStep Россия  
Дата: 18.08.11 01:02
Оценка:
Здравствуйте, Ulitka, Вы писали:


U>А интересно, как круче всего перевернуть строку? Ну просто ходить с конца и от начала и делать swap — то конечно просто. А вот SSE2 какой-то прикрутить, чтобы пожесточее перевернуть? Ну или можно на CUDA, распердолить потоков N / 2 где N — кол-во символов, каждый поток переворачивает свою пару, ггг


Не знаю, по мне так проще вообще ничего не переворачивать, пускай система сама читает сроку с конца
Автор: FirstStep
Дата: 18.08.11
и дело в шляпе
Re[4]: Покритикуйте собеседование
От: monax  
Дата: 18.08.11 06:42
Оценка:
Здравствуйте, FirstStep, Вы писали:

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



M>>Уточню, меня вполне устроит такой вот код:


FS>А такой (извиняюсь за js):


FS>
FS>javascript:alert('\u202E'+'строка для переворачивания');
FS>


FS>?

FS>)

+1 к чувству юмора, но строку всё же стоит перевернуть обычными языковыми конструкциями, а не хитрыми хаками.
Re[6]: Покритикуйте собеседование
От: kittown  
Дата: 18.08.11 10:16
Оценка:
Здравствуйте, elmal, Вы писали:

E>Я даже соглашусь, но:

E>1) Здесь на бумажке требовалось написать тривиальный, но рабочий код. Тривиальная ошибка вида выход за пределы массива, считалась критичной. Соответственно никакой потребности в бамажке нет. И далее, на практике на бумажке требуют не набросать алгоритм, а чаще всего требуется полная реализация. Некоторые орлы хотят еще ввод вывод элементов чтоб был, если ввод вывод не написал то это недочет;

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

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

Это уже дело собеседующего, какому из этих двух стереотипов разработчика должен соответствовать нужный ему кандидат. Тест на написание точного кода больше проверяет на соответствие первой группе, но для этого он в общем-то вполне годен.

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

E>2) Когда мне дают задачу, где на бумажке требуется набросать высокоуровневый алгоритм — у меня никакого неприятия нет, я только приветствую такие задания, особенно если они приближены к реальности. Я готов выполнять, и действительно, я скорее всего на практике возьму именно бумажку. Но когда требуют чтоб я на бумажке этот алгоритм реализовал в деталях, с вводом-выводом, и без ошибок — такие задания меня просто бесят.


Спокойнее относиться надо. Не напишете идеально конечный код — ну и чорт с ним. Невысоко оценят правильный псевдокод при неполном точном коде — ну и чорт с ними. Их проблемы.
Re[7]: Покритикуйте собеседование
От: elmal  
Дата: 18.08.11 11:25
Оценка:
Здравствуйте, kittown, Вы писали:

K>Спокойнее относиться надо. Не напишете идеально конечный код — ну и чорт с ним. Невысоко оценят правильный псевдокод при неполном точном коде — ну и чорт с ними. Их проблемы.

Да я и так спокоен как удав . Мне по большому счету не так то охота работать неизвестно у кого, при необходимости срочно сменить работу я и по знакомству пролезу по крайней мере в 2 фирмы, возможно и в 3 (правда с потерей в зарплате, ибо она и у собеседующих будет меньше, про другие условия я молчу — тоже потеряю. Да и не любитель я устройства на работу по блату). Просто своего времени жалко, от кодирования на бумажке я не получаю ни малейшего удовольствия. При этом я даже от простеньких логических задач могу удовольствие получить, но вот от кодирования на бумажке ни малейшего у меня удовольствия, одно раздражение. Последний раз я на бумажке кодировал в 1990-м году, тогда это было оправдано.
Re[6]: Покритикуйте собеседование
От: genre Россия  
Дата: 18.08.11 15:13
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Только такой "непростой код" вообще не на языке программирования обычно выражен. А какими-нибудь схемами, диаграммами — в общем, псевдокодом.

SD>Писать код на реальном языке программирования на бумажке неудобно и непривычно. Простой пример: я вот _вообще_ не помню, какие классы в Java работают с файлами (нутром чую, что должен быть класс File, у него какие-нибудь Input/Output Streams, и какие-нибудь форматтеры али ридеры). Я не помню точных названий классов и их методов (в основном потому, что никогда не надо было). Написать код на бумажке не смогу. А вот с IDE + google — легко, названия находятся за 5 минут. Методы — еще за 5 минут.

А что на твой взгляд должен очень хорошо знать программист на Java? ну если файлы помнить не надо, то что надо?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[3]: Покритикуйте собеседование
От: tofox2 Россия  
Дата: 18.08.11 15:38
Оценка:
Здравствуйте, monax, Вы писали:

M>
M>function myrev($src) {
M>    $length = strlen($src);
M>    for ($i = 0; $i < $length / 2; $i++) {
M>        $a = $src[$i];
M>        $src[$i] = $src[$length - $i - 1];
M>        $src[$length - $i - 1] = $a;
M>    }
M>    return $src;    
M>}
M>


и что, реально много людей не могут это написать?
Re[4]: Покритикуйте собеседование
От: kittown  
Дата: 18.08.11 16:30
Оценка:
Здравствуйте, tofox2, Вы писали:

M>>
M>>function myrev($src) {
M>>    $length = strlen($src);
M>>    for ($i = 0; $i < $length / 2; $i++) {
M>>        $a = $src[$i];
M>>        $src[$i] = $src[$length - $i - 1];
M>>        $src[$length - $i - 1] = $a;
M>>    }
M>>    return $src;    
M>>}
M>>


T>и что, реально много людей не могут это написать?


Вы не видели людей, которые после курса по Си на экзамене отказываются написать код подсчета длины строки ? То есть просто опускают руки, и с понурой головой следуют на выход? А они есть.

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

Никаких внятных выводов, не имея соответствующей подготовки и не диагностируя человека подробно, вы из этих фейлов не сделаете. Понравился человек все равно — можно брать, недостаточно понравился — не брать. Как-то так.
Re[5]: Покритикуйте собеседование
От: tofox2 Россия  
Дата: 18.08.11 16:49
Оценка:
Здравствуйте, kittown, Вы писали:

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


M>>>
M>>>function myrev($src) {
M>>>    $length = strlen($src);
M>>>    for ($i = 0; $i < $length / 2; $i++) {
M>>>        $a = $src[$i];
M>>>        $src[$i] = $src[$length - $i - 1];
M>>>        $src[$length - $i - 1] = $a;
M>>>    }
M>>>    return $src;    
M>>>}
M>>>


T>>и что, реально много людей не могут это написать?


K>Вы не видели людей, которые после курса по Си на экзамене отказываются написать код подсчета длины строки ? То есть просто опускают руки, и с понурой головой следуют на выход? А они есть.


как бы задачки школьные, странно это. если б меня попросили такое написать, я б оскорбился, ну или недоумевал по меньшей мере.
Re[4]: Покритикуйте собеседование
От: zubr Россия  
Дата: 18.08.11 17:50
Оценка:
Здравствуйте, shrecher, Вы писали:

Z>>надо придумать задачу в которой это будет требоваться, но только будет завуалировано.

S>А зачем? Задача на переворот строки — банально. Ее спрашивают на каждом втором собеседовании.
1. задача заезженна по самое не балуй, далеко от неё не укопаешь
2. я не знаю вообще в жизни где она бы применялась — разве только AMBULANCE переворачивают.

сложная задача позволит вам посмотреть как человек думает (на самом деле сейчас умру со смеху — один идиот придумал теперь бараны повторяют).
как он её решит — какое решение придумает, и как для себя потом докажет что это лучшее решение.
с другой стороны что еще лучше попытаться увести человека сразу в другом направлении.
то есть посмотреть как ваш авторитет давит (довольно сложно посмотреть на уже работающей команде кстати, фиг кто вам из текущих сотрудников покажет это лучше).
Re[6]: Покритикуйте собеседование
От: kittown  
Дата: 19.08.11 10:28
Оценка:
Здравствуйте, tofox2, Вы писали:

K>>Вы не видели людей, которые после курса по Си на экзамене отказываются написать код подсчета длины строки ? То есть просто опускают руки, и с понурой головой следуют на выход? А они есть.


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


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

Умение отличать простые задачи (и решать их быстро, просто, не парясь) от сложных (которые решать вдумчиво) — очень важный скилл. С которым довольно фигово у олимпиадников.
Re[7]: Покритикуйте собеседование
От: kuzmaprutkov2  
Дата: 19.08.11 10:41
Оценка:
Здравствуйте, kittown, Вы писали:

С которым довольно фигово у олимпиадников.

Первый раз такое слышу =) откуда это навеяло?
Re[5]: Покритикуйте собеседование
От: Stanislav V. Zudin Россия  
Дата: 19.08.11 10:50
Оценка:
Здравствуйте, zubr, Вы писали:

Z>>>надо придумать задачу в которой это будет требоваться, но только будет завуалировано.

S>>А зачем? Задача на переворот строки — банально. Ее спрашивают на каждом втором собеседовании.
Z>1. задача заезженна по самое не балуй, далеко от неё не укопаешь
Z>2. я не знаю вообще в жизни где она бы применялась — разве только AMBULANCE переворачивают.

Переворот текстовых строк, согласен, экзотическая операция.
А вот в геометрических задачах перевернуть массив вершин — частая операция.
Кстати, как и переворот односвязного списка (тоже частенько спрашивают на собеседованиях).
_____________________
С уважением,
Stanislav V. Zudin
Re[8]: Покритикуйте собеседование
От: genre Россия  
Дата: 22.08.11 10:18
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Вывод: на собеседовании надо проверять умение человека _решать задачу_, а не функционирование его головы в режиме справочника. Благо в интернете все равно справочного материала больше.


все верно. только вот интересно как предполагается проверять умение человека решать задачу не давая ему никаких задач?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[9]: Покритикуйте собеседование
От: SkyDance Земля  
Дата: 23.08.11 00:41
Оценка:
G>все верно. только вот интересно как предполагается проверять умение человека решать задачу не давая ему никаких задач?

Например, дать ему компьютер. Эх, помню 2000 год, чудесную контору Агава — пришел, посадили за комп, дали задание, ушли и не парили мозг, спокойно сел, почитал задание, сделал, показал, объяснил, — все! Скажу честно: концентрация очень хороших программистов именно вот с таким методом набора — впечатляющая. Пожалуй, что наивысшая среди подобных фирм. Я веду речь только о разработке софта (не веб-порталов и прочих хостингов, а именно те люди, кто на С/С++ писали и до сих пор пишут).

Другой вариант — поговорить. Именно что по основам. Можно без терминов (человеку свойственно забывать неиспользуемые термины), но по общим вещам — например, как работает TCP. Как организовать man-in-the-middle. А можно ли защититься от MITM? А как? А без использования third-party trusted store? Во, придумали trusted network... как, не мы первые?
Если кандидат сообразительный, даже без знаний о существовании PGP (там все уже украдено до нас) он сможет решить задачу о создании сети доверия.
Re: Покритикуйте собеседование
От: ArtemGorikov Австралия жж
Дата: 23.08.11 00:57
Оценка:
Здравствуйте, monax, Вы писали:

Укажи вилку на эту "вроде приличную зп для Ростова"
Re[10]: Покритикуйте собеседование
От: genre Россия  
Дата: 23.08.11 08:10
Оценка:
Здравствуйте, SkyDance, Вы писали:

G>>все верно. только вот интересно как предполагается проверять умение человека решать задачу не давая ему никаких задач?


SD>Например, дать ему компьютер. Эх, помню 2000 год, чудесную контору Агава — пришел, посадили за комп, дали задание, ушли и не парили мозг, спокойно сел, почитал задание, сделал, показал, объяснил, — все! Скажу честно: концентрация очень хороших программистов именно вот с таким методом набора — впечатляющая. Пожалуй, что наивысшая среди подобных фирм. Я веду речь только о разработке софта (не веб-порталов и прочих хостингов, а именно те люди, кто на С/С++ писали и до сих пор пишут).


если честно не вижу большой разницы на листочке писать или на компе. ну будет код на листочке некомпиляемым, с не совсем точными именами функций, ну и что. все равно видно будет способен человек код писать или нет.


SD>Другой вариант — поговорить. Именно что по основам. Можно без терминов (человеку свойственно забывать неиспользуемые термины), но по общим вещам — например, как работает TCP. Как организовать man-in-the-middle. А можно ли защититься от MITM? А как? А без использования third-party trusted store? Во, придумали trusted network... как, не мы первые?

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

поговорить это естественно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re: Покритикуйте собеседование
От: Piko  
Дата: 23.08.11 20:08
Оценка:
M>З.Ы. я был удивлён, как много людей не способны написать код для переворачивания строки.

Я вот помню перешёл в математическую гимназию в 10-ом классе. Там на первом уроке информатики учительница спросила
— "Кто умеет программировать?".
Поднял руку только я — дали задание похожее на переворот строки: является ли input строка/слово палиндромом (одинаково читается с обоих концов).
Этот первый урок проходил в классе без компов, поэтому писал программу тетрадке.
Решил, потом ещё проверили в компьютерном классе — заработало.
Меня тогда больше всего удивило, что к 10-му классу в математической гимназии никто не научился программировать. А учительницу больше всего удивило, что я пришёл из обычной школы и был единственным кто решил задачу.
Re[3]: Покритикуйте собеседование
От: Piko  
Дата: 23.08.11 20:15
Оценка:
Здравствуйте, Ulitka, Вы писали:

U>А интересно, как круче всего перевернуть строку? Ну просто ходить с конца и от начала и делать swap — то конечно просто. А вот SSE2 какой-то прикрутить, чтобы пожесточее перевернуть? Ну или можно на CUDA, распердолить потоков N / 2 где N — кол-во символов, каждый поток переворачивает свою пару, ггг


На CUDA совсем не круто, так как будет медленней чем на CPU — скорость передачи данных на GPU меньше чем скорость обычной памяти.
Re[11]: Покритикуйте собеседование
От: SkyDance Земля  
Дата: 24.08.11 23:31
Оценка:
AD>а на фига человеку знать как работает TCP? Как часто в крупном проекте вы пишите модули соединения? —

Естественно, я писал о том, что близко к моему нынешнему проекту. В другой компании понадобятся другие базовые знания. Скажем, про то, как устроена JVM.
Re[11]: Покритикуйте собеседование
От: SkyDance Земля  
Дата: 24.08.11 23:32
Оценка:
G>если честно не вижу большой разницы на листочке писать или на компе. ну будет код на листочке некомпиляемым, с не совсем точными именами функций, ну и что. все равно видно будет способен человек код писать или нет.

Разница существенна Я уже объяснял: на листочке, без MSDN/Google/javadoc и прочих подсказок можно банально не вспомнить, как, к примеру, читать файл. Ну просто потому, что редко вообще с этим сталкивался, все шло через ORM + DB.
Re[3]: Покритикуйте собеседование
От: msk78 Россия http://miccro.livejournal.com
Дата: 25.08.11 14:35
Оценка:
M>Уточню, меня вполне устроит такой вот код:

M>
M>function myrev($src) {
M>    $length = strlen($src);
M>    for ($i = 0; $i < $length / 2; $i++) {
M>        $a = $src[$i];
M>        $src[$i] = $src[$length - $i - 1];
M>        $src[$length - $i - 1] = $a;
M>    }
M>    return $src;    
M>}
M>


Здесь ключевые слова выделены выше — "меня устроит".
А вот что Вас устроит знают только Вы сами и Господь Бог.

Если уж Вам так важно, чтобы кандидат решил эту задачу, как уже посоветовали,
оставьте его одного в комнате с компьютером минут на 30-60.
Думаю, количество вас-устраивающих увеличится.

PS : А так можно спрашивать всё что угодно. Можно попросить штаны снять например. Часть уйдёт.
Оставшихся попросить снять трусы. Уйдёт ещё часть. Оставшихся набирайте
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.