Хотите быть разработчиком? Возможно, вы должны быть четным программированием.

1656657505 hotite byt razrabotchikom vozmozhno vy dolzhny byt chetnym programmirovaniem

Содержание статьи

Маркус Гардинер

knAmVIJiEbU96JWwB2XujfviNVxKmJlt5EY5

Когда люди думают о разработке программного обеспечения, они, разумеется, думают об одиноком программисте-волке, оторванном от мира, решающем сложные проблемы.

Что если бы я сказал вам, что разработка программного обеспечения вряд ли работает в реальном мире… и что парное программирование может стать вашим ответом на то, чтобы научиться быстрее кодировать, подготовиться к реальному миру разработки программного обеспечения и, возможно, получить больше удовольствия в процессе ?

dMoVLfSvnTDo4KKaisVJiw3l7Kcl-wKoXDNo
Одинокий волк-разработчик программного обеспечения в действии (Gifs любезно предоставлен Giphy)

Звучит хорошо. Как же на самом деле работают разработчики программного обеспечения?

Более точным может быть a команда разработчиков программного обеспечения, которые иногда закрываются от мира, иногда подключаются к нему и все еще решают сложные проблемы (но вместе).

Сценарий одинокого волка может быть верен в определенных ситуациях, например завершение побочного проекта или фрилансерская работа. Однако чаще разработкой программного обеспечения для продуктов любого значимого масштаба занимается полноценная команда программного обеспечения, вероятно, с сочетанием различных сильных сторон разработки (см. изображение ниже из DSDM Agile Framework). Эта команда программного обеспечения будет подключена к более широкой бизнес-коммерции (мы не можем забывать о нашем конечном пользователе 🙂 )

9krbBPRFFwbzpE74uWU2xlOsWUaTUXqpg4yC
DSDM® Agile Project Framework

Что это значит для нас, разработчиков программного обеспечения, обучающихся ремеслу? Это означает, что, несмотря на то, что обучение программированию часто начинается как игра-одиночка, мы хотим, чтобы оно (как можно скорее) переросло в командный вид спорта по разработке программного обеспечения, который является распространенным в большинстве организаций.

Помимо самого содержания кодирования важно развивать навыки сотрудничества и командной работы, которые помогут вам процветать в команде разработчиков программного обеспечения. Внешняя поддержка со стороны других также является фантастическим (возможно, лучшим) способом обучения, даже если естественный соблазн состоит в том, чтобы бороться со сложными проблемами кодирования в одиночку.

Поиск команды, с которой можно учиться и развиваться, может быть не практичным решением. Намного более реалистичной отправной точкой является поиск еще одного человека для создания пары с программой.

Ладно, я заинтригован…

Для непосвященных: что такое четное программирование?

К счастью, Википедия может помочь нам здесь:

«Парное программирование это гибкая техника разработки программного обеспечения, при которой два программиста работают вместе на одной рабочей станции. Один, тот водительпишет код, а другой, the наблюдатель или навигаторпросматривает каждую строку кода при его вводе. Два программиста часто меняются ролями».

Как это изменяет мышление двух людей, подходящих к коду?

«При пересмотре наблюдатель также рассматривает «стратегическое» направление работы, выдвигая идеи по усовершенствованию и возможные будущие проблемы, которые необходимо решить. Это увольняет водителя, чтобы сосредоточить все свое внимание на «тактических» аспектах выполнения текущей задачи, используя наблюдателя как сетку безопасности и советчика».

ОК здорово. Но разве это парное программирование не будет очень неудобным?

Вы можете скептически относиться к парному программированию – я, безусловно, сам был скептически. Ваше первое мнение может быть, что эта идея звучит как неудобная. Будет ли это так?

VmMbDxAlWJeUdkDic6MIUfQS3LlXf3iMWkG4
Сочетание может показаться неудобной идеей (Источник)

Чтобы успокоить ваш разумный скептицизм, давайте поговорим о некоторых преимуществах парного программирования, применяемого с особым вниманием к тем, кто только начинает свой путь программирования.

Три основных преимущества парного программирования предназначены для тех, кто учится кодировать:

(1) Парное программирование – это фантастический способ учиться у другого программиста.

Ни в какой другой среде вы не будете стоять на той же точке задания кодирования, борясь с точно такой же проблемой и пытаясь решить ее вместе. Вы будете смеяться, вы будете плакать, и вы, в конце концов, будете учиться.

Важно то, что вы накопили разные базы знаний, когда научились кодировать, и вы сможете получать новое содержимое из своей пары. Что еще важнее, хорошее программирование — это, в конце концов, применение наилучшего процесса решения проблем, а не наличие большого количества знаний о контенте (см. эту публикацию). Парное программирование позволит вам узнать процесс другого разработчика, а также даст вам возможность получить отзыв о своем собственном процессе кодирования (подробнее об отзывах ниже).

Дополнительное преимущество от такого взгляда на процесс кодирования и необходимости объяснять его своей паре: Rubber-ducking – это фантастический способ отладки кода. Короче говоря, это предполагает объяснение того, что вы пытаетесь решить, «резиновому утенку» или другому неодушевленному объекту, чтобы вы получили видение проблемы. Почему бы не объяснить реальному программисту, что можно использовать идеи?

Sgv2UhHFAAd8OarQ-K3ZmH8xiWn3LnJ7fWNs
Резиновые утки! (из BBC Blue Planet)

(2) Объединение в пару – это отличная среда для отработки командных навыков, которые являются ключевыми для качественной разработки программного обеспечения.

Ранее мы установили, что программное обеспечение – это командный вид спорта. Выведя свою практику кодирования за пределы собственной главы путем объединения, вы естественным образом разовьете навыки работы в команде, которые являются жизненно важными для работы в большой команде разработчиков программного обеспечения.

Кодирование интервью часто может включать разговор с интервьюером через ваш процесс мышления во время кодирования или псевдокодирования. Попрактиковавшись в создании пар, вы сможете четко сформулировать свои мысли по кодированию и дать себе наилучший шанс во время этих парных интервью.

(3) Преимущества парного программирования еще больше для (относительно) новых разработчиков программного обеспечения.

Согласно исследованию, проведенному Лори Уильямсом, парная кодировка работает лучше всего, когда (i) пара работает над сложными задачами и (ii) люди имеют одинаковые уровни знаний программирования (см. исследование парного программирования, собранное Лори Уильямсом).

Как новоиспеченный программист, который прокладывает свой путь к величию, многие задачи, которые вы выполняете, будут естественно сложными, поскольку у вас еще нет такой базы опыта и знаний, которые могли бы облегчить конкретные задачи программирования. Ваша пара, которая также учится кодировать, скорее всего, будет на a похож уровня для вас в различных областях знаний кодирования, даже если один из вас сильнее в определенной области.

Кроме серьезных исследований, вы также можете утешиться тем фактом, что большинство престижных учебных курсов программирования (созданных для того, чтобы за 3 месяца привлечь людей от начинающих программистов к младшим разработчикам) в значительной степени полагаются на парное программирование как способ для программистов перейти от нуля к герой как можно скорее.

Тот факт, что эти интенсивные тренинги по изучению кода так часто используют спаривание, является явным показателем того, что в этом, безусловно, самородок золота для обучения и быстрого обучения. Я сам открыл для себя преимущества использования пары для обучения на тренинге по кодированию, который я посетил, Makers Academy.

Если вы все еще скептически настроены, Я призываю вас попробовать парную кодировку. Я мог бы продолжать перечислять его преимущества, но это бледнеет по сравнению с тем, чтобы попробовать его, увидеть его возможности на практике и в конце концов решить, это прекрасный способ обучения для вас.

nAnnSRuKWqvalT2wunX7RXvKdCK413WfEu6M
Волшебная сила парного программирования

Ладно, я убежден, что стоит попробовать, как мне начать?

Во-первых, найдите свою пару (в идеале человека с подобным уровнем навыков, который также научится кодировать). Это может быть ваш друг, который учится кодировать или кто-то, кого вы встретили во время кодирования.

Идеальным является личное соединение, но удаленное соединение также великолепно и может быть более удобным решением (для этого можно использовать программное обеспечение для показа экрана, например Skype или Mikogo). На рабочем месте часто объединяют старших и младших разработчиков, чтобы младший мог быстро учиться у старшего разработчика.

Знание других разработчиков – это само по себе важный аспект обучения программированию. Вы можете отталкивать мысли от людей, развивать идеи и учиться у людей с разным опытом и сильными сторонами. Поэтому стоит присоединиться к этим сообществам только для того, чтобы познакомиться с другими разработчиками, найти кого-то, с кем можно соединиться, является приятным бонусом.

Если вы новичок в кодировке, я предлагаю два верных пути встречи с другими разработчиками:

(1) Присоединитесь к сообществу кодировщиков, где люди собираются вместе, чтобы кодировать/учиться кодировать. К примеру, в Лондоне вы можете присоединиться к «London Hackspace»

(2) Посещайте события сообщества программистов, особенно касающиеся новых программистов. Хорошим маршрутом является посещение события, проводимого текущим учебным лагерем. Другие программисты, проверяющие учебный лагерь, будут в таком же положении, как и вы.

yVvMnaYuHs2T1n9UljyFFLo9qRbvFNh3yTU6
Пример события для знакомства с другими разработчиками во время учебы

Как только вы найдете потенциальную пару (или несколько!), попробуйте разные методы программирования пар, чтобы найти то, что вам нравится:

Ниже приведены два примера техники парного программирования:

(1) Соединение Pomodoro. Таймер выставляется на 25 минут, где один человек водитель, а другой – навигатор. Каждые 25 минут вы делаете короткий перерыв и меняетсяе ролями. Здесь есть великолепное расширение для хрома.

(2) Пары для пинг-понга. Водитель пишет неудачный тест, а затем передает роль водителя (и клавиатуру) другому лицу. Новый драйвер пишет код, чтобы этот тест прошел, рефакторирует код и записывает неудачный тест, чтобы другое лицо прошло его. (Чтобы понять разработку, основанную на тестировании, прочтите пункт 1 здесь)

8Jo2ABetxaresm19pw8mF3rFi5S5oqa-s7Bp
Источник: книга Джима Шора, 2007 год, «Искусство гибкой разработки

Больше о технике парного программирования смотрите:

В заключение: сбалансирование взгляда на парное программирование

Надеемся, теперь вы почувствовали вдохновение добавить парное программирование как мощный инструмент в свой набор инструментов для обучения. Это действительно очень полезно, и я надеюсь, что теперь у вас достаточно информации, чтобы начать.

Чтобы сбалансировать вышеперечисленное: программирование пар, конечно, не всегда легко. Научиться объяснять и демонстрировать свой процесс кодировки может быть трудным. Работать с другими может быть трудно в целом, а некоторые сценарии могут уменьшить ценность программирования пары (например, если навыки или целые пары не совпадают).

«Трудные вещи нелегкие, но они того стоят»

Моя любовь

Однако, по сути, если вы учитесь кодировать и учитесь работать в команде разработчиков программного обеспечения, я не нашел ничего более полезного, чем часы по часам парного программирования с широким кругом людей с разным опытом и талантами.

Когда дело доходит до этого, большинство вещей в коде (и жизни) сводятся к тому, чтобы хорошо работать с другими. Дополнительный бонус? Сотрудничество с другими вызывает восхищение от движения в направлениях, которых вы, возможно, не ожидаете, строгость обеспечения высококачественного кода из-за разногласий и обсуждений, и, возможно, просто, возможно, это будет просто гораздо веселее!

ageHzQdhBomBAk8ztJvZpAQPQdEmy9NwHQQl
Визуальное представление чистой забавы

Ищете больше секретов кодировки?

Это пятая публикация в серии, посвященная секретным метаобучениям, которые я получил, когда учился кодировать в Академии Makers: подходы, инструменты и образ мышления, чтобы совершить прорывы, которые нужны, чтобы стать крутым программистом. .

Щелкните здесь, чтобы просмотреть мое предыдущее сообщение: 5 способов избавиться от липких, сложных проблем кодирования

Если вам понравилось это сообщение в блоге и вы хотели бы читать больше подобных, нажмите «Подписаться» и дайте мне несколько хлопков, нажав кнопку «Средние хлопки» ниже?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *