Когда мы пытаемся ответить на вопрос, кто такой программист, в голове чаще всего возникает образ молодого крутого парня из фильмов, который сидит перед шестью мониторами с миллионами бегущих по ним строк и с энтузиазмом без остановки стучит по клавиатуре, выдавая десятки строк готового кода в минуту. Разумеется, все это без проблем запускается и работает.
Но в реальной жизни все далеко не так. Программирование – это не только создание кода. Большую часть времени программист думает о том, какие команды написать, как что-то починить или оптимизировать. Ключевое слово здесь – «думает». Действительно, очень часто бывает такое, что программист за несколько часов не пишет ни одной строчки кода, а вместо этого ковыряется в документации и ищет варианты решения проблемы на сторонних ресурсах. Бывает, что работа уже заканчивается, а ты все еще размышляешь о коде и пытаешься придумать решение задачи. Звучит не так романтично, как показывают в фильмах, правда? Но это действительно ближе к истине. Как минимум половину времени, которое вы проводите за компьютером, вы будете тратить на починку поломок и поиск причин, по которым ваша программа не запускается. Примите это за аксиому: у всех и всегда код будет вести себя так, как хочется ему, а вы будете сидеть и исправлять это, независимо от того, опытный вы программист или начинающий. С ростом вашей экспертности будет расти и сложность задач, но принцип останется тем же. Поэтому на начальном этапе вам придется свыкнуться с тем, что программа работает не так, как на экране преподавателя. И когда что-то сломается и вы начнете это исправлять, вы уже можете себя поздравить: по сути, вы занимаетесь тем, чем занимается настоящий программист – ковыряетесь в коде, чините поломки, улучшаете и оптимизируете то, что делалось до вас.
Почему я так заостряю внимание на этом моменте? Потому что именно от этого я в начале испытывал настолько сильный стресс, что мне хотелось все бросить. Очень многие из-за подобного стресса не доходят до конца обучения, так как реальность не совпадает с ожиданиями. Ваша главная задача – не научиться быстро писать новый код, а доводить до совершенства уже имеющийся и быстро решать постоянно возникающие проблемы. Вот кто такой программист на самом деле: человек, который решает проблемы.
Но давайте не будем забегать вперед. Расскажу по порядку, как я проходил весь этот путь и с какими трудностями встречался.