Быть хорошим программистом не значит безостановочно писать код. Несмотря на то, что этот навык является более востребованным, в крупных компаниях изменение и переписывание кода является немаловажным элементом. Поэтому для устранения допущенных в программе ошибок код именно вычитывается, а не переписывается заново. Его написание бесспорно является самой важной задачей, но научившись понимать различные виды кода вы сможете вырасти как специалист.
Создавать программы практически на любом языке можно просто повторяя за широко доступными обучающими видео, не являясь при этом профессионалом. А вот интерпретировать код, думать о его авторе и искать решения обнаруженных в нем проблем уже раскрывает другой уровень возможностей.
Если обратиться к художественным произведениям, то можно поражаться тем идеям, которые порой закладывают в них создатели. В стремлении понять, что автор написал и как, вы выходите за грани собственного воображения.
Чтение кода представляет более сложную задачу, нежели привычное нам повседневное чтение. В его случае при постоянном повторении знакомых фраз ваш навык постепенно совершенствуется, и в последующих книгах скорость чтения и восприятие материала улучшаются. То же самое касается и кода.
Читая его, вы словно знакомитесь с точкой зрения другого человека. По мере выхода из периода слепого следования руководствам и наставлениям, вы постепенно начинаете расти. И далее на пути становления успешным специалистом вам сильно поможет чтение большого количества кода. Но почему конкретно?
1. Вы перестанете скатываться в собственное повторение
Всем известный принцип DRY (не повторяйся) был введен Энди Хантом и Дейвом Томасом в их книге “The Pragmatic Programmer” (Программист-прагматик), выпущенной в 2000 году. Однако сама эта идея родилась гораздо раньше.
Повторяемость при написании кода зачастую ограничивает развитие наших знаний. Спасти положение поможет как раз таки чтение чужого кода, из которого вы сможете почерпнуть различные новые для себя стратегии.
Разработчики преувеличивают тот факт, что читать код намного сложнее, чем писать. В итоге многие стопорятся на заученных навыках, не пополняя их запас.
Чтение кода подобно знакомству с логикой и ходом мысли другого программиста. Но, соглашусь, задача эта непроста. Все мы думаем по-разному, и нам всегда есть чему друг у друга поучиться. Повторяющийся код в конечном итоге неизбежно дает сбой, поэтому очень полезно читать чужие программы в поиске новых техник его написания.
2. Повысится чистота вашего кода
Здесь у нас замкнутый круг. Ведь сложность чтения кода напрямую зависит от того, насколько правильно и лаконично он был написан.
“Если вы хотите быстро справиться со своей задачей, если вы хотите, чтобы ваш код было легко писать позаботьтесь о том, чтобы он легко читался.” — Роберт К. Мартин “Чистый код. Создание, анализ и рефакторинг”.
Ради примера попробуйте сравнить небрежный код с грамотным. Это позволит лучше представить задачу. Если вы будете продумывать, как превратить плохой код в хороший, прилагать к этому умственные усилия, то в результате сможете расширить свой багаж навыков.
Помимо этого, чтение чужого кода знакомит вас и с качественными примерами, которые пригодятся в дальнейшем. Если такой код вдруг даст сбой, то вы поймете, что в нем не так. Когда программа написана успешно, становится легко понять, какие ее части нужно улучшить. Изучая технику другого программиста, вы сможете сделать нужные выводы и в итоге сами постепенно начнете писать более чистый и эффективный код.
3. Аналитическое мышление улучшится
Язык программирования отличается от литературного тем, что он математический. В нем есть функции, операции присваивания значений и вычисления. В этом случае для понимания структуры требуется именно аналитическое мышление.
Люди с развитыми навыками аналитики любят задавать вопросы и стремятся к изучению нового. Они не стесняются ставить под сомнение даже принятую социумом информацию. Благодаря этому они понимают, что правда может изменять свой облик в зависимости от времени, места и ситуации. Это позволяет им принимать правильные решения согласно тем условиям, в которых они оказываются.
Аналитическое мышление также позволяет нам вырабатывать грамотные решения повседневных задач. Если составные части задачи, такие как отправная точка, причины, результаты, предположения и прочие, прорабатывать по одной, то вероятность успешного решения повышается.
Изучение чьего-то кода и приложение усилий к его пониманию развивает аналитический склад ума, так как в этом процессе вы ищете логические объяснения, которые в итоге помогают понять принцип работы всей программы.
4. Сможете найти ответы на сложные вопросы
Бывают случаи, когда найти решение сложившейся проблемы не получается даже с помощью интернета. Хорошо, когда в подобных ситуациях есть возможность спросить старшего сотрудника.
В нашей жизни немаловажную роль играют именно более опытные люди. Не для кого не секрет, что развитие навыков разработки напрямую зависит от обретаемого опыта. Чтение кода позволяет понимать решения, реализованные опытными и квалифицированными специалистами.
Люди, чей код вы читаете, сталкивались со многими новыми для вас проблемами ранее, что отражается в создаваемых ими программах и позволяет вам учиться у них. Многие бывалые разработчики проводят немало времени за чтением чужого кода, так почему бы и нам не брать с них пример?
5. Научитесь качественнее отлаживать программы
Обучение происходит, когда мы читаем и смотрим то, с чем ранее не были знакомы. То же касается и написания кода. Что вы будете делать, когда в программе всплывет ошибка? Для написания качественного кода необходимо обладать навыком отладки. Опять же, для успешного применения этого навыка требуется опыт, который вы получаете при чтении и изменении чужого кода.
“Программирование позволяет вам размышлять над размышлением, а в процессе отладки вы учитесь учиться” — Николас Негропонте.
6. Ускорится анализ исходного кода
Для инженера способность с легкостью читать исходный код является неотъемлемой частью повседневной деятельности.
Когда вы получаете работу над каким-либо проектом, то понимание кода и правильное реагирование на требования руководства становится очень важным. Опытные разработчики читают исходный код быстрее, особенно если они уже знакомы с архитектурой пакета. Так что данный навык оказывается большим плюсом при подключении к проекту или трудоустройстве в компанию.
Заключение
Если вкратце, то с течением времени вы наработаете методы, соответствующие собственному стилю обучения. Все мы выбираем разные тропы в освоении новых навыков. Однако общим критерием, который послужит основой для всестороннего развития навыков, является практика и выработка привычки регулярно читать чужой код.
В качестве ориентира могу порекомендовать вам GitHub, который буквально наполнен различными программами многих опытных разработчиков. По ходу чтения обращайте внимание на причины, по которым что-то не удается понять. Все это с течением времени и обретением опыта вы обязательно уясните.
Читайте также:
- Декларативный код против императивного
- 10 рекомендаций по защите баз данных
- Изысканные уловки хакеров для кражи подарочных карт
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Nazlican Kurt: 6 Reasons Why Reading Code Is More Important Than Writing