• Как научиться алгоритмическому мышлению?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Бьёрн Страуструп, описывая C++, говорил: "Язык программирования служит двум связанным между собой целям: он является выразительным средством программиста для указания действий, которые надо выполнить, а также набором концепций, которыми пользуется программист при решении проблемы." Но язык программирования точно не является решением проблемы, он только средство выражения и инструмент. Поэтому для начала давайте оставим в стороне программирование.

    С остальным всё просто. Программисту часто не хватает некоторой "прелюдии", позволяющей перебросить мостик между идеей программы и написанием кода. Мостик этот строится так:

    1. Имеем некоторую идею: "а хорошо бы написать программу, которая делала бы...".
    2. Определяете предметную область с теми процессами, которые имеют отношение к разрабатываемой программе.
    3. Формулируете цель проекта: как программа должна повлиять на предметную область (не вдаваясь в реализацию).
    4. Формулируете бизнес-задачи, решение которых позволят достичь поставленной цели.
    5. Указываете ограничения, в рамках которых будет создаваться программа.
    6. Создаёте концепцию - некое видение того, какой будет новая программа, без технических деталей.
    7. Решаете, а нужна ли такая программа?
    8. Если нужна, то прорабатываете одно или несколько технических решений, как можно сделать программу. Делаете оценки реализуемости и оставляете одно решение.
    9. Разрабатываете детальные требования к вашей программе.
    10. Создаёте архитектурное решение, логическое и физическое.
    11. Проводите детальное проектирование каждого компонента вашей архитектуры.
    12. Программируете, тестируете, отлаживаете код.
    13. И - ура! - внедряете программу.


    Это выглядит сложным. Но не очень сложно.

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