18.6 Как работают аналогии… и чем они мешают?
Аналогии – это один из самых мощных способов обучения. В обучении мы часто используем аналогию, чтобы сравнить то, с чем ученик знаком, с чем-то новым, объясняя информацию на известных примерах.
Допустим, вы знаете что-то об автомобилях, но вам ничего не известно об объектно-ориентированном программировании, или ООП. По сути, ООП рассматривает все в компьютере как объект, а объект во многом похож на автомобиль. У машин есть определенные характеристики, верно? Марка, модель, цвет, объем двигателя и т. д. Программные объекты тоже имеют характеристики, такие как номер версии, название производителя и т. д. Как программист, вы можете их изучить, чтобы узнать больше об объекте, и даже изменить некоторые из этих характеристик, чтобы переделать объект. Представьте, что вы можете перекрасить свой автомобиль, просто изменив характеристику «цвет», а ведь именно так все и происходит в программном обеспечении!
Я использовал аналогию с обычным объектом, чтобы кратко объяснить концепцию, связанную с компьютером. Точно так же одна из самых больших ценностей, которую вы можете донести до людей, которых обучаете, – это набор аналогий, которые не будут для них пустым звуком. Помните, что все мы уникальны, возможно, даже из разных культур, и у всех нас разный прошлый опыт. Создание аналогий, которые «говорят» с конкретным учеником, требует, чтобы мы разделяли или, по крайней мере, имели представление о культуре и опыте друг друга. Вот почему я не могу быть великим учителем для всех; мне не хватает разнообразия, необходимого для построения аналогий. Что, если вы из той культуры, где автомобили – это редкое явление? Большинство моих аналогий потерпели бы неудачу. Преподавание во многих отношениях – это получение знаний, созданных кем-то другим, которые вы впоследствии усвоили, а затем «переупаковка» этой информации в аналогии, понятные конкретной аудитории.
Имейте в виду, что все аналогии, даже (и особенно) самые лучшие, в конечном итоге перестают работать. Аналогия с программными объектами, подобными автомобилям, приведет вас к определенной точке понимания, но в какой-то момент перестанет работать. Аналогии требуют чрезмерного упрощения некоторых аспектов того, чему мы учим, или временного игнорирования деталей. И это прекрасно. Люди не могут научиться всему сразу. Таким образом, мы можем использовать аналогии, чтобы довести их до определенной точки, а затем либо изменить аналогии, либо отказаться от них. Мы можем вернуться и пересмотреть ситуацию: программные объекты не совсем похожи на автомобили. В программном обеспечении встречаются характеристики, которые являются коллекциями, то есть они могут содержать другие объекты. Представьте, что у вашего автомобиля есть характеристика «Шины», содержащая коллекцию объектов «Шина», каждый из которых представляет одну шину автомобиля. Аналогии – это прекрасный подход, но они предназначены для достижения определенной цели, а затем их следует отложить в сторону.