Существуют такие странные люди - программисты. Когда программист занят своей непосредственно работой - это совсем не похоже на то, когда своей работой занят, например, сантехник, дизайнер, монтажник или кто-то еще. Потому что работа у программистов особая. Но обычным людям это неведомо. В этой статье, я решил наглядно и понятно обычному человеку объяснить - что происходит, когда вы отвлекаете программиста. Читать или не читать это - дело ваше, но после прочтения, вы сможете понимать программистов чуть лучше и они будут вам за это благодарны.
Для всех остальных людей, программисты - это действительно необычные люди, более того, это люди владеющие некой тайной, или скорее таинством. Эти люди способны создавать сущности, наделенные логикой и чем-то похожим на интеллект - программы.
На самом деле, когда программист создает сложную программу, с большим объемом кода - его лучше не отвлекать. Вообще. Ни разу. Попробую объяснить. Самое важное, что есть в программе - ее алгоритм. Самое важное требование к программисту - продумать и создать наиболее оптимальный алгоритм. Что такое алгоритм? Это последовательность действий программы, это ее логическая реакция на разного рода события и взаимосвязность всех событий и действий.
Догадываюсь - это слишком сложно для понимания непрограммисту. Еще сложнее объяснить, что происходит в момент, когда программист обдумывает очередную часть алгоритма. Поэтому, попробую объяснить это на языке, понятном каждому, кто знаком с арифметикой.
Сейчас, честно попробуйте выполнить следующее упражнение: Вычислите в уме, сколько будет в результате этой арифметический операции: 2+7+9-1+3-10= Подсчитали? Не читайте дальше, пока не сосчитаете. Сосчитали? Правильно - получается 10
Хорошо.
А теперь еще одна арифметическая операция, подсчитайте сколько будет в результае этого вычисления:
10+5+17+3-15+5-10+50-10+5-25-10+4-18=
Сколько вышло?
А теперь представьте, если бы в тот момент, когда вы прибавляете 50 к 15-ти, вам кто-то задал какой-то вопрос. Что бы получилось? Ага - вы бы сбились и скорее всего пришлось бы считать с самого начала.
А почему? Потому, что вы последовательно выполняете простые действия - сложение и вычитание и удерживаете в голове несколько вещей (результат предыдущей арифметической операции и текущее ваше положение) т.е. вам приходится помнить какую операцию необходимо проделать в текущий момент и сколько получилось в результате предыдущей операции. И если вас отвлечь - вы можете забыть что-то и скорее всего забудете что-то или потеряете уверенность в точности того, что вы помните и вам скорее всего придется начинать сначала. Почему так происходит? Это скорее смогут объяснить психологи. Вероятно потому, что человеческий мозг не является многозадачным, т.е. в "оперативной" памяти может обрабатываться только одна задача и этот своеобразный поток мысли нарушается, когда приходится отвлекаться на другие задачи.
Вот так и программист. Только программисту сложнее. Ему также приходится удерживать в голове информацию о текущих операциях, о результатах предыдущих операций и о том, какие операции должны быть следующими. Только он помнит не о собственных операциях, а об операциях программы. И операций этих, как и их результатов, может быть гораздо больше. И в основе своей, все это - все то, что относится к текущей части алгоритма, программисту необходимо удерживать в голове. А это, чаще всего гораздо больше, чем вышеприведенные результаты простейших арифметических вычислений.
И когда вы отвлекаете программиста - ему приходится обдумывать что-то с самого начала и как минимум возникает большой риск что-либо напутать, что-то упустить и о чем-то забыть.
Поэтому, не стоит отвлекать от работы программистов - это наносит ущерб продуктивности программиста несоизмеримо больший, чем в любых других областях и профессиях.