Давайте опишем типы знаний и как они развиваются в мозгу программиста. Существуют три типа знаний:
- Концептуальные (почему?, что?, если? — т.е. семантика) — понимание концепций, принципов, отношений и основных подходов к разработке программных систем. Этот тип знаний обосновывает почему архитектура приложения или алгоритм должны быть написаны определённым образом, каковы альтернативы и почему выбранный вариант — лучший с логической точки зрения. Концептуальные знания дают широкое видение и понимание того, что стоит за решение конкретных проблем в данной задаче.
Применение: находите более качественные решения для сложных проблем
Приобретение: изучение компьютерных и околокомпьютерных наук, концепций проектирования и программирования; создание своих собственных теорий, основанных на практике и опыте. - Практические (как? — т.е. процедура) — знание того, как решать конкретную проблему в программировании. Это не требует глубокого понимания концепций и теории, стоящих за выбором конкретного способа воплощения.
Применение: быстрое решение проблем с помощью хорошо себя зарекомендовавших и проверенных решение без изобретения «велосипедов» с нуля.
Приобретение: поиск существующих решений, обучение на примерах или переиспользование своих решений.
- Опытные (включая интуицию) — внутреннее индивидуальное знание, которое формируется со временем в процессе разработки. Этот тип знаний позволяет синтезировать и органично использовать два предыдущих типа знаний, принимая оптимальные решения, а также оценивая получаемые концептуальные и практические знания. Его сложно передать другому человеку, так как немалая его часть находится на уровне подсознания.
Применение: используйте свой опыт и интуицию для принятия лучших решений.
Приобретение: разрабатывайте программы и делайте выводы из результатов