Понимание и повторение
Если решать одно и то же на протяжении многих дней в надежде на то, что область знаний изменится, то максимум, чего можно достигнуть — повторения теглайна из третьей части Far Cry.
Навык понимания, а не повторения увиденного — один из ценнейших не только в разработке, но и в жизни. Можно прорешать 1000 задач на одну тему, но если не научиться видеть паттерны применения, то, к глубочайшему сожалению, роста как специалиста не произойдёт.
Поэтому мне импонирует стиль профессионалов, стремящихся к practice first: стоит отталкиваться от задачи, от целей, от необходимости оптимизации, и только после этого следовать за алгоритмической составляющей.
Понимание, для чего нужно ускорить тот или иной кусок кода выгодно отличает любого специалиста.
На собеседованиях, которые мне доверяют проводить в компании, я часто слышу от кандидатов, что процессы отличаются в лучшую сторону. Чаще всего я не спрашиваю глубоко теорию, вместо этого, диалог формируется на основе уже решенного тестового задания и ветвится в сторону тех вещей, которые пригодятся в работе. Это совсем не означает, что знание теории не нужно, скорее наоборот, осознание человеком того, какая часть того или иного тестового задания не является достаточно быстрой или архитектурно выверенной, показывает возможность дальнейшего развития.
Важнее знать, почему стоит оптимизировать раздел, в котором происходят сотни обновлений в секунду, вместо того, чтобы сосредоточить усилия нескольких человек, а иногда и команд на вещах, тепловая карта которых не меняется на протяжении десятков версий. Это относится к проектам любого уровня и любой внутренней структуры.
Парадоксально, но хотя мы работаем по спринтам, процесс создания больших проектов — марафон. И хотя Фидиппид в итоге донёс благую весть до афинян, по одной из легенд, для этого он пожертвовал собой из-за слишком высокой загрузки. Именно поэтому важно разобрать задачу и понимать, на чём необходимо расставить акценты, чтобы справиться с дистанцией любого уровня.
Главное помнить, что правильно заданный вопрос это уже половина решения задачи.
😃 iOS Dev