Re[5]: собеседование
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 14.01.10 15:08
Оценка:
Здравствуйте, errest, Вы писали:

PG>>Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор.

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

E>то есть надо что-то вроде этого:

E>#include <stdio.h>
E>#include <string.h>


E>void main()

E>{
E> char a[100],b[100];

E> gets(a);

E> for (int i=0; i<strlen(a); i++)
E> {
E> b[i]=a[strlen(a)-i-1];
E> }
E> b[strlen(a)] = 0;
E> puts(b);
E>}

ударим gets()-ом по фиксированному малоразмрному буферу!!!

... на лозунг сойдт?
... << RSDN@Home 1.2.0 alpha 4 rev. 1253>>
Re[9]: собеседование
От: StandAlone  
Дата: 14.01.10 15:10
Оценка:
Здравствуйте, denisko, Вы писали:

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


D>В прошлом примере ты очень изящно и неуйстойчиво уронил приложение.


Ага . И на эту тему с интервьюером можно поговорить столько, что он забудет про все свои дурацкие задачки на подсчеты битов.
Re[5]: собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 14.01.10 15:30
Оценка:
Сакральный смысл очень прост — умение решать задачки — вполне нормальный proxy ( http://en.wikipedia.org/wiki/Proxy_(statistics) ) для способностей кандидата. То, что кандидату не придется решать такую или подобные задачи в реальном проекте ничего не меняет.
Re[5]: собеседование
От: Handie  
Дата: 14.01.10 15:31
Оценка:
>то есть надо что-то вроде этого:
E>#include <stdio.h>
E>#include <string.h>


E>void main()

E>{
E> char a[100],b[100];

E> gets(a);

E> for (int i=0; i<strlen(a); i++)
E> {
E> b[i]=a[strlen(a)-i-1];
E> }
E> b[strlen(a)] = 0;
E> puts(b);
E>}

Плохое решение.
1) никто не просил писать программу с вводом и выводом, достаточно написать функцию
const char* strrev(const char *src);
не для майна задачка

2) задача решается in-place, без двух буфферов

3) существуют указатели и *begin++ = *end-- выглядит симпатичней
В реале
char tmp = *begin;
*begin++ = *end;
*end-- = tmp;
Re[2]: собеседование
От: Handie  
Дата: 14.01.10 15:36
Оценка: -1
LMA>Напишите функцию, вычисляющую среднее значение двух любых значений типа int:
LMA>int avg(int x, int y);

Вы нанимаете умственно отсталых инвалидов?

LMA>Предположим, что у Вас есть некий класс, реализующий идиому pimpl. Требуется реализовать для него эффективную специализацию функции swap.


Бред какой-то
Re[2]: собеседование
От: Handie  
Дата: 14.01.10 15:38
Оценка: 1 (1) :))) :)
S>одна из компаний давала написать простой интопритатор с ваис подобного языка (перед приходом на собеседование)

Проявил волю к победе и продемонстрировал полезный для работодателя скиллс — умение работать за бесплатно. Такие люди м нужны.
Re[6]: собеседование
От: sergey2b ЮАР  
Дата: 14.01.10 16:36
Оценка:
Здравствуйте, Handie, Вы писали:

H>3) существуют указатели и *begin++ = *end-- выглядит симпатичней

H>В реале
H>char tmp = *begin;
H>*begin++ = *end;
H>*end-- = tmp;

на такое решение обычно говорят а теперь тоже самое без char tmp (типо через XOR)
Re[6]: собеседование
От: StandAlone  
Дата: 14.01.10 16:39
Оценка:
Здравствуйте, kosmik, Вы писали:

K>Сакральный смысл очень прост — умение решать задачки — вполне нормальный proxy ( http://en.wikipedia.org/wiki/Proxy_(statistics) ) для способностей кандидата. То, что кандидату не придется решать такую или подобные задачи в реальном проекте ничего не меняет.


Да неужели? КАКИХ способностей? Решать задачки? Особенно такие — на подсчет битов — наследие тех времен, когда динозавры были большие, вулканы высокие, а все программирование сводилось к "Численные методы решения задач на ЭВМ"?

-Э-э-эй, ты, бородатый! Ты что мне дал?! Это же великая теорема Ферма!


Вы, когда мастеров-плиточников на работу нанимаете, тоже им задачки "собери 2 квадратных метра из 4 плиток" подкидываете? Или летку-еньку станцевать просите?
Re[3]: собеседование
От: LuciferSaratov Россия  
Дата: 14.01.10 17:58
Оценка: +1 :)
Здравствуйте, Handie, Вы писали:

H>Ну и тест на "лоха" с << и | в цикле.


Это если он совсем лох, будет << и |
А чтобы работало, надо << и &
Re[3]: собеседование
От: LuciferSaratov Россия  
Дата: 14.01.10 18:02
Оценка:
Здравствуйте, Handie, Вы писали:


LMA>>Напишите функцию, вычисляющую среднее значение двух любых значений типа int:

LMA>>int avg(int x, int y);

H>Вы нанимаете умственно отсталых инвалидов?


Чисто ради интереса, вот ты бы как реализовал такую функцию?
Re[7]: собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 14.01.10 20:11
Оценка:
SA>Да неужели? КАКИХ способностей? Решать задачки? Особенно такие — на подсчет битов — наследие тех времен, когда динозавры были большие, вулканы высокие, а все программирование сводилось к "Численные методы решения задач на ЭВМ"?

Why not? Если человек не способен решить задачку, считающуюся в данной компании показателем некоторого минимального уровня соображения, написания кода, проверки его, какой смысл дальше тратить на него время?

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

SA>Вы, когда мастеров-плиточников на работу нанимаете, тоже им задачки "собери 2 квадратных метра из 4 плиток" подкидываете? Или летку-еньку станцевать просите?


Ничего не могу сказать, я в другой области работаю
Re[3]: собеседование
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 14.01.10 20:18
Оценка:
H>Вы нанимаете умственно отсталых инвалидов?

Задания показывают не то, кого нанимают, а кого не нанимают
Re[10]: собеседование
От: Ytz https://github.com/mtrempoltsev
Дата: 14.01.10 21:33
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Ага . И на эту тему с интервьюером можно поговорить столько, что он забудет про все свои дурацкие задачки на подсчеты битов.


Не в обиду, но вы написали два варианта решения элементарной задачи и не один из них не работает, не понятно о чем вообще после этого говорить.
Re[2]: собеседование
От: Ytz https://github.com/mtrempoltsev
Дата: 14.01.10 21:54
Оценка:
Здравствуйте, LordMAD, Вы писали:

LMA>Напишите функцию, вычисляющую среднее значение двух любых значений типа int:

LMA>int avg(int x, int y);

А подвох в чем? В проверке на переполнение, округлении результата деления или использовании сдвига вместо деления?
Re: собеседование
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 14.01.10 23:13
Оценка:
Здравствуйте, errest, Вы писали:

E>Какие тестовые задания могут дать на C/C++?

E>Нужны простенькие — типа сортировки массива и найти ошибки

Скажем просто: если у тебя нет практического опыта работы на C++ (и на C), то любой тест может оказаться камнем преткновения. Если есть, то ты всегда найдёшь, как обойти потенциально острые углы.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[6]: собеседование
От: Олег К.  
Дата: 15.01.10 01:33
Оценка:
E>ИМХО история у всех этих задачь такова — по этим задачам гоняли в институте. Далее, кто-то попал на работу, оказался набирающим. Как определять квалификацию не знает, и не находит ничего лучшего, как использовать те же критерии оценки, какие были в институте. Далее появляются первые люди под его началом, те снова начинают набирать людей. И снова не знают что спрашивать, и спрашивают именно так, как их гоняли в институте. Ситуация усугубляется тем, что часто народ становится начальниками, так и не научившись программировать, так и не поняв, а что же главное в профессии разработчика и что реально ему требуется в работе.
А ты знаешь? Я видел уже пример твоего идеального интервью.

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

E>Мне вообще веселит, как набирают. Человека с 10 летним опытом будут гонять по задачкам, которыми в институте гоняют, и наоборот, студента без опыта будут просить спроектировать систему, спрашивать о роли в прошлых проектах и т.д .

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

Я тоже давал задачку перевернуть строку на интервью. Один из последних кого я интервьюировал, чувак с многолетним опытом, использовал memcpy() (!) чтобы скопировать char. Сейчас со мной сидит чувак как раз с 10-летним опытом программирования на плюсах и время от времени задает мне вопросы по этому языку. Я, в принципе, не против но некоторые его перлы убивают просто. Один из его перлов: "почему я возвращаю ссылку на локальный объект и код не работает?" И аналогичных вопросов — порядком и я не преувеличиваю. А ты говоришь что синьйоров не надо проверять на знания языка. Впрочем, как погляжу, для тебя это больная тема.
Re[7]: собеседование
От: MozgC США http://nightcoder.livejournal.com
Дата: 15.01.10 01:43
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Я не думаю что кто-либо будет спрашивать студентов о ролях в предыдущих проектах, но меня откровенно умиляют заявления что человека с 10-летним опытом знания плюсов спрашивать не нужно.

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

Он же вроде говорил про алгоритмы, а не знания языка. Лично я например уже около 5 лет на C# пишу, и действительно низкоуровневые алгоритмы мне по работе писать практически не приходится. И получается, что на собеседовании меня сольет какой-нибудь чел, попросивший написать быструю сортировку (ну да, честно скажу — не помню, может лет 5 назад и использовал еще в универе в лабораторной какой-нибудь), и потом еще будет удивляться и тыкать мне как это я 5 лет работаю, когда не знаю даже алгоритма быстрой сортировки.
Re[2]: собеседование
От: Sitrix Россия  
Дата: 15.01.10 02:03
Оценка:
Здравствуйте, Ulitka, Вы писали:

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


E>>Какие тестовые задания могут дать на C/C++?

E>>Нужны простенькие — типа сортировки массива и найти ошибки

U>Мне очень нравятся string similarity алгоритмы (http://www.dcs.shef.ac.uk/~sam/stringmetrics.html).

U>Вряд-ли кто-то ответит что-то вменяемое, если никогда с этим не сталкивался

Т.е. сразу дать понять что вы его завалили, и меньше предлагать зп?
Re[8]: собеседование
От: MozgC США http://nightcoder.livejournal.com
Дата: 15.01.10 02:03
Оценка: 6 (1) +2
Вообще такие споры по поводу вопросов на собеседовании и, в частности, вопросов по различным алгоритмам возникают из-за того, что все мы работаем с разными вещами, и увлекаемся тоже разными вещами. Кому-то по работе часто нужно писать эффективные достаточно низкоуровневые алгоритмы обработки данных, кто-то увлекается решением алгоритмических задач и этюдов, и соответственно будет задавать такие вопросы на собеседовании. А кто-то работает с более высокоуровневыми вещами и решает совсем другие проблемы. Мне, например, сейчас нужно продумать дизайн веб-сервиса для сотен наших клиентов, и продумать его так, чтобы сотни клиентов могли потом долго этим веб-сервисом пользоваться, встраивая работу с ним в свой внутренний софт. И сделать нужно так, чтобы через неделю не оказалось, что что-то не продумано, или что-то надо переделать так, что у клиентов код использующий наш веб-сервис перестанет работать. Или чтобы не пришлось писать через неделю всем клиентам письма, сообщая "вы знаете, мы тут кое что добавили/переделали в нашем веб-сервисе" или "доводим до вашего сведения, что теперь этот метод может выбрасывать такое-то исключение". Но при этом алгоритм быстрой сортировки я не помню. У меня просто другие задачи.
Re[7]: собеседование
От: elmal  
Дата: 15.01.10 06:13
Оценка: 1 (1)
Здравствуйте, Олег К., Вы писали:

ОК>По мне, так перевернуть строку лучше чем радикс сорт. Если ты такой крутой в программировании, то тебе раз плюнуть перевернуть строку. Не так ли?

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

ОК>Я не думаю что кто-либо будет спрашивать студентов о ролях в предыдущих проектах, но меня откровенно умиляют заявления что человека с 10-летним опытом знания плюсов спрашивать не нужно.

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

ОК>Впрочем, как погляжу, для тебя это больная тема.

У меня не плюсы, а язык на порядок попроще. Никогда у меня не было с ним проблем. Всякие тесты вроде проходил всегда, правда не всегда идеально. У меня тема больная совершенно по другой причине. У меня есть куча сильных сторон, именно практически сильных сторон. Умею бороться со сложностью, умение написать надежно, расширяемо и поддерживаемо. Умудряюсь нормально проектировать в условиях жестких сроков, когда написать по нормальному времени нет, надо все ASAP, приходится идти на компромис, умудряюсь сделать каркас по правильному в рамках мелкой задачи и постепенно, в следующих задачах, перевожу все на нормальный дизайн, а не пишу в лоб, как остальные. Более того, сходу понимаю чужие архитектурные решения, т в состоянии вписывать в чужие решения свои. За счет чего сокращаются как сроки разработки, так и потом практически нет багов при тестировании, а если есть — фиксятся мгновенно, баги не архитектурные, а допущенные по невнимательности. Так вот, сильные стороны мои на собеседованиях никого не интересуют совершенно, вместо этого меня гоняют по слабым сторонам, которые на практике мне не требуются, иначе бы я их подтянул. Слабейшая сторона у меня при прохождении собеседований — многопоточность. А так как у меня одно собеседование в 2 месяца в лучшем случае, то я забываю кое какие детали, так как не используются они у меня в работе. При реальной работе я обставлю всех кандидатов, конкурентов не боюсь, а о них мечтаю. При собеседованиях — приоритет будет у того, кто меньше ошибется в вопросах многопоточности. Отношусь философски — не требуются мои сильные стороны, вам же хуже. А может и лучше, а то если возьмете меня, то по прошествии времени, авторитет будет у меня, а не у вас .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.