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

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

Кратко о видах знаний

Концептуальные Практические Опытные
Суть концепции, принципы, подходы решение конкретных проблем внутреннее подсознательное знание
Применение более совершенные решения проблем быстрое решение известным способом более совершенные решения проблем
Получение изучение наук, проектирования, программирования примеры, существующие решения делать выводы из своей работы

Можно объединить знания по виду их применения. Тогда концептуальные и опытные знания будут  отличаться только тем, что концептуальные знания явны и легко передаются от человека к человеку, а опытные – не столь явны, потому что большая их часть находится на подсознательном уровне человека. Но, тем не менее, при некоторых интеллектуальных усилиях ряд опытных знаний так же может быть извлечен и переведен в разряд концептуальных.

Примеры концептуальных и практических знаний

Хорошим примером концептуальных знаний может послужить software architecture and design. Они описывают возможные подходы и принципы разработки программных систем.

Ярким примером практических знаний являются так называемые best practices – каждая практика описывает готовое решение для одной из повседневно возникающих проблем. Пример – java best practices.

Какие знания важнее

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

Знания и карьерный рост

Рассмотрим карьерный этап «developer». Без достаточных практических знаний невозможно достаточно быстро решать повседневные задачи, а если таких задач подавляющее большинство (а так и будет, по крайней мере первое время), то общая производительность сотрудника будет больше зависеть именно от практических знаний, нежели от концептуальных. На этом же этапе человек должен вырабатывать в себе умение искать готовые решения для типовых проблем. После того, как разработчик выйдет на хорошую стабильную производительность по повседневным задачам, ему придётся всё больше и больше заниматься более сложными задачами. И уже на этих задачах ему придётся использовать концептуальные знания. И если человек намерен продолжать карьеру в техническом направлении (то есть «developer -> technical leader -> architect»), то без достаточного запаса концептуальных знаний перейти на следующий этап будет невозможно.

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

One Response to “Виды знаний программиста и не только”

  1. Raspopov Says:

    Почему подписка еще бесплатная? :) )


Leave a Reply