О памяти, Интернете и профессионализме

Несколько дней назад на Хабрахабре наткнулся на статью "Программирование без Интернета". В ней поднимаются три взаимосвязанные темы, которые волнуют меня давно, и по поводу которых я хотел бы написать. Первая — это вопрос фрагментарности знаний и зависимости от "внешней памяти". Хотя я никогда не копирую код бездумно так, как это описывается в статье, а всегда разбираюсь в нем, все равно даже такой подход не заменяет систематического чтения мануалов, дающих более-менее целостную картину, а также возможность взглянуть на уровень (или даже несколько) вглубь, узнать какие-то тонкости или понимание на глубоком уровне, как система работает "изнутри". Но в условиях постоянной спешки и желания получить результат поскорее на такое вдумчивое изучение зачастую не оказывается ни времени, ни мотивации. С другой стороны, как написал один из комментаторов к статье, многие частные знания в компьютерной области имеют свойство быстро устаревать. И тут возникает вопрос, как провести границу между тем, что хорошо знать детально, и тем, что следует рассматривать только как справочную информацию.
Вторая тема — это зависимость от "внешней памяти". В частности, уже давно, изучая что-то, я улавливаю и запоминаю общие принципы работы, но плохо запоминаю детали, типа конкретных названий функций или порядка их параметров (тут, правда, отчасти влияет мой тип по типологии «Кроме людей»). Из-за этого получается, что даже на том же PHP, который я знаю лучше остальных языков программирования, есть много вещей, которые я когда-то делал, но не смогу воспроизвести по памяти, не заглядывая в справочник. Например, к таковым можно отнести работу с XML, CURL, SOAP. И это порождает определенное чувство беспомощности из-за понимания, что без Интернета я мало что могу сделать. Решения тут могут быть такие: во-первых, держать оффлайновые версии всех необходимых справочников (как и предлагалось в статье), во-вторых, завести что-то вроде блокнота, куда выписывать ключевую информацию (типа сигнатур функций). Это и даст возможность программировать с отключенным Интернетом (что часто помогает сосредоточиться и меньше отвлекаться), и запоминанию поспособствует, и открыть блокнот на нужной странице окажется быстрее, чем запускать справочник и искать там.
И третья тема заключается в том, а что же в наше время следует считать профессионализмом? Для меня всегда главными критериями профессионала было понимание им сути того, чем он занимается, причин происходящего, наличие знаний, почему следует применить именно это решение из множества возможных, умение сделать работу качественно, а также наличие знаний в голове, которые позволяют выполнять работу без книжки, по памяти. И еще можно добавить этический критерий: не пользуется некомпетентностью клиента для вытребования бо́льшей суммы денег, чем договаривались. Но в комментариях к статье столкнулся с совершенно другой точкой зрения: что профессионалом является тот, кто выдает предсказуемый результат в предсказуемый срок, даже толком не понимая сути того, что он делает (и в качестве примера такового приводился какой-то разработчик Telegram-ботов, который толком и программировать не умеет.) И, соответственно, возникает вопрос: а какой из этих критериев более правильный? Впрочем, могу еще допустить, что тут влияют соционические ценности: мой подход основан на ценностных БЛ+ЧИ, а противоположный — на ЧЛ+БИ.