Как стать автором
Обновить

Типы знаний программиста и как их улучшать

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




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



Ценность практических знаний в вашей голове всё больше и больше снижается по мере увеличения количества примеров в Интернете. Нет никакой нужды держать их в голове. Решения для подавляющего большинства повседневных проблем несложно найти. Однако знания программиста-мастера должен выходить за рамки простых примеров или того где их искать. Он должен предлагать свои решения, делать оптимальный выбор и наилучшим способом воплощать их в жизнь. Кроме того, зачастую просто невозможно найти информацию по сложным, узкоспециальным или очень новым пробемам.

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



Итак:

A. Ищите

1. Критерии — поймите, в чём заключается ваша проблема и в каких терминах её определить. Интернет так огромен и интересен, что способен поглощать уйму времени при неадекватных критериях поиска.
2. Поиск — научитесь эффективно использовать возможности конкретных поисковых машин.
3. Пробегайте по результатам — учитесь быстро определять качество содержимого, уровень доверия к источнику, а так же квалификацию автора.
4. Читайте отобранное
5. Оценивайте — определяйте требуемые для этого варианта условия, инструменты и время.

B. Используйте

1. Копируйте код и научитесь тестировать его (особенно вам помогут юнит-тесты).
2. Чистите код — оставляйте лишь минимальный, чистый и эффективный код.
3. Добавляйте код в свои приложения.

C. Учитесь

1. Понимание того что и почему вы сделали. Учитесь из кода и работающих программ.
2. Расширяйте знания:
* практические: приёмы, примеры и best practices в том, чем вы занимаетесь;
* концептуальные: учитесь новым концепциям, обдумывайте уже знакомые и создавайте свои;
* опытные: опыт будет расти со временем, если вы прикладываете усилия к поиску наилучших решений и учитесь на их основе.
3. Собирайте (ссылки, отзывы, списки к прочтению) — любая интересная информация для ваших дальнейших исследований и обучения.

От себя: Трюизмов немало, но думаю, что информация поможет стать более концептуальными и определить свои слабые места. :) Спасибо автору оригинального текста.
Теги:
Хабы:
+43
Комментарии 13
Комментарии Комментарии 13

Публикации

Истории

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн