Изначально опубликовано на dev.to

Все снимки экрана поступают в каталог из упомянутого 3Blue1Brown video.

Люди озабочены общей картиной; Другими словами, конечный продукт. Когда мы представляем себе проблему - в данном случае проблему - это общий термин, означающий задачу, которую необходимо выполнить, - мы часто представляем ее в контексте ответа. В этом методе мышления нет ничего плохого по своей сути, однако он может привести к ощущению подавленности, неадекватности и ошеломления.

Я не думаю, что я одинок в чувстве, что я просто не годен для разработки программного обеспечения. Сам лейбл - инженер - никогда не был чем-то, с чем я мог бы себя идентифицировать. Большую часть своей жизни я даже не задумывался об этом. Я постоянно отказывался от математики и связанных с ней дисциплин в пользу более творческих и открытых областей, исходя из того, что я теперь осознаю, так это неуверенность и страх решения проблем. Присоединение к миру программирования помогло мне преодолеть барьер для входа, который я построил, когда дело доходит до логического мышления, что очень помогло мне обрести уверенность в себе и реализовать свой собственный потенциал. В результате я недавно решил начать больше узнавать об исчислении в свободное время. Я наткнулся на канал YouTube 3Blue1Brown, который посвящен созданию удобоваримых учебников по математическим понятиям. В своем первом видео из серии * Essence of Calculus * он подробно рассказывает о том, как найти область круга, что породило серию просветлений в отношении красоты разбиения задач на части.

Конечно, я всегда был знаком с этой формулой - πr ‹sup› 2 ‹/sup› - но никогда не знал, что она означает и почему работает. Я не только чувствовал, что мне не нужно знать, что это значит, но более того, я чувствовал, что я не могу знать, что это значит, даже если бы у меня была потребность. Подайте сигнал тревоги. Но Грант Андерсон, голос за 3Blue1Brown, был непреклонен, что после урока мы могли почувствовать, что можем открыть формулу самостоятельно, учитывая настойчивость. К моему большому удивлению, он оказался прав.

Все начинается с того, как мы представляем себе круг. Если мы подумаем об этом как о множестве кусочков маленьких прямоугольников, как показано ниже, проблема уже начинает распутываться:

Прямоугольники - знакомое лицо. Найти их площадь довольно просто - длина умножена на ширину. Для каждого прямоугольника мы можем думать о длине как о длине окружности данной части круга, который он представляет (2πr, если вы помните), а о высоте как о разнице в радиусе - который меняется в зависимости от того, насколько малы наши осколки.

Здесь важно отметить, что это всего лишь приближения. Но начало с оценок является ключом к решению проблем; точная настройка будет позже. В любом случае, продвигаясь вперед, мы получаем круг, разбитый на кольца, а затем разбиваемый на прямоугольники, длина которых различалась в зависимости от того, какую часть круга он представляет; другими словами, диапазон. Что мы можем сделать с диапазонами, чтобы их визуально представить? Что ж, мы могли бы их изобразить! Тогда мы получаем что-то вроде этого:

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

Так появляется еще одно знакомое лицо: треугольник. Более конкретно, треугольник с основанием радиуса круга (3) и высотой, равной 2π, умноженному на указанный радиус (2πr). Теперь мы уже знаем, как найти площадь треугольника - половину основания, умноженную на высоту. После подключения соответствующих значений…

Посмотри на это. Круг замкнулся (каламбур). Как утверждает Грант: «Неважно, кто вы или что вы думаете о математике - это прекрасный аргумент».

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

Тот же мыслительный процесс можно применить и к программированию. Большая часть программирования связана с проблемами - построением функциональной программы, созданием ассоциаций, исправлением ошибок, просмотром и преобразованием данных и т. Д. По мере роста абстракции проблемы на всех уровнях становятся все более серьезными. Но в ваших силах довести проблему до уровня глаз. Это может означать класс, метод, условие или, на его базовом уровне, одну строку кода. Хотя мы можем взаимодействовать с проблемой на высоком уровне, важно помнить, что это совокупность выполняемых отдельных строк - фрагментов большего целого. Разбейте это, поймите это, и его завеса будет приподнята. Красота, выставленная напоказ.