Здравствуйте!
Вчера у нас было одиннадцатое правило из 12, как изучать программирование. Сегодня будет двенадцатое правило.
Правило двенадцатое. Сломайте чужой код.
Один из самых важных шагов, который нужно сделать, чтобы перейти от ученика-программиста к полноценному программисту, — это понять, как получить помощь. Всем нужна помощь. Всем, в том числе и тем, кто так называемый “Программист уровня Бога".
Но то, что вы сделаете с этой помощью, определит, насколько быстро вы продвинетесь как программист. На таком сайте, как StackOverflow, может быть очень заманчиво просто скопировать и вставить предоставленный кем-то код. Ваша программа работает именно так, как вы надеялись, и вы продолжаете свой веселый путь программирования. Это упражнение не научило вас ничему, кроме уверенности в коде. Потому что в следующий раз, когда вы столкнетесь с той же проблемой, но в другой ситуации, тот же фрагмент кода, который кто-то предоставил, может больше не работать. Тогда что же вы делаете? Вы застрянете.
Вот почему в программировании есть правило, которое гласит: “никогда не копируйте код, который вы не понимаете”. Итак, что вы должны делать, когда сталкиваетесь с блоком кода, который решает вашу проблему, но вы понятия не имеете, как он работает? Сломайте его.
Шаг 1 - Скопируйте и вставьте код в вашу программу. (да, да, я знаю, что только что сказал не делать этого, терпение, терпение).
Шаг 2 - Убедитесь, что ваша программа или приложение работают должным образом. То есть подтвердите, что блок кода действительно решил вашу проблему.
Шаг 3 - Удалите скопированный и вставленный блок кода строка за строкой.
Шаг 4 - Каждый раз, когда вы удаляете строку, проверяйте, что было нарушено. Работает ли приложение по-прежнему? Каковы коды ошибок? Что сделало удаление этой строки кода с вашей программой?
Шаг 5 - Даже если вы думаете, что знаете, что делает строка кода, все равно удалите ее. Самая важная задача программиста — всегда проверять свои предположения на соответствие результату. Ведь самое приятное чувство программиста — это когда реальный мир подтверждает ваши предположения. Знаете, как приятно, когда ваш парень/девушка/муж/жена произносит эти волшебные три слова?
«Ты был прав»
Данное чувсвто похоже на это, но только лучше.
Шаг 6 - Поменяйте местами некоторые строчки. Может ли та же функциональность быть достигнута с другим порядком строк? Почему они были написаны в том порядке, в котором они были написаны?
Ломая код решения построчно, вы узнаете и поймете, что делает каждая строка и почему она была написана. Это гораздо лучший способ использовать код от других людей, чем просто вставлять его и надеяться на лучшее. Как только вы поймете, почему каждая из этих строк была необходима, в следующий раз, когда вы столкнетесь с подобной проблемой, вы сможете решить ее самостоятельно.
Как только вы освоите поломку кода из StackOverflow, следующим целевым ресурсом будет GitHub. Это инструмент, используемый программистами для совместной работы, но он также является одним из крупнейших хранилищ открытого исходного кода.
Так как же вы можете использовать его, чтобы стать лучшим программистом? Допустим, вы хотите сделать клон Instagram. Но, к сожалению, вы не знаете, как это сделать. Итак, вы направляетесь в github.com и ищете “Instagram” или “фото приложение”. Неизбежно будет что-то написано на Swift/Objective-C/Java, что вы сможете скачать и посмотреть.
Подумайте о структуре их программы. Взгляните на все классы, константы, взаимодействие. Внесите некоторые изменения в код. Он все еще работает или вы его сломали? Почему вы его сломали? Есть ли связь, которую вы не идентифицировали? Задавайте себе кучу вопросов, учитесь по методу Сократа. Разрушьте проект и поймите, как он был построен.
Когда вы начинаете действительно хорошо разбираться в этом, следующее, что вы можете попробовать, — это обратное проектирование. Найдите небольшой проект на GitHub, сделанный авторитетным программистом, скачайте приложение. Запустите его и посмотрите все его функциональные возможности. Поиграйте с ним.
Затем создайте его с нуля и, как только вы закончите, сравните свой код с их кодом. Есть ли прирост эффективности, который вы могли бы сделать? Есть ли решения для вещей, которые вы не могли понять? Теперь вы действительно попадаете в высшую лигу.
Всего вам хорошего.
На этом на сегодня всё, встретимся наверное завтра!
Если понравилась статья, поставьте, пожалуйста, лайк! А если вы ещё не с нами, то обязательно подписывайтесь, тут полезно и интересно.
Спасибо всем, кто перечисляет деньги! Если у вас нет возможности помочь каналу материально, то поделитесь, пожалуйста, статьёй с друзьями в соцсетях — вы очень поможете развитию канала.
Предыдущая статья. ......................................................... Следующая статья.