[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Был на собеседовании сегодня.
Страницы: 1, 2, 3, 4, 5, 6
Zzepish
S.Chushkin
ну, я ъхочу попрограммировать микроконтроллеры) си освоить могу без особых проблем. Но вставки на ассемблере думаю тоже нужны будут)
neadekvat
S.Chushkin, есть ощущение, что тебе не в кайф программирование. Точнее говоря, что ты относишься к нему исключительно как к инструменту, которым приходится пользоваться. Не знать лишнего, не тратить время ни на что, кроме того, что принесет бабло и прочее.. А как же удовольствие? Потратить вечер, чтобы прийти к самому быстрому варианту алгоритма, изучить что-то новое и интересное (хотя, быть может, и не очень нужное)?
S.Chushkin
Цитата (Zzepish @ 13.05.2014 - 01:44)
S.Chushkin
ну, я ъхочу попрограммировать микроконтроллеры) си освоить могу без особых проблем. Но вставки на ассемблере думаю тоже нужны будут)

Это другое дело. Естественно, для каждой задачи нужен свой инструмент и его нужно знать. Но при чём тут PHP? В ПХП не требуется знать алгоритмы сортировки, например. Ибо вы их никогда не будете использовать. Хотя бы по природе самого ПХП.
И тот, кто требует такие знания для разраба-пхпешника, немного не в адеквате. Таково моё мнение.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
sergeiss
Цитата (S.Chushkin @ 13.05.2014 - 01:44)
"Вывести средние значения показателя grade по всем position."
Как логик, я это понимаю так: для каждой записи найти среднее некоего поля. Надеюсь, далее понятно.

Я это понял однозначно: "найти среднее grade для каждого типа position". И мне кажется, что так это и подразумевалось smile.gif

Цитата (S.Chushkin @ 13.05.2014 - 01:54)
И тот, кто требует такие знания для разраба-пхпешника, немного не в адеквате. Таково моё мнение.

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

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
S.Chushkin
Цитата (neadekvat @ 13.05.2014 - 01:46)
S.Chushkin, есть ощущение, что тебе не в кайф программирование. Точнее говоря, что ты относишься к нему исключительно как к инструменту, которым приходится пользоваться. Не знать лишнего, не тратить время ни на что, кроме того, что принесет бабло и прочее..

Типа того. smile.gif
Цитата
А как же удовольствие? Потратить вечер, чтобы прийти к самому быстрому варианту алгоритма, изучить что-то новое и интересное (хотя, быть может, и не очень нужное)?

Когда-то так и было. Когда был глупый. smile.gif
За 20 лет работы разрабом я решал много задач (кроме низкоуровневого - драйверов и т.п.) и сейчас найти задачу, которая мне интересна трудно. Когда достиг потолка (или почти достиг), это в любом деле "убивает" интерес.
В общем, радуйтесь пока молодые и пока не понимаете этого. Ибо когда созреете и поймёте, станет скучно давить на клавиши, как мне и мне подобным. wink.gif
п.с.
Кстати, поэтому я редко отвечаю на вопросы в форумах. Фактически, 99.9% процентов вопросов решаются или чтением доки или напрягом одной извилины, а это не интересно, скучно.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (sergeiss @ 13.05.2014 - 01:58)
Я это понял однозначно: "найти среднее grade для каждого типа position". И мне кажется, что так это и подразумевалось smile.gif

Ааа, вполне может быть. Значит не напряг извилину, не додумался. sad.gif

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

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

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
neadekvat
Цитата (S.Chushkin @ 13.05.2014 - 02:07)
За 20 лет работы разрабом я решал много задач (кроме низкоуровневого - драйверов и т.п.) и сейчас найти задачу, которая мне интересна трудно

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

Что касается алгоритмов. Я согласен, что умение просто написать алгоритм -- это не показатель. Поэтому я постоянно в состоянии легкого раздражения в ВУЗе: нужно что-то учить, а нахрена?

Вопрос не в том, чтобы просто знать. А в том, чтобы уметь применить. Тот же qSort, к примеру, в худшем случае может выпадать в O(n^2), насколько я помню. Соответственно, в каких-то ситуациях применять надо не просто qSort, а его улучшенные варианты. Либо другие сортировки.
sergeiss
Цитата (S.Chushkin @ 13.05.2014 - 02:07)
Когда достиг потолка (или почти достиг), это в любом деле "убивает" интерес.

Ты уверен, что достиг потолка??? И это при том, что постоянно что-то новое появляется??? Ну-ну smile.gif Не льсти себе.
Я в программировании всяко не меньше 20 лет. Но до "потолка" никогда не доберусь. И при этом, заметь, моя самооценка достаточно высокая. Я знаю, что этот "потолок" стремительно развивается и отдаляется, поэтому в принципе нельзя к нему приблизиться. По сути дела, надо быстро бежать вперед, чтобы не сильно отставать.

Цитата (S.Chushkin @ 13.05.2014 - 02:17)
Например, я не знаю алгоритма пузырьковой сортировки (лет 20 назад знал, наверное, но забыл, напрочь). Зная этот факт Вы не сможете оценить моё мышление. И знания тоже. Вы сможете только оценить то, что я не знаю алгоритм п.сортировки и всё, точка.

Ты не понял, значит, о чем идет речь. Не важно, знаешь ты этот алгоритм или нет (!!!). Важно то, что ты способен (или не способен) за короткое (разумное) время его узнать и использовать в своих целях. Если же кандидат сразу "потухнет" при таком предложении или начнет рассказывать потенциальному работодателю, что ему этот алгоритм "20 лет был не нужен и никогда не понадобится", то этот кандидат никогда не будет работать в данном месте. Ему откажут, найдут предлог, это не сложно сделать. И это правильно, я считаю.

PS.
Цитата (S.Chushkin @ 13.05.2014 - 02:07)
и сейчас найти задачу, которая мне интересна трудно

Странно... А у меня их столько, что времени не хватает на всё smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
paul85
Ну как вариант можно так:

Пересечения по индексам да и всё. Грубо говоря 5 одномерных массивов, либо вложенный, где ключ внешнего массива fieldname. Далее сортируем через asort вложенный массив grade. Либо пишем (зачем-то) свою функцию сортировки.

Выводим на экран через foreach $key=>$value. Цепляем через $key другие поля (из соседних массивов), генерируем строку таким образом. Нужно в обратном порядке - делаем arsort.

Ну а среднее значение - добавляем еще один вложенный массив avggrade где position=>value. Вот и всё. Опять же asort по position, запускаем foreach и сменой значения определяем границы, сбрасываем счетчик, вычисляем среднее. Там буквально несколько строк будет: цикл, условие да операции со счетчиком.

Реализация пузырьком самое примитивное что только есть из сортировок. Кстати, даже в C++ есть встроенная сортировка по методу Хоара, называется qsort. Так что пренебрегать встроенными функциями сортировок совершенно не стОит.

Реализацией подобных глупостей заниматься вообще нет никакого смысла. Только время терять. Рассказать на словах о возможных методах решений, раз хотят проверить соображалку. Максимум блок-схемами, если уж ТАК хочется заставить человека тратить время впустую. =) И настаивать на применении СуДБ! Это здесь файл из 10-ти строк, а если их будет несколько миллионов? Потом field separator, почему он отсутствует? Что за формат файла такой!? Тоже глупость, причем великая.

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

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

ИМХО
Zzepish
Хехехе)
Меня пригласили на еще одно собеседование)
Т.е. тест я прошел)
sergeiss
Zzepish, ты скажи, когда тебя надо будет материть "по старой доброй традиции", чтобы всё было успешно smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
buster
Ждем подробностей smile.gif
Zzepish
sergeiss
да можешь хоть круглый год biggrin.gif если от этого будет удача =)
OleKh
Цитата (Zzepish @ 12.05.2014 - 17:19)
Как думаете- реализация нормальная?


Молодец, что первый тур прошел. Так держать )

Очень запутанная реализация. Искал признаки пузырьковой сортировки, так и не нашел. Для меня этот алгоритм один из очень немногих которые знакомы, но всего лишь по названию. Когда-то была тема, в которой этот алгоритм применялся и тогда я его внимательно разобрал, но сейчас повторить не получилось, всё что запомнилось так это то, что с ключами были перестановки.

Вот нашел примеры http://ru.wikibooks.org/wiki/Примеры_реали...и_пузырьком#PHP

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

function sort_by_algorithm($arr, $dir=''){

$size = sizeof($arr)-1;
for ($i = $size; $i>=0; $i--) {
for ($j = 0; $j<=($i-1); $j++){
if($dir == 'ASC') {
$sort = $arr[$j][3] > $arr[$j+1][3];
} else {
$sort = $arr[$j][3] < $arr[$j+1][3];
}
if($sort){
$k = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $k;
}
}
}


return $arr;
}

function output($data, $type = null)
{

$pos = array();
foreach ($data as $val) {
if ($type == 2) {
if ($val[3] <= 3) continue;
}
if (in_array($type, array(1, 2))) {
echo $val[3] . "\n";
}
if ($type == 3) {
$pos[$val[4]][] = $val[3];
}
}


if ($type == 3) {
foreach ($pos as $key=>$val){
echo "$key - ".array_sum($val) / count($val) . "\n";
}
}


echo '----------------------' . "\n";

}

function get_data()
{
$data = array();
$res = file('data.txt');
unset($res[0]);
foreach ($res as $value) {
$data[] = explode(' ', $value);;
}
return $data;
}

$arr = get_data();
output(sort_by_algorithm($arr, $dir='DESC'), 1);
output(sort_by_algorithm($arr, $dir='ASC'), 2);
output($arr, 3);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.