собеседование
От: errest  
Дата: 13.01.10 18:37
Оценка:
Какие тестовые задания могут дать на C/C++?
Нужны простенькие — типа сортировки массива и найти ошибки
Re: собеседование
От: placement_new  
Дата: 13.01.10 18:55
Оценка:
Здравствуйте, errest, Вы писали:

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

E>Нужны простенькие — типа сортировки массива и найти ошибки
Ну например, написать реверс строки или перевод из одной системы счисления в другую, подсчитать число единичек в байте.
Re: собеседование
От: Vamp Россия  
Дата: 13.01.10 19:06
Оценка:
E>Какие тестовые задания могут дать на C/C++?
Какие угодно. Это неважно. На нормальном собеседовании тест — всего лишь предмет для разговора, чтобы было, с чего начать.
Да здравствует мыло душистое и веревка пушистая.
Re: собеседование
От: Ulitka США http://lazarenko.me
Дата: 13.01.10 19:22
Оценка: 11 (2)
Здравствуйте, errest, Вы писали:

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

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

Мне очень нравятся string similarity алгоритмы (http://www.dcs.shef.ac.uk/~sam/stringmetrics.html).
Вряд-ли кто-то ответит что-то вменяемое, если никогда с этим не сталкивался, но для завязывания разговора может подойти.
Ну а если в поисковик набираем и т.п. — must.
Re[2]: собеседование
От: Handie  
Дата: 13.01.10 19:32
Оценка:
Здравствуйте, placement_new, Вы писали:

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


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

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

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

То же самое и с подсчетом единичек. Оптимальное решение — lookup table c 8 или 16 битными "чанками". Ну и тест на "лоха" с << и | в цикле.

Все это тесты начинающих кодеров
Re[3]: собеседование
От: placement_new  
Дата: 13.01.10 19:37
Оценка:
H>Все это тесты начинающих кодеров

А в каком месте его поста, Вы посчитали, что он на синьора претендует?
Re[3]: собеседование
От: errest  
Дата: 14.01.10 08:19
Оценка:
H> Ну и тест на "лоха" с << и | в цикле.
Ты здесь что имеешь ввиду?
Re[4]: собеседование
От: placement_new  
Дата: 14.01.10 08:23
Оценка:
Здравствуйте, errest, Вы писали:

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

E>Ты здесь что имеешь ввиду?

Видимо то, что если ты сделаешь не через табличку а через последовательный сдвиг и наложение маски, то "там наверху тебя окрестят лохом"
Re: собеседование
От: StandAlone  
Дата: 14.01.10 10:57
Оценка:
Здравствуйте, errest, Вы писали:

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

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

Копирование многосвязного списка, к примеру.
И разработать аналог boost::shared_array
Re[3]: собеседование
От: ProgrammerG  
Дата: 14.01.10 12:32
Оценка: :)
Здравствуйте, Handie, Вы писали:

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


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


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

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

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


H>То же самое и с подсчетом единичек. Оптимальное решение — lookup table c 8 или 16 битными "чанками". Ну и тест на "лоха" с << и | в цикле.


H>Все это тесты начинающих кодеров


Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор.
И я всегда поражаюсь сколько людей не могут решить эту задачу с первого раза (без подсказок). Причём это не всегда студенты, а люди и с 2-3 летним "опытом" на С.
Re[4]: собеседование
От: StandAlone  
Дата: 14.01.10 12:53
Оценка: +3 -1
Здравствуйте, ProgrammerG, Вы писали:


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

...без выделения дополнительной памяти?

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

А какой сакральный смысл в подсчете единичек и замене lookup table на битовый сдвиг(или деление по модулю 2) и наложение маски?
Как они помогут в реальном проекте, когда надо будет оптимизировать какой-нибудь алгоритм Левенштайна, или спектрально-корреляционное преобразование(чисто навскидку крайние задачи, для которых пришлось использовать unmanaged. Подставьте сюда свои реальные задачи, тысячи их...)
?
Человеку со склонностью к математике проще решить через деление и маску. Человеку со склонностью к архитектуре и дизайну такие задачи вообще за разумное время решить сложно, паттерны здесь не применишь.
Итого, кто остается? На поиск кого они заточены — "начинающих кодеров", которые будут пахать за миску доширака от забора и до обеда?
Re[5]: а никто и не задумывается: зачем собеседование
От: Pizarro  
Дата: 14.01.10 13:09
Оценка: 1 (1) +3 -2
Здравствуйте, StandAlone, Вы писали:

SA>Итого, кто остается? На поиск кого они заточены — "начинающих кодеров", которые будут пахать за миску доширака от забора и до обеда?:)


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

Для этого хорошо помогает разговор о прошлых проектах.

Задачки предлагают только идиоты. Особенно для сеньоров.
Джуниорам можно предложить что-то несложное, на понимание. Никаких алгоритмов обычно не надо. вообще.
Re: собеседование
От: LordMAD Россия  
Дата: 14.01.10 13:25
Оценка:
Здравствуйте, errest, Вы писали:

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

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

Напишите функцию, вычисляющую среднее значение двух любых значений типа int:
int avg(int x, int y);

Предположим, что у Вас есть некий класс, реализующий идиому pimpl. Требуется реализовать для него эффективную специализацию функции swap.
Re[5]: собеседование
От: elmal  
Дата: 14.01.10 13:48
Оценка: 1 (1) +2 -1 :)
Здравствуйте, StandAlone, Вы писали:

SA>Итого, кто остается? На поиск кого они заточены — "начинающих кодеров", которые будут пахать за миску доширака от забора и до обеда?

ИМХО история у всех этих задачь такова — по этим задачам гоняли в институте. Далее, кто-то попал на работу, оказался набирающим. Как определять квалификацию не знает, и не находит ничего лучшего, как использовать те же критерии оценки, какие были в институте. Далее появляются первые люди под его началом, те снова начинают набирать людей. И снова не знают что спрашивать, и спрашивают именно так, как их гоняли в институте. Ситуация усугубляется тем, что часто народ становится начальниками, так и не научившись программировать, так и не поняв, а что же главное в профессии разработчика и что реально ему требуется в работе.
Мне вообще веселит, как набирают. Человека с 10 летним опытом будут гонять по задачкам, которыми в институте гоняют, и наоборот, студента без опыта будут просить спроектировать систему, спрашивать о роли в прошлых проектах и т.д .
Re[4]: собеседование
От: errest  
Дата: 14.01.10 14:05
Оценка: :))
PG>Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор.
PG>И я всегда поражаюсь сколько людей не могут решить эту задачу с первого раза (без подсказок). Причём это не всегда студенты, а люди и с 2-3 летним "опытом" на С.

то есть надо что-то вроде этого:
#include <stdio.h>
#include <string.h>


void main()
{
char a[100],b[100];

gets(a);
for (int i=0; i<strlen(a); i++)
{
b[i]=a[strlen(a)-i-1];
}
b[strlen(a)] = 0;
puts(b);
}
Re: собеседование
От: sergey2b ЮАР  
Дата: 14.01.10 14:35
Оценка:
Здравствуйте, errest, Вы писали:

одна из компаний давала написать простой интопритатор с ваис подобного языка (перед приходом на собеседование)
Re[5]: собеседование
От: StandAlone  
Дата: 14.01.10 14:43
Оценка:
Здравствуйте, 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>}




void __fastcall Reverse(char* src)
{
    if(NULL==src)
       throw new string("Sanity check failed.");
    int strLen=strlen(src);
    for(int i=0;i<strLen/2;++i)
    {
       src[strLen]=src[i];
       src[i]=src[strLen-i-1];
       src[strLen-i-1]=src[strLen];
    }
}
Re[6]: собеседование
От: denisko http://sdeniskos.blogspot.com/
Дата: 14.01.10 14:47
Оценка:
Здравствуйте, StandAlone, Вы писали:

Вы соревнуетесь в том, кто быстрее отымеет мозг интервьюеру чтоли?
<Подпись удалена модератором>
Re[7]: собеседование
От: StandAlone  
Дата: 14.01.10 14:57
Оценка:
Здравствуйте, denisko, Вы писали:

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


D>Вы соревнуетесь в том, кто быстрее отымеет мозг интервьюеру чтоли?


Собеседование — дело такое, тут надо успеть отыметь моцк интервьюеру, пока интервьюер не отымел моцк тебе... :-D
А реально, я просто привык пользоваться семантикой массивов в применении к указателям.
Удобно и нагляднее, чем все эти жуткие разыменования указателей:

  char * start=src;
  char *end=src+strlen(src);
  while(start<end)
  {
    char temp=*end; 
    *end=*start;
    *start=temp;
    start++;end--;
  }
Re[8]: собеседование
От: denisko http://sdeniskos.blogspot.com/
Дата: 14.01.10 15:05
Оценка:
Здравствуйте, StandAlone, Вы писали:

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