Зачем изучать алгоритмы программирования?


Вклад алгоритмов в жизнь человека очень обширен. От интернета до биологии, коммерческих вычислительных систем, компьютерной графики, безопасности, мультимедиа, социальных сетей и научных применений, алгоритмы везде вокруг нас. Они используются для фильмов и видео игр, для симуляции столкновения частиц, они используются для изучения генома и других задач. Так что, одна из важных причин изучать алгоритмы - это то, что их влияние очень широко.



Алгоритмы также интересны для изучения, так как имеют древние корни. Первый изучаемый алгоритм уходит корнями к 300 году до нашей эры. Концепция алгоритма была формализована в Принстоне, Чёрчем и Тьюрингом в 1930-е. Но немало алгоритмов были открыты в последние десятилетия.

Существует множество других алгоритмов, ожидающих своего открытия. Основная причина изучения алгоритмов — быть способными решать задачи, которые иначе не решить. Например, задача соединения сети: дан большой набор элементов, которые соединены друг с другом попарно. Можно ли попасть от одного элемента на другой по данной схеме? Из примера не очевидно, существует ли такой путь. Нужна компьютерная программа. На самом деле, нужен эффективный алгоритм. Ответ на эту задачу: такой путь есть.

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

Другая цитата, от Френсиса Салливана, говорит: "Великие алгоритмы - есть поэма вычисления". Так же, как и стих, они могут быть краткими, неуловимыми, насыщенными и даже непостижимыми. Но единожды постигнутые, они проливают совершенно новый свет на некоторые аспекты вычисления. Алгоритмы интересны для интеллектуальной стимуляции. Многие люди изучают алгоритмы, потому что понимание хороших эффективных алгоритмов и структур данных необходимо, чтобы быть профессиональным программистом.

Линус Торвальдс, создавший Линукс, говорит, что отличить плохого программиста от хорошего можно по тому, что он считает более важным: код или структуру данных. Плохой программист беспокоится о коде, тогда как хороший - о структурах данных и их взаимосвязи. Я бы добавил алгоритмы, которые их обрабатывают.

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

Алгоритмы играют крайне важную роль в этом процессе. Ещё одна причина изучать алгоритмы — если вы знаете, как эффективно использовать алгоритмы и структуры данных, то с большей вероятностью пройдете собеседование на техническую должность.

Существует целый ряд причин изучать алгоритмы. Их влияние широко, они существуют издавна и представляют новые возможности, позволяют решать задачи, которые нельзя решить иначе, вы можете использовать их для интеллектуальной стимуляции, чтобы стать опытным программистом. Они могут открыть секреты жизни во Вселенной, они отлично подходят для развлечения и пользы. Программист может спросить: "Зачем изучать что-то еще?" Есть множество причин изучать другие вещи, но нет ни одной причины не изучать алгоритмы.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, алгоритмы, теория программирования




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Программа 'Постоянно онлайн вконтакте'
Урок 17. Наследование и полиморфизм в Java
Урок 18. Введение в фасады Laravel