Профессиональное мышление программиста

Программист программирует ради программирования — мне просто интересно писать код, это способ мышления и метод автоматизации (развития) деятельности. Очевидно, что программист должен знать язык программирования, владеть инструментами и технологиями, знать профессиональные практики для эффективного решения задач.

Но является ли само по себе написание программного кода программированием? Без концептуального и логического мышления это имитация программирования. Поскольку технически совершенный код может быть, с точки зрения пользователя, бесполезным и бессмысленным. Именно пользователь является критерием истины при оценке программных решений.

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

thinking-levels

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

Профессиональное системное мышление позволяет решать не отдельные задачи, а классы задач, четко разделяя в программной архитектуре ядро, технологическую инфраструктуру и конечные прикладные решения. Это позволяет создавать простые и функциональные программные системы.

Как только программист начинает осознавать предметные задачи, которые решает его код, видеть пользователя, который работает (мучается) с его программой, то он получает очень мощный стимул для своего профессионального развития и начинает писать по-настоящему совершенный код — простой и решающий реальные задачи пользователя, который и является «пятым элементом» (самым главным, смыслообразующим) информационной системы.

Технократический  подход, когда программист прячется от реальных задач в своей «башне из слоновьей кости» — я пишу только код и не думаю, зачем он нужен, как он работает в системе — является наивным и превращает программиста в вечного дилетанта, а программные системы в дорогих и бесполезных монстров.

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

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s