Шутки программистов - вовсе не шутки
На развлекательных ресурсах в постах, связанных с IT, я часто натыкался на заезженную шутку: «Не знаю, как работает этот код. Работает – и ладно!».
Мне казалось, что это скорее преувеличение, чем реальное положение дел даже среди начинающих специалистов. «Иначе, как может быть написан код, если программист его не понимает?» - думал я.
Но как только я начал проходить курсы на Хекслет, я в полной мере осознал, что это утверждение стало актуальным и для меня. Я не гений и не способен осознать некоторые темы моментально – это я считаю абсолютно нормальной ситуацией. Но несмотря на то, что тема мне может быть непонятна, я всегда сразу приступаю к прохождению задания, закрепляющего урок.
И впервые в полной мере с утверждением «Работает код – и ладно!» я столкнулся в теме, посвященной рекурсии. Рекурсия до сих пор взрывает мне мозг своей моделью, но именно во время прохождения задания я ощущал, что попал в какое-то болото.
Секретная техника начинающего ниндзя программиста
Я мучился с заданием около часа, но решение пришло лишь благодаря подбору кода. То есть в определенный момент я подумал: «А почему бы не добавить begin + 1 вот сюда?». И это сработало! Решение было верным, несмотря на то, что я так до конца и не понял своего кода.
В тот момент я осознал: в программировании нужно пробовать и можно ошибаться. Решая задачу, порой приходится полагаться на интуицию. Ты можешь пробовать огромное количество раз, меняя код так, как тебе хочется. Вопрос лишь в упорстве.
Разумеется, речь идет про ошибки, которые возникают при написании кода, а не во время запуска проекта. Но даже несмотря на это, я могу сказать, что подобный подход вряд ли доступен многим профессиям (а возможно, вообще никаким).
К чему это приведет?
Существует мнение, что программирование больше подходит любознательным людям. Мне кажется, что это абсолютно верно, но мысль передана не до конца, потому что программирование само по себе сделает вас любознательным. Некоторые, возможно, уже читали статью от Business Insider, в которой любознательности было отведено отдельное место – оно является одним из признаков высокого интеллекта.
Но это еще не значит, что у нас высокий интеллект :)
Мне кажется, что подобная практика в любом случае в какой-то мере повлияет на поведение начинающего программиста. Как минимум, он перестанет бояться пробовать. Очень часто мы натыкаемся на совет: «Лучше попробовать и пожалеть, чем потом жалеть о том, что даже не попытался». Совет, конечно, замечательный, но в обычной жизни мы чаще всего его игнорируем.
Чем-то такой подход при решении задачи напоминает кнопку сохранения в компьютерной игре – всегда можно попробовать еще раз! Главное – не перейти черту ;)