Нашему брату редко удаётся пописать какие-нибудь сложные алгоритмы. Большая часть нашей работы — это сборка из готовых кубиков различных стандартных вещей. Все эти формы, отчёты, выгрузки, загрузки, отправки и приёмки сообщений. Всё это очень банально и просто. Для всего этого есть готовые библиотеки, фреймворки, различные заготовки. Всё это уже не одну тысячу раз обсуждалось на различных stackoverflow и прочих сайтах. Нужно лишь выстроить кубики в нужном порядке. Думать почти не надо. Да, изучать новое сложно. Но сам процесс работы выглядит весьма просто и банально. От этого сама разработка превращается в унылый и отлаженный процесс. Но зато идёт довольно быстро.
Но иногда попадаются действительно что-то, что заставляет напрячь мозг. Различные алгоритмы подсчёта баллов в банковских ПО, алгоритмы вычисления какого-то полу-оптимального значения. И тогда приходится думать. Приходится вникать в алгоритм, написанный чаще всего естественным человеческим языком. Приходится перекладывать абстрактные высказывания в строгие конструкции языка программирования. Если бы не это, то мой мозг давно бы уже, наверное, ослабел. Одна фраза из естественного языка перерастает в десяток классов и методов, которые гоняют dword-ы взад-вперёд по регистрам и ОЗУ. Если иметь хорошее воображение, то можно представить, как процессор бегает по всем циклам, условиям, как откликается кучей команд на пару команд создания классов…