Re[18]: труд программера переоценен
От: i-maverick Россия  
Дата: 09.01.06 16:01
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz> 2. Если про крайние элементы можно еще поспорить, являются ли они

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

Это тоже не совсем верно (ну мало ли какие требования у заказчика). Мне кажется, что если уж мы проверяем на максимум в отстутствие одного соседа, то вполне логично рассматривать ситуацию и в отстутствие обоих соседей. В общем, можно поспорить.
Re[19]: offtopic
От: Epsilon Россия  
Дата: 09.01.06 16:15
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Мне уж тоже интересно стало решить задачку.


Красивое условие! Но есть и недостаток:
— Если отправить NULL вместо указателя на массив, то программка упадёт...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Fornit some Fornus
Re[20]: offtopic
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.06 16:22
Оценка:
Epsilon wrote:
>
> IM>Мне уж тоже интересно стало решить задачку.
>
> Красивое условие! Но есть и недостаток:
> — Если отправить NULL вместо указателя на массив, то программка упадёт...

По-моему, для программы на C это не является недостатком. Ведь даже если
функция и проверяет NULL pointer, то (void*) 1 ее все равно свалит.

Т.е., я хочу сказать, что если работа с памятью unsafe, то частичная
safety ничего не улучшает. И может даже ухудшить надежность, т.к.
иллюзия безопасности провоцирует более расслабленное отношение к
указателям, без существенных на то оснований.
Posted via RSDN NNTP Server 2.0
Re[20]: offtopic
От: i-maverick Россия  
Дата: 09.01.06 16:24
Оценка:
Здравствуйте, Epsilon, Вы писали:

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


IM>>Мне уж тоже интересно стало решить задачку.


E>Красивое условие! Но есть и недостаток:

E>- Если отправить NULL вместо указателя на массив, то программка упадёт...

Каким образом отправить NULL? Можно конкретный пример?
Re[21]: offtopic
От: sigsegv  
Дата: 09.01.06 16:34
Оценка:
Pzz wrote:
> Epsilon wrote:
>
>>IM>Мне уж тоже интересно стало решить задачку.
>>
>>Красивое условие! Но есть и недостаток:
>>— Если отправить NULL вместо указателя на массив, то программка упадёт...
>
>
> По-моему, для программы на C это не является недостатком. Ведь даже если
> функция и проверяет NULL pointer, то (void*) 1 ее все равно свалит.

А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику
вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_
большая редкость.

--
SKV
Posted via RSDN NNTP Server 2.0
Re[22]: offtopic
От: A_l_e_x_e_y Россия  
Дата: 09.01.06 16:40
Оценка:
Здравствуйте, sigsegv, Вы писали:
S>А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику
S>вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_
S>большая редкость.

Тем не менее такие вакансии есть. Как мне кажется, в большинстве случаев это связано с тем, что для некоторых специфических устройств просто не существует других компиляторов. По крайней мере именно так обстоит дело в нашей компании.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re[22]: offtopic
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.06 16:47
Оценка:
sigsegv wrote:
>
>> По-моему, для программы на C это не является недостатком. Ведь даже если
>> функция и проверяет NULL pointer, то (void*) 1 ее все равно свалит.
>
> А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику
> вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_
> большая редкость.

Понятно, что устроиться на работу в McDonald's проще, чем устроиться на
работу шеф-поваром в приличный ресторан. Понятно также, что работа в
McDonald'sе будет малоопливаемая, неинтересная, и без серьезных
проффесиональных перспектив.

Я не готов рассуждать о том, есть ли какие-то языки "для простых людей"
и "для профессионалов". Еще менее я готов рассуждать на тему, какие
языки для кого круче.

Но вот в чем я глубоко убежден, что человек, который подстраивает свою
квалификацию под сиюминутные требования рынка труда, обречен работать в
программерском McDonald'sе. Впрочем, и в McDonald'sе можно дослужиться
до должности директора ресторана (однако мало кому это удается).

P.S. Специалистов высокого класса обычно нанимают не чтобы писать
столько-то строк в день на C++, или любом другом языке, а чтобы решать
проблемы определенного класса. Это должно быть как-то отображено в
описании вакансии.
Posted via RSDN NNTP Server 2.0
Re[21]: offtopic
От: Epsilon Россия  
Дата: 09.01.06 16:49
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Каким образом отправить NULL? Можно конкретный пример?


Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно
Например если так, что вылетит:
int *arr = NULL;
...
cout << maximums(arr, 15) << endl;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Fornit some Fornus
Re[22]: offtopic
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.06 16:51
Оценка:
Epsilon wrote:
>
> IM>Каким образом отправить NULL? Можно конкретный пример?
>
> Это всё, конечно, чисто мои придирки, но может просто вызвать функцию
> некорректно
> Например если так, что вылетит:
>
> int *arr = NULL;
> ...
> cout << maximums(arr, 15) << endl;

На мой взгляд, лучше всего, если в этом месте программа свалится по
SIGSEGV'у. Если при этом еще и получится core dump, будет совсем
замечательно.

P.S. Я в курсе, что бывают системы, в которых нет ни SIGSEGV'ов, ни core
dump'ов...
Posted via RSDN NNTP Server 2.0
Re[22]: offtopic
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 09.01.06 17:00
Оценка:
Здравствуйте, sigsegv, Вы писали:

S>А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику

S>вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_
S>большая редкость.

хаха, идите расскажите это в низкоуровневом программировании
или расскажите это Микрософту тому же, НТ-ХП-Виста все так же внутри на С с вкраплениями С++ мало-мало тянется и думаю еще долго протянется.

оффтопик: только название у форума уж очень неудачное, я бы скорее системным программированием обозвал. А то все думают там патлатые затворники с очками по -8 днем и ночью инструкции на асме прямо в опкодах правят на самом то бишь низком уровне. Шучу я Если серьезно, то низкоуровневостью уже давно в том форуме (который в основном по kernel development) не пахнет. многие бы весьма удивились, узнав какой путь после ухода в WriteFile проходит байтик посланный на диск к примеру...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[23]: offtopic
От: sigsegv  
Дата: 09.01.06 17:12
Оценка:
Pzz wrote:
> P.S. Специалистов высокого класса обычно нанимают не чтобы писать
> столько-то строк в день на C++, или любом другом языке, а чтобы решать
> проблемы определенного класса. Это должно быть как-то отображено в
> описании вакансии.

Вот! Профессионал будет использовать C только если отступать по
производительности уже некуда или надо работать с железом напрямую. В
остальных случаях будет использована какая-нибудь java. Выбор
адекватного инструмента -- это тоже критерий профессионализма и
областей, где использование C оправдано и даже необходимо очень мало. И
становится все меньше. И это отражается в спросе на программистов.

--
SKV
Posted via RSDN NNTP Server 2.0
Re[22]: offtopic
От: i-maverick Россия  
Дата: 09.01.06 17:14
Оценка:
Здравствуйте, Epsilon, Вы писали:

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


IM>>Каким образом отправить NULL? Можно конкретный пример?


E>Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно

E>Например если так, что вылетит:
E>
E>int *arr = NULL;
E>...
E>cout << maximums(arr, 15) << endl;
E>


Забавный пример. А зачем передавать размер 15? Вы уж тогда определяйте размер как у меня в примере, через sizeof. И тогда она не вылетит. Ну да, выдаст неправильный результат 1. Но не вылетит. В общем, "защиту от дурака" можно делать очень навороченную, но задача все-таки не в том состояла. Потому что у разработчиков, использующих библиотеки и чужие ф-ии нет такой цели — угробить программу.
Re[8]: труд программера переоценен
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 09.01.06 17:34
Оценка:
Здравствуйте, sss1024, Вы писали:

согласился бы со всем написанным не замешай вы в котлету муху!
Наверное ник жужжаший \Pzz, прошу прощения не хотел обидеть — но удержаться сложно не обыграть ник\ тому виной...

нормальная задачка, что ж еще спрашивать у кандидата на позицию С\С++ инженера?
точнее что делать если такие задачи вызывают такую реакцию? не у web-дизайнера ж спрашивают задачку решить...
тут по-моему быстрее сесть и спокойно на бумаге написать чем потом об этом трещать
тем более решение такой задачи разумным способом есть хороший повод перейти на другие вопросы по смежным темам, заодно быстро посмотреть кандидата в деле. А то будет как с жонглерами в peopleware...

\бормоча под нос\ наверное все дело в длинне топика, действует гипнотизирующе — сложность задачи растет пропорционально

S>Хороших специалистов мало в любой области, и программированиее и в рекрутинге

а земля круглая...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[23]: offtopic
От: Epsilon Россия  
Дата: 09.01.06 17:35
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Забавный пример. А зачем передавать размер 15? Вы уж тогда определяйте размер как у меня в примере, через sizeof. И тогда она не вылетит.


Я же говорил

E>>Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно


IM> Ну да, выдаст неправильный результат 1. Но не вылетит. В общем, "защиту от дурака" можно делать очень навороченную, но задача все-таки не в том состояла. Потому что у разработчиков, использующих библиотеки и чужие ф-ии нет такой цели — угробить программу.


Я вот тоже сейчас задумался на эту тему. Вот, например, в "заводских" функциях таких как strlen и др., особо ничего не проверяестя... или это специально, чтоб не расслаблялись.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Fornit some Fornus
Re[24]: offtopic
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.06 17:56
Оценка:
Epsilon wrote:
>
> Я вот тоже сейчас задумался на эту тему. Вот, например, в "заводских"
> функциях таких как strlen и др., особо ничего не проверяестя... или это
> специально, чтоб не расслаблялись.

Считается, что пользователь ожидает от этих функций максимально
возможной эффективности. И это разумно. В конце концов, приделать
паранойю к эффективной функции не сложно, а приделать эффективность к
параноидальной, но медленной функции, вряд ли у кого получится.

Надо еще понимать, что C API, и культура его использования формировались
в те времена, когда и сахар был слаще, и соль соленее, и от
программистов можно было ожидать IQ > 100. Теперь, когда в программисты
стали брать тех, кого не взали из-за низкого интеллекта в дворники,
требования на API существенно изменились. Да и другие языки стали
входить в моду...
Posted via RSDN NNTP Server 2.0
Re[6]: труд программера переоценен
От: Igor Trofimov  
Дата: 09.01.06 18:58
Оценка:
Pzz>Зависит от того, где дом и где работа. Одно время я ездил на работу из
Pzz>Ясенево на Сокол, плюс еще на автобусе. На машине этот путь занимает в
Pzz>среднем 50 минут, на общественном транспорте — полтора часа. Разница, в
Pzz>общем-то, заметная.

Согласен. Да, бывает, каюсь за излишнее абсолютизирование .
Но по личному опыту — это скорее исключение, чем правило, особенно если говорим о съемной квартире.
Re[15]: труд программера переоценен
От: Igor Trofimov  
Дата: 09.01.06 19:02
Оценка:
E>Вот скажите, если уже можно. Чего вы ожидали от Вашего кандидата при решении данной задачки такого, что гарантировало бы ему успех при приёме на работу? Вроде как простого её решения недостаточно, как я понял...

Нужно было нормальноерешение, а не простое.

Помилуйте, какой "отвлекающий маневр"? Если "простота задачи, как отвлекающий маневр" будет в реальной работе заставлять программера писать кривой код, то грош цена такому программеру. "Отвлекающий маневр", я фигею...
Re[16]: труд программера переоценен
От: Epsilon Россия  
Дата: 09.01.06 20:36
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

E>>Вот скажите, если уже можно. Чего вы ожидали от Вашего кандидата при решении данной задачки такого, что гарантировало бы ему успех при приёме на работу? Вроде как простого её решения недостаточно, как я понял...


iT>Нужно было нормальное решение, а не простое.

Приведёте пример нормального решения?

iT>Помилуйте, какой "отвлекающий маневр"?

Это просто я так выразился. Признаю, что криво.

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

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

iT> "Отвлекающий маневр", я фигею...

Извините, что расстроил на ночь глядя. Кошмары не мучили?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Fornit some Fornus
Re[17]: труд программера переоценен
От: Gorbatich  
Дата: 10.01.06 08:08
Оценка: :)
Здравствуйте, Epsilon, Вы писали:

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


Смотрю тут стратеги собрались. Маневры там, танки, пушки %)
Re[24]: offtopic
От: i-maverick Россия  
Дата: 10.01.06 08:55
Оценка:
Здравствуйте, Epsilon, Вы писали:

IM>>Забавный пример. А зачем передавать размер 15? Вы уж тогда определяйте размер как у меня в примере, через sizeof. И тогда она не вылетит.

E>Я же говорил
E>

E>>>Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно


Любая ф-ия, принимающая на входе массив и размер этого массива, подразумевает, что входные данные уже будут проверены (хотя бы на соответствие массива размеру, если уж не на NULL). Иначе какой смысл в передаче размера? Тем более, проверить это никак не получится. Разве что понаставить исключений на каждое действие.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.