Ещё в первой главе давали поверхностное различие: практику или метод выполняют, что даёт конкретный рабочий продукт, результат; теория же статично описывает устройство мира, её нельзя выполнить. Но что насчёт конкретики, как на пальцах отличить теорию от практики? Как именно разделить освоение дисциплины и технологии на реальном примере, когда обе так и норовят перемешаться?
Я начал разбираться и наткнулся на первую подпроблему: факты в теории однозначно далеки от технологии, ибо по определению статичны ("у Земли один спутник"), однако что насчёт концептов, зависимостей? Они ведь по определению активны, динамичны! Возьмём дисциплину физики и технологию метания копья: физика даст описание, формальную зависимость угла броска и дальности полёта, из которой последует, допустим, что при 40 градусах снаряд полетит дальше всего. "Но это ведь уже технология, ибо позволяет получить конкретный физический результат!" - подумал я, но потом заметил, что упустил едва ощутимый переход от концепта к технологии. Сам по себе концепт лишь описывает зависимость, однако вычисления на её основе в контексте какой-то цели уже дадут часть технологии, как в данном случае вывод об оптимальном угле броска стал частью технологии метания копья. При этом сама зависимость всё-таки описание, теория, алгоритма к действию не даёт. Отлично, разобрались!
Теперь что насчёт освоения нового дела, как в процессе обучения решению реальной задачи отделить дисциплину от технологии? Разберу на примере близкой мне деятельности, хоть и чуждой большинству возможных читателей. Допустим, нужно разработать android-приложение по заданному макету интерфейса (как должно выглядеть) и текстовому функциональному описанию (что должно делать). При этом положим, что в целом программировать умеем, но под смартфоны ни разу не доводилось: как справиться с проблемой? Придётся освоить одновременно и дисциплину и технологию "android-разработки".
Стоп, это как так, "одновременно"? Конкретизируем пример, допустим, нужно реализовать экран таблицы лидеров в приложении Focus ToDo:
В android-разработке не разбираемся, придётся сначала нарастить базовую модель знаний: дисциплину. Как вообще создать проект? Как операционная система управляет жизненным циклом приложения, где точки входа и выхода? Наконец, как верстать интерфейс, а как программмировать его поведение, какие компоненты для этого использовать? Опа, начинаем, переходить к технологии, то есть от статичной модели (как устроена жизнь приложения) к проблемно-ориентированной: как реализовать поведение, какими компонентами? Однако пока что не для конкретной проблемы (экрана на скриншоте), а в целом: "если нам нужно абстрактное приложение с интерфейсом X, что использовать?".
Попробуем спуститься на уровень конкретики: как сверстать вертикальный список участников группы на скриншоте? Гуглим, изучаем, используем элемент RecyclerView, загрузив в него LinearLayoutManager с параметром orientation равным vertical. Ага, это уже чистой воды технология: чтобы решить проблему X, используй инструмент Y согласно алгоритму Z. С другой стороны, минуту назад мы не знали, что есть такой замечательный RecyclerView! Получается, узнав о его существовании мы сначала обновили дисциплину (модель мира), а затем вырастили в мозгу нейросетку технологии: используй RecyclerView таким-то образом для создания вертикальных списков.
Вот оно, фундаментальное различие между теорией и технологией! Теория или дисциплина это ОПИСАНИЕ мира, а технология это АЛГОРИТМ его изменения. Причём технология представлена в мозгу в формате связок-действий по модели проблема-инструмент-алгоритм. Оказывается, определение из учебника не такое уж и поверхностное, ибо выражает ключевое свойство различия. Убедились в этом лично, поставив два эксперимента и проверив надёжность модели :)
Кратко рефлексирую опыт создания второго поста. В первом посте описал уже известный принцип уже осознанным мною жизненным опытом. Получается, больше зафиксировал, чем вычислил. В этот раз взял проблему, поставил вопрос, ответа на который в начале размышлений совсем не знал, и получилось чистой воды хардкорное вычисление. Первый раз осознанно реализовал подобное на бумаге, необычное чувство, горжусь собой, что добрался до истины.
А ещё случилась, опять же, чистой воды метанойа: завершил вычисление, перечитываю пост и не понимаю, почему я раньше этого не видел? Всё ведь так очевидно! Однако конфуз "первой системы" мозга ещё запечатлён в памяти, поэтому щипать себя не буду, верю в то, что с ума не сошёл. Получается, "второй системой" или медленным мышлением разложил идеи по полочкам, теперь можно спать спокойно.
Здесь затратил 1.5 часа, притом форматировал минимально, даже через Главред не прогнал. А в том посте затратил 3 часа, из которых половина ушла на "вылизывание" под глянцевый формат статьи. Отныне буду придерживаться текущего формата, ибо для решения оперативных вопросов, на мой взгляд, он и предназначен. А формат статьи подойдёт для крупных открытий, когда захочу зацепить действительно широкую аудиторию, как говорится, каждой проблеме свой инструмент.
В общем, доволен как слон, только не знаю, что делать с остальными шестьюдесятью четырьмя идеями для вычислений (за 2 главы из 12!): бросить курс и пустить все жизненные силы на изобретение машины времени?)..
UPD 27.04 (спустя сутки с небольшим): право, случилась метанойа. Теперь вижу явно, как технология рождается вычислениями из концептов дисциплины в случайных примерах.