Есть у нас человек, назовём его Снежинка. Этот человек, сам того не ведая, создал довольно забавную задачу, которую я предлагаю вам решить. Сразу скажу, правильного ответа я не знаю. Чтобы подогреть ваш интерес, скажу, что Снежинка не одинок в своей проблеме – их там целый сугроб.
Итак, Снежинка хочет стать программистом. Теперь несколько деталей.
Кто Снежинка сейчас?
Снежинка работает кодером – пишет код. Что именно написать, ему говорят в техническом задании, составленном достаточно подробно, с указанием имён таблиц, контекста исполнения, способов вызова, типов возвращаемых значений и т.д.
Код, обычно, ему дают написать несложный и не важный. Причина – в особенностях Снежинки, которых две.
Ограничение – гугл
Снежинка родился со смартфоном в руке. Не будем давать оценку этому факту, лишь беспристрастно опишем последствия.
Грубо говоря, Снежинка очень мало знает и умеет, т.е. у него почти пустая голова. Неплохо справляется с повседневными действиями по обслуживанию своего тела – завязывать шнурки, чистить зубы, одеваться, ходить, кушать и т.д. Немного умеет взаимодействовать с социумом, во всех его проявлениях – не 80lvl, но крайнего в очереди найдёт.
Почти всё остальное Снежинка тоже может сделать, хоть и не знает, и не умеет. Потому что у Снежинки есть гугл – его, снежинкин, персональный резервный мозг, который хранит в себе всё, что может пригодиться в жизни. Раз есть такой прекрасный резервный мозг, основной можно не нагружать. Чем Снежинка и пользуется.
Что важно: код Снежинка тоже пишет с постоянно включенным гуглом. Конечно, он уже запомнил, как сделать цикл, присвоить значение переменной или определить функцию, но всё равно не может обходиться без своего любимца.
Итак, ограничение первое: подавляющее большинство знаний Снежинки находятся в гугле, а не в Снежинке.
Ограничение – клип
Так случилось, что у Снежинки – клиповое мышление. Как, почему такое произошло – знает, наверное, только гугл. В качестве причин приводят и информационную интоксикацию (перебор видосов, короче), и изменения в системе школьного образования (например, «дискретные» тесты вместо «аналоговых» сочинений), кто-то приплетает даже неправильное питание.
В причинах ковыряться не будем, посмотрим на следствие: Снежинка не может сосредоточиться на одном вопросе дольше, чем на несколько минут («клип»). Максимум – 15, но в среднем 5-7.
К счастью для Снежинки, этого времени вполне хватает, чтобы найти решение, требуемое для работы кодером, в гугле. За время клипа Снежинка успевает даже готовые куски кода находить и копипастить.
И вот Снежинка решил подняться на уровень выше – стать программистом. Или разработчиком – не будем углубляться в терминологию. Более серьёзным чуваком, короче. Снежинка изъявил своё желание, и услышал требования к программисту.
Требования к программисту
Требований было несколько, приведу ключевое: там надо думать и придумывать. Названия этого процесса используются разные – анализировать, проектировать, разрабатывать, тестировать, создавать и т.д. Но смысл примерно один – надо думать. Снежинка спросил, что значит «думать».
После долгих споров, дискуссий и мозгового штурма Снежинке дали простую формулу – «23 минуты». Кратко изложу суть.
Придумать что-нибудь стоящее – это создать в голове сложный интеллектуальный объект, учитывающий все особенности, ограничения, цели, возможности, взаимосвязи и т.д. Программистам часто приходится так делать, т.к. решаемая задача редко бывает абстрактной и оторванной от остального приложения, требований к быстродействию, паттернов поведения пользователей.
Для того, чтобы создать в голове сложный интеллектуальный объект, необходимо выполнить, как минимум, два условия.
Первое – составные части объекта уже должны быть в голове. Не на бумаге, не в интернете, не у соседа, а в голове того, кто будет думать.
Второе – думать нужно достаточно долго, 20 и более минут, чтобы объект получился качественным. Иначе получится поделка автоматизмов.
Теперь вы, наверное, уже понимаете, в чём загадка.
Загадка
Итак, подведём итоги и сформулируем загадку.
Программист должен уметь конструировать в голове сложные интеллектуальные объекты. Для этого нужно иметь в голове знания об объекте и уметь сконцентрироваться на 20 и более минут.
Снежинка хочет стать программистом. Но все знания Снежинки находятся не в его голове, а в гугле. Сконцентрироваться Снежинка способен на 5-7 минут, максимум – на 15.
Как Снежинке стать программистом?