Самая большая глупость – делать то же самое и надеяться на другой результат.
©️ Альберт Эйнштейн
Компьютер в моей жизни появился летом 1999 году. Он покупался родителями для работы - мама работала бухгалтером. На тот момент бо́льшая часть бухгалтерских приложений была написана под MS-DOS, но были уже и пакеты под Windows, например MS Office. Исходя из таких требования ПК был выбран не самый производительный: Celeron 300, DIMM 32 Мб ОЗУ, HDD 4GB, видеокарта Riva 128 AGP c 4 Мб, звуковая карта Yamaha ISA, дисководы для дискет и дисков, “пузатый” монитор на 15 дюймов, клавиатура, колонки и мышка с “шариком” Итого около 13 тыс. руб. ($520).
Как мне тогда говорили, комплектующие, такие как звуковую карту или CD-привод, можно были и не покупать, если бы компьютер предназначался только для работы. Но чтобы на нём можно было слушать музыку и даже играть, было принято решение об окончательной конфигурации. Кстати, возможность прослушивания обычных аудио компакт-дисков и mp3-сборников очень ценилась, так как это компьютер был единственной техникой, который мог воспроизводить настоящую “цифровую” музыку без треска и помех в отличие от кассетного магнитофона, проигрывателя пластинок или УКВ-радио.
Шестой класс в том же году я закончил случайно на все пятёрки, пару гуманитарных предметов мне помогли подтянуть к концу года. Так как в доме появился компьютер, то родители решили, что мне нужно перейти в специальную школу с уклоном. Меня взяли в седьмой класс физико-математической школы фактически без экзаменов при наличии всех пятёрок за предыдущий год. Но вообще нет… В наш год был недобор, так что меня взяли бы всё равно.
ФМШ была единственной школой, которая имела несколько компьютерных классов. Во втором полугодии мы начали изучать основы QuickBasic на уроках информатики. Поэтому в резюме я могу указывать опыт разработки с 1999 года! Шучу. В силу не очень производительного домашнего компьютера и увлечением программированием сводное время я тратил на изучение новых конструкций языка, а не на игры, всё равно многие из современных шли с “тормозами” или просто не запускались. На окончание седьмого класса бабушка подарила мне книгу по QuickBasic 7.0, что ускорило мои занятия. Напомню, что это был 2000 год, а “модемного” подключения к сети Интернет не было ещё несколько лет.
В старших классах нам преподавали TurboPascal, Borland Delphi и AutoCad (ещё под DOS), что было несомненно круто, как я оцениваю это по прошествии пары десятков лет. В восьмом или девятом классе я написал программу, которая строила графики по введённым a, b и c квадратного уравнения, что позволяло сделать домашнюю работу по алгебре значительно быстрее, срисовав правильный ответ с экрана монитора.
С одной стороны мне повезло, что на уроках информатики в школе нам давали контент уровня ВУЗов, особенно по программированию. Именно тогда я решил, что буду программировать несмотря не то, кем буду работать. И пока это сбывается. Но с другой стороны я не умаляю роль моего первого компьютера, на котором, в силу ограничений его производительности, можно было только программировать, а не играть часы на пролёт, как многие мои одноклассники.
С тех пор когда я слышу “у нас нет времени, денег, возможности, …” (нужное подчеркнуть), то скорее всего это означает “мы не хотим думать над улучшениями и ростом”.
Данный раздел имеет повышенный уровень сложности по сравнению с предыдущими. Если вы применяете навыки, описанные в предыдущих разделах, то рано или поздно ваша продуктивность будет ограничена некой асимптотой, то есть уровнем, который нельзя преодолеть не изменив систему. В бережливом подходе непрерывное совершенствование называют кайдзен. Внедряя новые техники и привычки вы следуете путём кайдзен. Но что делать, если вы в своей продуктивности подходите к некому пределу?
Радикальное улучшение или изменение системы называется кайкаку. Например, поступление в университет или переезд в другой город этой кайкаку. Многие эксперты сходятся во мнении, что программирование, как навык, должен стать базовым для нового поколения. Как стало опыт работы на ПК и пользование офисным пакетом для нас в конце девяностых и начале нулевых. Если вы профессиональный разработчик ПО, айтишник в широком смысле слова или студент, который только вчера сделал свою первую практическую работу, то вы скорее всего со мной согласны, что программирование открывает широкие возможности по автоматизации. А если нет, то попробую вас убедить. И почему вам стоить попробовать?
В свой книге “Поток. Психология оптимального переживания” известные американский исследователь Михай Чиксентмихайи приводит восемь основных компонентов переживания радости. Попробуем разобраться, что это за компоненты и причем здесь программирование? Чтобы это сделать, приведу первоначальное описание автора:
В результате наших исследований было выделено восемь основных компонентов переживания радости. Когда люди размышляют о своих чувствах в особенно позитивные моменты, они, как правило, упоминают не менее одного из них, а чаще — все восемь. Во-первых, задача, которую ставит себе человек, должна быть для него посильной. Во-вторых, он должен иметь возможность сосредоточиться. В-третьих и в-четвертых, концентрация, как правило, становится возможной потому, что задача позволяет четко сформулировать цели и немедленно получить обратную связь. В-пятых, в процессе деятельности увлеченность субъекта настолько высока, что он забывает о повседневных тревогах и проблемах. В-шестых, занятия, приносящие радость, позволяют человеку ощущать контроль над своими действиями. Седьмая особенность этого состояния заключается в том, что осознание своего Я в момент совершения действия как будто исчезает, зато после окончания потокового эпизода оно становится сильнее, чем раньше. Наконец, изменяется восприятие течения времени: часы превращаются в минуты, а минуты могут растягиваться в часы. Сочетание всех этих составляющих порождает чувство настолько глубокой радости, что люди не жалеют сил, чтобы снова и снова испытывать её.
Если книга Чиксентмихайи покажется вам слишком сложной или объёмной, то можете начать с упрощенной версии данное теории от Дэниела Пинка “Драйв: Что на самом деле нас мотивирует”.А теперь попробуем разобрать каждый из компонентов и понять, как это относится к процессу написания кода.
Многие скажут, что большинство из этих компонентов легко воспроизводимы в других профессиях, но мне кажется, что в написании кода выбор посильной цели и немедленная обратная связь доступны наиболее широкому кругу людей, нежели в других занятиях. Вы все еще не хотите попробовать источник “бесконечного счастья”? А в нашем контексте это будет ещё и полезно - у вас появиться возможность автоматизировать ваши личные задачи, как нам предлагает матрица Эйзенхауэра.
Что бы перейти на новый уровень продуктивности нужно перестроить система или применить принципиально другие навыки. Программирование является одним из таких навыков, в этой главе я постарался показать, почему этот процесс ещё и является источником бесконечного счастья по Чиксентмихайи. В следующих главах мы посмотрим, как этот навык приземлить на практику. Я не зря привел характеристики и стоимость своего первого компьютера, чтобы вы могли сравнить его с текущим “железом”. У многих есть возможность приобрести самый простой компьютер или ноутбук, даже б/у, чтобы начать учиться программированию.