Для меня, как для программиста, еще давно стало идеей фикс понять как же устроено внутри то, чем мы же пользуемся день ото дня. Ведь то, на чем мы пишем это зачастую лишь абстракции над абстракциями, которые нужны для других абстракций. Возможно, если бы это был “технический или более тематический” блог, то я бы написал лонгрид о том, что эти 2 цифры представляют собой фундамент почти всех техни\технологических устройств которые и функционируют как-раз таки в бинарной системе. Но тут я больше делюсь своими мыслями. Совсем недавно мне довелось встретиться с забавной игрой Turing Complete, где по сути нужно решить последовательность задач на понимание работы простейших логических вентилей до компьютера со своим ассемблером. И мне можно спокойно возразить то, что таких игр полно и тому подобное. Но повремените с этим. Я всегда был сторонником сути реализации, нежели ее готового решения, тут то и открывается вся красота не просто этой игры, но и в целом смышлености людей. Для меня до сих пор загадка, этот интерес ко всему дается с детства или приобретается по ходу жизни , но имхо, суть такова:
Не важно программист ты или увлечен какой-либо другой деятельностью, я настоятельно рекомендую уходить гораздо дальше чем “о, оно работает, ништяк”. У меня накоплено достаточно большое количество кейсов, когда идея заложенная в реализацию дает очень большой импакт в жизни. Я готов поспорить, что я смогу найти твое число от 1 до 100(при учете больше\меньше) не более, чем за 7 попыток. Не знаю написал бы мне хоть один человек, но суть его расскажу:
Тут будет упрощенное объяснение бинарного поиска.
Если бы пойдем от 1 до 100 по очереди, то шанс, что мы попадем в n-ую попытку равен 1\100 и таких попыток вплоть до 100. Но если мы начнем сокращать наш диапазон на 2, т.е 100\2 = 50, то попадем в иную ситуацию. Обычно в таких спорах не говорят больше\меньше и в таком случае эта фича бы не сработала , но т.к все по канону у нас идет отсеивание ровно половины возможных ответов. Представим, наше число 13, в таком случае вы ответите меньше. Следующая итерация это 50\2 = 25, снова улетела половина и на следующей попытке наш ответ. И сейчас мне потребовалось 3 шага чтобы найти искомое число :D Вроде бы идея не такая прям “вау”, но читая книгу по алгоритмам она так меня зацепила, что до сих пор из головы не выходит. И в этом вся красота идеи. Тут можно провести небольшую корреляцию с книгами, ведь как раз таки там зачастую дают почву для размышлений. Их читать явно хуже не сделает, но есть и другие источники информации, так что тут все на свой вкус. Я вон даже в игре смог разглядеть сложность и слаженность логических схем в целом. Резюмируя.
Порой просто для того чтобы сделать что-то свое нужно узнать немного чужого. Энивей, если не верите мне, поверьте людям, которые построили квантовую физику на основе механики Ньютона, или тем, кто создал современные алгоритмы шифрования, опираясь на простые идеи из теории чисел. Так что если я видел дальше, то только стоя на плечах гигантов.