В Eloquent JavaScript Марин Хавербеке ссылается на побочные эффекты в коде - эффекты, которые имеют какой-то эффект за пределами их локальной среды. Эта концепция заставила меня задуматься о побочных эффектах программирования в реальной жизни - о том, как оно влияет на учащихся, помимо предоставления им опыта программирования.

Совершенно очевидно, что программирование развивает навыки решения проблем. Компьютеры настолько тупоголовы, что выяснение того, как давать им инструкции, которые они действительно могут понять, дразнит логическое, систематическое, элементарное мышление даже у самого кругового, бессистемного, стремящегося к общей картине начинающего программиста, который придерживается этого достаточно долго.

Программирование заставляет вас ежедневно справляться с двусмысленностью и беспокойством. (Возможно, это не хорошо, но выслушайте меня.) Снова и снова вы будете сталкиваться с проблемами, на решение которых может уйти две минуты, два часа, два дня или две недели. Вы не будете знать, особенно вначале, сколько времени потребуется на решение. И вам придется с этим смириться, потому что эти проблемы будут вашими постоянными спутниками. Но по большей части кодирование - это песочница. Если ваша программа «ломается», все, что вам нужно сделать, чтобы исправить это, - это найти проблемный код и заменить его не нарушающим кодом. Если вам удастся повредить его без возможности восстановления, вы можете вернуться к предыдущему нажатию на GitHub и начать заново.

Программирование вселяет уверенность. Рано или поздно вы понимаете такие вещи, как как получить помощь и как разобраться в изначально запутанных дебатах о переполнении стека, и вы приходите к выводу, что независимо от проблемы, рано или поздно вы найдете решение и не будете сдавайся, пока не сделаешь.

Программирование разрушает перфекционистские тенденции. Я думаю, что большинство учащихся давно и остро осознают, что они, с учетом всех обстоятельств, плохо умеют кодировать, и им предстоит пройти долгий путь, прежде чем они станут хорошими в программировании. Вы должны изучить передовой опыт. Вы должны принять тот факт, что все ресурсы, имеющиеся в вашем распоряжении для кодирования, были созданы людьми, они по своей сути несовершенны и со временем становятся все более несовершенными. Вы должны найти баланс, идти на компромиссы и апеллировать к противоречивым ценностям. И вам нужно постоянно учиться до конца своей жизни. В этих условиях идеального не бывает. Все, что вы можете сделать - это стараться изо всех сил.

И если, несмотря на все это, вы продолжите и не расстраиваетесь, программирование сделает вас настойчивыми.