morfizm (morfizm) wrote,
morfizm
morfizm

Учебное по программированию

Катя тут взяла курс C# в колледже, и пожаловалась на непонятное.
http://fearless-cat.livejournal.com/238432.html

Мы вчера пообщались с ней на эту тему, оказалось, проблема в подходе. Я её два года учил последовательному подходу (ни шага дальше без полной ясности всего предыдущего) - и это отличный подход в математике или в programming basics, это может быть также отличный подход, если занимаешься по талантливо составленной книге, где много полезного материала и мало лишнего. Мне кажется, очень важно владеть этим подходом, потому мне видна невооружённым глазом корреляция между людьми, всегда трогающими по верхам и не способными во всём досконально (на 100%) разобраться, и их ограниченностью в карьере.

Но курс по C# не похож на идеально подготовленную педагогом песочницу, а приближен к реальности - ничего там талантливо не составлено, понахватано копипаста из официально reference, этот reference содержит уйму не нужной на сегодня инфы и кишит ссылками туда-сюда, включая неприятные циклы (одна вещь определяется через другую, а другая через первую). Последовательный подход приведёт к успеху, но по дороге можно утонуть: он приведёт к пониманию очень медленно, а также по дороге вынудит тебя собрать кучу совсем ненужных деталей. Кроме того, с этим подходом не успеешь вовремя делать домашки.

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

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

2. Не ожидать, будто бы вводный текст про новые вещи (понятия, концепции) расскажет про них всё. В мысленной модели считать новую вещь неизвестной, имеющих много характеристик, и относиться к тексту, будто бы он не ставит целью рассказать про все важные характеристики, а будто бы он рассказывает лишь про одну из них - делает первый "мазок на холсте". Картинка будет чётче, когда информации будет больше, но эта информация не нужна прямо сейчас.

3. Если при чтении предложения возникают уточняющие вопросы - не обязательно лезть разбираться. При первом чтении можно пропустить вовсе, при втором разбираться, если это выглядит полезным. Не тратить много времени на самостоятельный разбор, использовать эксперименты, консультации, форумы и т.п. Многое можно понять, просто придумав гипотезу и подтвердив или опровергнув её простым экспериментом.

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

5. Альтернативый вариант - при первом чтении вообще не читать текст, а читать только примеры. Если они понятны - ехать дальше. Если они не понятны - разбираться с ними, и использовать предыдущий текст главы просто как один из вспомогательных информационных ресурсов, помня о том, что есть ещё много других.

6. По каждой новой теме собирать примеры, приводящие к пониманию. Например, structs: пару примеров структур, и пару строк кода, их использующие. Хранить информацию (как в заметках, так и в голове) в виде примеров кода куда лучше, чем в виде текста, особенно плохо составленного. Код куда более формален, однозначен, проверяем, а также компактен. Имея наборы таких примеров потом легко будет построить уже настоящую ментальную модель концепций, лишённую пробелов и двусмысленностей.
Tags: 1, learning, software development
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments