«Две самые сложные вещи в программировании – это именование сущностей, валидация кэша и ошибка на единицу» (Джефф Этвуд) Что общего у Дракариса и маленького розового пони? Ммм? А если рядом с Дракарисом будет стоять Дрогон. А рядом с пони еще пони? Не очевидно? Древние времена. Пастух выгоняет стадо овец. И ему надо понять, что вечером стадо вернулось в полном составе. Не надо ли идти искать заблудшую овечку. Времена настолько древние, что люди еще не научились считать. Нельзя просто заранее посчитать, что овечек было 34 и пересчитать их по возвращении. Что делал пастух? Он брал гору камешек и когда овцы выходили из загона, он перекладывал камешки из одной кучки в другую. А когда они возвращались – эту кучку по одному камешку возвращал обратно. Если вся кучка закончилась – значит все в порядке и можно идти пить кумыс. Он придумал понятие взаимно-однозначного соответствия между множеством овец и множеством камушков! Кстати, слово calculus произошло от латинского calculi – камешек. Это сейчас мы узнаём что такое число в самом раннем возрасте. А человечество шло к этому тысячи лет. Было понятно, что между кучкой камней и стадом овец есть что-то общее. Но что именно – было понять прям суперсложно. Сложнее только понять, кто те люди, кто ходят на концерты Тимати 😂😂😂 Как древние австралийские племена обменивали коренья на угрей? Уверен, теперь ты знаешь ответ. Просто в ряд выкладывали один на против другого. Биекция, ёмаё! Со временем появились эталоны счета. Сначала естественные. Пара глаз. Пять пальцев на руке… Потом искусственные: специальные палочки, уже знакомые камешки и т.д. Поначалу числа были чем-то более конкретным. «Столько же, сколько лун на небе» (Т.е. одна). «Сколько глаз», «четрые» в каких-то племенах было «пальцы страуса». Т.е. люди всегда «перебирали» что-то конкретное и выстраивали взаимно-однозначное соответствие с чем-то другим конекретным. И мало по малу, с огромным трудом появилась абстракция под названием «число». Которая существует сама по себе. К чему я это всё пишу? К тому, что сделать мысленное усилие, увидеть абстракцию и еще ее как-то назвать – это действительно сложная задача. А программистам выделением абстракций приходится заниматься чуть ли не каждый день. Поэтому абстрактное мышление для нас – как сиськи для Кардашьян. Хлеб насущный) И одно из отличий хорошего программиста от индуса – это умение абстрактно мыслить, а не знание языка программирования или новомодной технологии.