Я начинающий инженер-программист (сейчас второкурсник, специализируюсь в CS), и я действительно изо всех сил пытаюсь понять программы других людей. Я хочу знать, может ли этот навык (или его отсутствие) стать помехой для меня, и если да, то как я могу его развить?
reading-code
Джеймс Бонд
источник
источник
Ответы:
Это важно.
Вы разрабатываете его путем написания своего собственного кода (большого количества) и, да, изо всех сил, читая код других людей.
Проблема, конечно, в том, что не все думают так, как вы. Я давным-давно учился на первом курсе Java, и нам дали задание. Вопреки тому, во что я верил (а именно в том, что ответы сошлись на трех или четырех общих решениях), у каждого в классе было уникальное решение для задания.
Отсюда следует, что вы должны читать хороший код.
Это одна из причин того, что шаблоны проектирования стали настолько популярными, и почему вы должны их изучать. Шаблоны проектирования предоставляют общий словарь для общения программистов и настраивают ваш ум на «лучшие» способы решения вычислительных задач.
Вам также следует изучить алгоритмы и структуры данных.
Следствие: вы всегда должны стремиться писать код, понятный другим разработчикам.
источник
Это очень важно
Как только вы закончите обучение и выйдете в мир, большинство проектов, над которыми вы будете работать, уже будут содержать код, добавленный другими. Счастливчик - программист, который тратит все свое время на проекты с нуля!
Это навык , который приобретается через практику и терпение, и во многих случаях, это навык , который многие люди не получают много возможностей для работы на до после того, как они закончат обучение и получить ту первую работу. Расслабьтесь!
(хотя, если в вашей школе есть совместная программа, это даст вам опыт до окончания работы над большими проектами, которые в основном написаны другими людьми, и это даст вам академические кредиты! Что-то посмотреть, если оно доступно)
источник
Это основной навык , в зависимости от специфики того, где вы работаете, это может быть даже важнее, чем написание самого кода.
Как и другие навыки, практика совершенствует! Попробуйте прочитать код другого программиста, отладить его и то, что мне лично помогает, это реорганизовать или улучшить небольшие фрагменты кода и расширяться оттуда.
источник
Есть отличные навыки как в чтении, так и в написании кода.
Что касается чтения против письма. Да, чтение важно.
Вот некоторые из принципов, которые помогают многим из нас:
ХОРОШО. Так что все отлично. Теперь о том, что вы, вероятно, испытываете.
ооо, это чертовски огромная кодовая база с десятками тысяч строк исходного кода и классами длиной в сотни строк с сумасшедшими зависимостями, и каждый раз, когда я пытаюсь следовать чему-то, я должен держать в голове 10 уровней и т. д., и т. д.
Звучит знакомо ? Да. Глубокий вдох. Расслабьтесь. Это нормально. Это то, из чего сделаны производственные системы. Люди выживают (и расцветают) в этих, казалось бы, непостижимых ситуациях, потому что:
источник
Большинство из этих ответов сосредоточены на важности чтения кода для самосовершенствования. Я искренне согласен с этим и поддерживаю его.
Есть еще один аспект, о котором следует опасаться - даже если бы вы были вундеркиндом, который не мог бы извлечь выгоду из чтения других подходов (невозможно, но ради аргумента ....), вам все равно нужно знать, как читать код из-за Концепция, которая в принципе не существует в университетских условиях: подавляющее большинство промышленных проектов - это проекты коричневых месторождений (т.е. либо в рамках, либо в интеграции с существующей кодовой базой).
Необходимость читать код просто для понимания существующей кодовой базы и процессов реальна. Всегда можно задать другим разработчикам вопросы о коде, но это может занять очень много времени. Люди уходят, меняют проекты, или время просто проходит. Низкоуровневые детали исчезают из памяти, а программисты по обслуживанию применяют исправления. В какой-то момент нет единого источника правды, кроме самого кода.
Хорошая гигиена кода, руководства по стилю, обзоры кода и документация помогают, но в какой-то момент код является источником правды для того, что происходит, и единственный способ найти ответ - это пойти и получить его самостоятельно. Помимо использования в саморазвитии, способность читать код - это совершенно отдельный навык от написания.
источник
Понимание чужого кода - это то, чего вы не можете избежать, так как вы, скорее всего, будете работать в команде, даже если не в команде, вы будете гуглить разные вещи и вам придется понимать пример кода. Так что да, это необходимо.
Я чувствую, что у всех возникает такое чувство, что при старте это чувство может быть немного меньше, чем у других, вы понимаете свой код лучше, чем код других, так как вы тратите гораздо больше времени на собственный код, чем на чужой код, поскольку вы не только читаете, но пишете и структурируете это в вашем уме. Если вы начнете проводить больше времени с чужим кодом и сначала попытаетесь увидеть, какая структура / поток используется, это, безусловно, поможет вам лучше понять код.
Чтобы сделать мою точку зрения еще более убедительной, если у вас есть код, который вы написали год назад, попробуйте понять его еще раз, и я могу точно сказать, что вы потратите больше времени, но меньше, чем код другого, поскольку у вас есть представление о том, как вы структурируете свой код. код.
Надеюсь, что это поможет, не разочаровывайтесь, это совершенно нормально. Потратьте больше времени с кодом, и вы в конечном итоге получите его.
источник
Ну, мне только что дали проект с около 100 000 строк кода, написанного командой из другой страны, и я должен внести некоторые очень существенные изменения в копию их кода в течение следующих месяцев, оставляя столько кода в общем, насколько это возможно.
Вы говорите мне, как я могу выполнять свою работу без возможности быстро читать чужой код. Если вы не можете читать чужой код, вы полностью застряли.
источник