Здравствуйте, Vzhyk, Вы писали:
V>31.07.2012 9:31, PZI пишет:
>> Вы настолько мало пишите кода, что написать несколько строк на бумаге у >> вас вызывает проблемму? V>Лично я стараюсь как можно меньше кода писать. А когда получается, то и V>вообще не писать. Понятно, что этот подход сильно отличается от V>современно, когда код строчат десятипальцевым методом.
Да все верно, но на собеседованиях проверяют не на "хочешь ли ты писать код", а на "можешь ли ты писать код".
31.07.2012 0:24, nightcode пишет:
> S>Ну и что соврать, когда просят написать strcpy? > ты не в состоянии написать strcpy на бумажке ?
Нормальный не в состоянии. Просто погадить на бумажка, конечно, в
состоянии. Кстати, я уже давно разучился писать код за 5 мин — ибо за
такое время только дерьмо и выходит.
Только кому от этого польза?
Мне — нет, потому как результат никакой и потерянное время на этом
собеседовании.
Работодателю — нет, потому как ничего не выяснил о мне, как о
специалисте и потерял возможный доход.
Копрофилу-собеседовалю — да, получил удовольствие от созерцания дерьма.
31.07.2012 12:54, PZI пишет:
> Да все верно, но на собеседованиях проверяют не на "хочешь ли ты писать > код", а на "можешь ли ты писать код".
так да, именно это требуется (как говорится, чукча не читатель — чукча
писатель), зато код потом такой, что этим писателям руки отрывать охота.
Лучше бы меньше писали, а больше читали и кода в том числе, всем больше
пользы будет. 10 раз задумаются писать или лучше не писать.
Я бы, вообще всех студиозусов (после института) года на 2-3
исключительно на фиксинг багов садил и заставлял читать то дерьмо, что
до них понагадили. По крайней мере до многих бы дошло что и как писать
не надо, и лучше вообще код не писать.
Но, нынче ситуация в нашем бизнесе такова, что качественные и работающие
программы не просто не нужны, а фактически запрещены. Сейчас нам деньги
платят за то, чтобы мы максимально много неработающего бреда строчили,
чтобы простейшие задачи мы решали максимально сложными методами. Так
называемый затратный механизм, чем больше мы времени и ресурсов
потратим, тем больше нам заплатят (почти как во "времена застоя").
Здравствуйте, ResidentR6, Вы писали:
RR>Это лишь пример одного из тысяч вопросов, которые ДЕЙСТВИТЕЛЬНО нужно RR>знать. Притом на уровне понимания сути, а не зазубривания определений.
Это пример одного из бредовейших вопросов. Кстати, ответа я так ни от кого не увидел.
Напомню "чем абстрактный класс отличается от интерфейса".
Здравствуйте, Vzhyk, Вы писали:
V>31.07.2012 12:54, PZI пишет:
>> Да все верно, но на собеседованиях проверяют не на "хочешь ли ты писать >> код", а на "можешь ли ты писать код". V>так да, именно это требуется (как говорится, чукча не читатель — чукча V>писатель), зато код потом такой, что этим писателям руки отрывать охота.
Бывает и так, но вероятность того, что человек который не в силах вообще ничего написать на бумажке, будет писать код лучше чем тот кто написал, на мой взгляд значительно меньше. Ибо тот кто много работает с кодом(не с большим колличеством кода, а много по времени), хочет он этого или нет, скорее всего будет писать код лучше. Ессно наверно бывают исключения, но я не встречал...
Здравствуйте, Synapse, Вы писали:
S>Решил прокачать этот скилл в реальных условиях, дома все-таки не то, нет стресса. Есть не слишком крутые московские конторы, где это требуют на собеседовании?
Я в одной конторе в Одессе на бумажке сортировку вставками писал
А потом ещё quicksort накидал схематически.
Это кстати первый раз в жизни такое собеседование было.
Здравствуйте, PZI, Вы писали:
PZI>И как уже отметили ниже, обычно просят написать лишь фрагмент кода, и при этом не смотрят на точки/запятые/скобки. Если это вызывает проблеммы у человека, то это как минимум странно. Причем до этого человеку вроде было не влом проапдейтить резюме, прийти в контору на собеседование. А тут при просьбе написать 5 строчек кода, вдруг встало влом... Может человеку недостает хинтов ИДЕ и гугла? А это, как ни странно, значит, что человек ну очень мало писал кода.
Ага, 5 строчек. Проверять на бумажке граничные условия задолбаешься. Напишешь же в 5 строчек без проверки — будет no hire. И что, мне интересно, можно уложить в 5 строчек?
itoa например, которое на бумажке мне не напряжно написать:
String itoa(int i, int base) {
String resut = getSign(i);
int currentDigitCount = getDigitsCount(i, base);
do {
result += nextDigit(i, currentDigitCount, base);
} while (--currentDigit > 0);
}
7 строчек, а не 5, все равно не уложился. Примут такое? Нет, не примут. Ибо я не расписал остальные функции — задача не решена. А также я не расписал граничные условия, нужно еще проверять что система счисления в заданном диапазоне — это ошибки! А распишу если — будет больше семи строк, плюс потом скажут недостатки, что не в одной функции все сделал, а также что не оптимально, и надо не String использовать, а StringBuilder (а мне это на бумажке в лом, я даже в реальном коде не всегда с этим заморачиваюсь).
Также не забываем, что itoa это слишком простая задача для решения на бумажке, и все таки дадут что посложнее скорее всего. Но в том стиле, который написал я — это решать нельзя на собеседовании однозначно!
А вот "правильное" решение, что ожидается (скопипастил только что из инета, как раз как пример что нужно писать в этом случае и что ожидают):
char *itoa(int value)
{
int count, /* number of characters in string */
i, /* loop control variable */
sign; /* determine if the value is negative */char *ptr, /* temporary pointer, index into string */
*string, /* return value */
*temp; /* temporary string array */
count = 0;
if ((sign = value) < 0) /* assign value to sign, if negative */
{ /* keep track and invert value */
value = -value;
count++; /* increment count */
}
/* allocate INTSIZE plus 2 bytes (sign and NULL) */
temp = (char *) malloc(INTSIZE + 2);
if (temp == NULL)
{
return(NULL);
}
memset(temp,'\0', INTSIZE + 2);
string = (char *) malloc(INTSIZE + 2);
if (string == NULL)
{
return(NULL);
}
memset(string,'\0', INTSIZE + 2);
ptr = string; /* set temporary ptr to string */
/*------------------------------------------------------------------–+
| NOTE: This process reverses the order of an integer, ie: |
| value = -1234 equates to: char [4321-] |
| Reorder the values using for {} loop below |
+------------------------------------------------------------------–*/do {
*temp++ = value % 10 + '0'; /* obtain modulus and or with '0' */
count++; /* increment count, track iterations*/
} while (( value /= 10) >0);
if (sign < 0) /* add '-' when sign is negative */
*temp++ = '-';
*temp-- = '\0'; /* ensure null terminated and point */
/* to last char in array */
/*------------------------------------------------------------------–+
| reorder the resulting char *string: |
| temp - points to the last char in the temporary array |
| ptr - points to the first element in the string array |
+------------------------------------------------------------------–*/for (i = 0; i < count; i++, temp--, ptr++)
{
memcpy(ptr,temp,sizeof(char));
}
return(string);
}
60 строчек занимает эталонная реализация (которая лично мне очень не нравится). Не задолбаешься ли это писать на листочке? Да — причем на Java и C# тоже хорошая эффективная реализация будет около такого количества строк занимать, а то и побольше — сейчас посмотрел, там по 2 символа за раз обрабатывают.
правильное собеседование это когда глянули портфолио и дали тестовое задание — задачу из будущей работы (оплачиваемое или нет)
всякие хитрожопые вопросики сверх или взмен этого проверяют лишь готовы ли вы в будущем прогибаться под начальство и делать чтото что не входит в ваши обязаности ) если готовы тогда все хорошо вы нашли друг друга, не готовы тогда ищите другую работу )
формат собеседование это зеркало будущей работы
Здравствуйте, Wawan, Вы писали:
W>правильное собеседование это когда глянули портфолио и дали тестовое задание — задачу из будущей работы (оплачиваемое или нет) W>всякие хитрожопые вопросики сверх или взмен этого проверяют лишь готовы ли вы в будущем прогибаться под начальство и делать чтото что не входит в ваши обязаности ) если готовы тогда все хорошо вы нашли друг друга, не готовы тогда ищите другую работу ) W>формат собеседование это зеркало будущей работы
Вы CTO Гугла? Нет? Тогда ваше мнение не очень интересно.
Здравствуйте, Vzhyk, Вы писали:
>> На этом вопросе у нас на собесах плюсовики с опытом только так сыплются. V>Особенно если собеседуют люди с твоим уровнем знаний.
Ну, у меня не так много опыта, как у благородных донов, но как интерфейс из класса создать и обратно я показать могу
Здравствуйте, Vzhyk, Вы писали:
V>31.07.2012 0:24, nightcode пишет:
>> S>Ну и что соврать, когда просят написать strcpy? >> ты не в состоянии написать strcpy на бумажке ? V>Нормальный не в состоянии. Просто погадить на бумажка, конечно, в
Я бы написал один цикл и сказал о проблемах которые с таким кодом есть. Если требуют нормальный, с учетом перекрытия областей и т.п. то это нафиг, ну и я с такими ситуациями в реальной жизни не сталкивался
31.07.2012 13:33, PZI пишет:
> Бывает и так, но вероятность того, что человек который не в силах вообще > ничего написать на бумажке, будет писать код лучше чем тот кто написал, > на мой взгляд значительно меньше.
Мне больше всего нравиться подобные высказывания слышать от
программистов, которые как бы получили высшее техническое образование и
у них был предмет ТВиМС. Но, главное верить...
За 20 лет своего опыта не увидел никакой связи между умением писать код
на бумажке и качеством работы программиста (причем тот программист,
которому вообще лень лишний раз писать код, обычно лучше того, которому
не лень).
30.07.2012 19:06, Alexey Neorov пишет:
> Я бы не стал ничего делать на бумажке, для этого есть компьютер. А на > настойчивые требования решить что-то на бумажке — можно посылать лесом.
Если говорить серьезно я могу представить только одну ситуацию, когда на
собеседовании имеет смысл попросить написать код (причем по желанию
собеседуемого бумажка или комп, как ему удобнее). Обычно это какой-то
простой класс из STL (vector, string), причем имплементация нужна
буквально 2-3 функций по его желанию, не более.
Собеседуемый — только из института и опыта работы в коммерческих
програмерских конторах у него нет.
Во всех остальных ситуация — код на собеседовании — это бред и имеет
смысл только почесать самолюбие собеседующего.
Причем такая просьба преследует 2 цели:
1. Убедится, что студент может писать на данном языке.
2. Увидеть, как многому его нужно будет обучать и какие задачи ему можно
будет давать.
Здравствуйте, PZI, Вы писали:
PZI>Да все верно, но на собеседованиях проверяют не на "хочешь ли ты писать код", а на "можешь ли ты писать код".
В том то и дело, что не проверяют! Никакой задачей на бумажке это не проверить за разумное время! Это можно проверить простым тестовым заданием на компе, но уж никак не на бумажке! Но проблема в том, что очень много собеседующих не умеют писать код, ибо привыкли строчить дохрена строчек не думая, копипастить по 100 раз одни и те же решения и даже не догадавшись вынести их в функцию. Ибо в институте не научили, а когда работать пошли — их посадили на проект, в котором все именно так и написано и это стало считаться нормой.
31.07.2012 13:58, nightcode пишет:
> V>Нормальный не в состоянии. Просто погадить на бумажка, конечно, в > Я бы написал один цикл и сказал о проблемах которые с таким кодом есть.
Вот только в обычной работе эта тактика приводит к очень веселому
моменту: сначала пишется некое дерьмо, а потом это дерьмо несколько
месяцев допиливается и в итоге, оно также не работает. Я бы это не
утверждал столь однозначно, если бы не наблюдал подобное очень большое
количество раз.
И очень редко наблюдал вариант, когда чел сначала подумает, и только
потом будет писать что-то, или лучше вообще не писать, а использует
что-то, что уже отлажено другими до него.
Это и понятно, таких не ищут, ищут тех, кто "будет копать отсюда и до
обеда".
Здравствуйте, Vzhyk, Вы писали:
V>31.07.2012 13:33, PZI пишет:
>> Бывает и так, но вероятность того, что человек который не в силах вообще >> ничего написать на бумажке, будет писать код лучше чем тот кто написал, >> на мой взгляд значительно меньше. V>Мне больше всего нравиться подобные высказывания слышать от V>программистов, которые как бы получили высшее техническое образование и V>у них был предмет ТВиМС. Но, главное верить... V>За 20 лет своего опыта не увидел никакой связи между умением писать код V>на бумажке и качеством работы программиста (причем тот программист, V>которому вообще лень лишний раз писать код, обычно лучше того, которому V>не лень).
Конечно, это видимо такой программист, который сидит и рассуждает как в спеке неправильно все написано и придумывает кучу причин по которым это делать не надо. Был у нас такой, и вроде даже в теории силен.... ушел в пешее эротическое.
Собственно у меня нет нужды убеждать Вас каких кандидатов вам стоит брать. Если Вы прекрасно отбираете кандидатов без бумажки и ручки, то Вы молодец, некоторым это не под силу.
31.07.2012 13:49, sts пишет:
> Ну, у меня не так много опыта, как у благородных донов, но как интерфейс > из класса создать и обратно я показать могу
Зачем ты будешь это делать?
Я еще понимаю, когда проектируют некую систему вводят интерфейсы для
общения сущностей, но когда занимаются тем, что ты написал выше — это
просто осваивание средств заказчика и не более.
31.07.2012 14:43, elmal пишет:
> В том то и дело, что не проверяют! Никакой задачей на бумажке это не > проверить за разумное время! Это можно проверить простым тестовым > заданием на компе, но уж никак не на бумажке!
И этим не проверишь. Единственное, что тебе позволит проверить — это
совместная работа с этим человеком в течение нескольких месяцев. Для
этого и существует испытательный срок. Но, нынче развелось сильно много
"гениальных программистов-психологов", которые за время собеседования
умудряются сделать то, что требует нескольких месяцев.
> Но проблема в том, что > очень много собеседующих не умеют писать код, ибо привыкли строчить > дохрена строчек не думая, копипастить по 100 раз одни и те же решения и > даже не догадавшись вынести их в функцию. Ибо в институте не научили, а > когда работать пошли — их посадили на проект, в котором все именно так и > написано и это стало считаться нормой.
Это нынче факт.
Но в институте такому и не учат и не будут учить — это опыт, который
нарабатывается годами. Но нынче есть еще одна особенность — безумная
ставка на молодых. Такая ставка хороша, когда ей применяют, думая, но
нынче это происходит безумно.