Оффтоп Digital Skynet
381

Хочешь стать разработчиком? Попробуй парное программирование

В закладки

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

А что, если в действительности это совсем не так? Программисты отнюдь не отшельники, а все стереотипы о них далеки от реальности? Это я к чему… Вы слышали что-нибудь об экстремальном программировании? А о парном? С помощью парного программирования вы можете быстрее научиться писать код, будете готовы к реальному миру разработки ПО, да и сам процесс разработки будет для вас более увлекательным.

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

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

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

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

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

Хорошо, я заинтригован…

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

Википедия нам говорит:

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

Ладно, круто. Но разве это удобно?

Вы можете скептически относиться к парному программированию (я в начале тоже был настроен скептически). Ваши первые мысли могут быть примерно следующими “Что он несёт? Это же чертовски неудобно!”. А так ли это?

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

Три основных преимущества парного программирования для джуниоров:

1. Парное программирование - это фантастический способ учиться у опытного разработчика.

Ни в какой другой обстановке вы не будете находиться настолько на одной волне. Объясню. Вы сталкиваетесь с одной и той же проблемой и пытаетесь решить ее ВМЕСТЕ. Обсуждаете возможные пути решения, обмениваетесь идеями. Вы будете смеяться, возможно даже плакать, но в конце концов поймете, что же такое программирование и получите реальный опыт.

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

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

Ранее я говорил, что программирование - это преимущественно командная работа. Когда вы начинаете писать код с партнером, вы развиваете навыки работы в команде. Вы учитесь формулировать свои мысли, правильно задавать вопросы, слушать идеи, которые могут отличаться от ваших, комментировать код другого человека и приходить к компромиссу.

3. Не работайте с джуниорами.

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

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

Допустим, я вас убедил. Так с чего же следует начать?

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

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

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

Слышали про нетворкинг? Знакомство с другими разработчиками важный аспект обучения и карьерного роста! Вы можете делиться идеями, учиться, вдохновляться. Поэтому целесообразно вступать в профессиональные сообщества. Можно вступать в сообщества Вконтакте, на хабре, участвовать в хакатонах, конференциях. Нужно просто поискать.

Есть множество методов парного программирования. Расскажу о двух самых популярных.

  • Метод “Помидор”. Таймер устанавливается на 25 минут, в течение этого времени “ведущий” программист пишет код, а “штурман” сосредоточен на картине в целом и непрерывно просматривает код. Каждые 25 минут делается пятиминутный перерыв и программисты меняются местами. Перечень Pomodoro-расширений для Google Chrome можно посмотреть здесь.
  • Пинг-понг программирование. Этот метод связан с разработкой через тестирование. Суть в том, что один программист пишет неудачный тест, затем передает бразды правления напарнику. Второй программист пишет код, чтобы пройти этот тест, а затем пишет другой тест и передает эстафету первому программисту. Это похоже на игру в пинг-понг, отсюда и пошло название.

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

Перевод статьи Want to be a developer? You should probably be Pair Programming от Digital Skynet.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Digital Skynet", "author_type": "self", "tags": [], "comments": 4, "likes": -2, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 44001, "is_wide": false, "is_ugc": true, "date": "Mon, 20 Aug 2018 11:54:46 +0300" }
{ "id": 44001, "author_id": 187179, "diff_limit": 1000, "urls": {"diff":"\/comments\/44001\/get","add":"\/comments\/44001\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/44001"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

4 комментария 4 комм.

Популярные

По порядку

8

Не работайте с джуниорами.

Тупик

Ответить
1

Просто в голос))

Ответить
1

Картинка - огонь, главное Милонову не показывать.

Ответить
0

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

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Компания отказалась от email
в пользу общения при помощи мемов
Подписаться на push-уведомления
{ "page_type": "default" }