sab123: (Default)
SB ([personal profile] sab123) wrote2018-06-14 04:52 pm

индийская школа программирования

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

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

Вообще подход прям как в функциональном программировании. Оно, наверное, должно быть в Индии популярно. Ну или эта, воплощение генетического программирования.

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

Re: Какая разница

[personal profile] rezky 2018-06-15 02:17 am (UTC)(link)
Я немного попридираюсь и напомню, что перегруженный || не всегда bool и никогда не short-circuit.

[personal profile] malobukov 2018-06-15 02:26 am (UTC)(link)
Предположение про язык программирования было моё. Вполне возможно, что в оригинале был какой-нибудь C99, где нет перегрузки операторов.
dennisgorelik: 2020-06-13 in my home office (Default)

Re: Какая разница

[personal profile] dennisgorelik 2018-06-15 04:46 pm (UTC)(link)
Длинная цепочка || вычислений - вряд ли будет перегружена, пока эти сравнения однородны и записаны в виде списка.
Для дальнейшего улучшения читабельности, я рекомендую отформатировать так:
bool foo =
	cond1()
	|| cond2()
.....
	|| condN();
Edited 2018-06-15 16:47 (UTC)