Что общего между математиком и программистом?



В IT сфере популярен тезис о том, что математика программистам не нужна.

Не могу согласиться с этим утверждением, но об этом в другой раз.



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

Взять для примера доказательство великой теоремы Ферма.



Сначала были пифагоровы тройки, затем изобрели теорию колец, рассматривали гауссовы числа.

Только в конце XX века удалось доказать теорему, используя многолетний опыт предыдущих попыток.



С другой стороны, C# разработчик видит три следующих интерфейса:



interface IShowableString

{

string Show(string s);

}



interface IShowableBoolean

{

string Show(bool b);

}



interface IShowableInteger

{

string Show(int i);

}



Готов поспорить, первая мысль, которая придёт ему в голову, это сделать следующее:



interface IShowable<T>

{

string Show(T item);

}



Чувствуете, куда веду?

Нас объединяет искусство обобщать. Ведь взаимодействие с неизвестным происходит по одному алгоритму в обоих случаях:



▪️Встреча частного случая некоторой общей задачи



▪️Поиск частного решения



▪️Вероятная встреча другого частного случая той же задачи



▪️Обобщение



▪️Поиск общего решения