Fejlesztő akarsz lenni? Valószínűleg a Pair Programming-nak kell lennie.

Amikor az emberek a szoftverfejlesztésre gondolnak, érthető módon egy magányos farkas-programozóra gondolnak, amely elzárkózott a világtól, és összetett problémákat oldott meg.

Mi lenne, ha azt mondanám, hogy a szoftverfejlesztés a valódi világban aligha működik valaha ... és ez a páros programozás lehet a válasza arra, hogy gyorsabban megtanuljon kódolni, felkészüljön a szoftverfejlesztés valós világára, és talán jobban szórakozzon a folyamat?

Jól hangzik. Tehát hogyan működnek a szoftverfejlesztők?

Ami pontosabb lehet: egy szoftverfejlesztő csapat, amely néha elzárkózik a világtól, máskor összekapcsolja magát a világgal, és még mindig megoldja az összetett problémákat (de együtt ).

A magányos farkas forgatókönyv bizonyos helyzetekben igaz lehet, például egy mellékprojekt befejezésében vagy szabadúszó munkában. Gyakran előfordul azonban, hogy bármilyen értelmes méretű termék szoftverének fejlesztését egy teljes értékű szoftvercsapat végzi, valószínűleg különböző fejlesztési erősségek keverékével (lásd a DSDM Agile Framework alábbi képét). Ez a szoftvercsapat szélesebb körű üzleti és kereskedelmi csapathoz csatlakozik (nem feledkezhetünk meg a végfelhasználónkról :))

Mit jelent ez nekünk a szakmát tanuló szoftverfejlesztőknek? Ez azt jelenti, hogy bár a kódolás megtanulása gyakran magányos farkasjátékként kezdődik, azt szeretnénk, hogy (a lehető leghamarabb) a legtöbb szervezetben elterjedt szoftverfejlesztés csapatsportjává növekedjen.

Magán a kódoló tartalom mellett elengedhetetlen az együttműködés és a csapatmunka képességeinek kiépítése, amelyek segítenek a szoftverfejlesztő csapatban való boldogulásban. Ha másoktól külső támogatást nyújt a nyújtáshoz, az is fantasztikus (talán a legjobb) módszer a tanuláshoz, még akkor is, ha a természetes kísértés az, hogy egyedül trükkös kódolási problémákon keresztül harcolunk.

Talán nem praktikus megoldás találni egy csapatot, akivel tanulni és fejlődni lehet. Sokkal reálisabb kiindulópont, ha egy másik embert találunk párosítani a programot.

Ok, izgatott vagyok ...

Az avatatlanok számára: mi a páros programozás?

Szerencsére a Wikipedia itt segíthet nekünk:

„A páros programozás egy mozgékony szoftverfejlesztési technika, amelyben két programozó dolgozik együtt egy munkaállomáson. Az egyik, az illesztőprogram , írja a kódot, míg a másik, a megfigyelő vagy a navigátor , áttekinti az egyes kódsorokat , amikor beírják őket. A két programozó gyakran vált szerepet. "

Hogyan változtatja meg ez a kódhoz közeledő két ember gondolkodásmódját?

„Az áttekintés során a megfigyelő figyelembe veszi a munka„ stratégiai ”irányát is, fejlesztési ötletekkel és várhatóan kezelendő jövőbeli problémákkal áll elő. Ez felszabadítja a vezetőt, hogy minden figyelmét az aktuális feladat elvégzésének „taktikai” szempontjaira összpontosítsa, a megfigyelőt biztonsági hálóként és útmutatóként használja. ”

Rendben. De nem lesz ez a páros programozás nagyon kényelmetlen?

Lehet, hogy szkeptikus vagy a páros programozással kapcsolatban - én magam is szkeptikus voltam. Első gondolata az lehet, hogy az ötlet kényelmetlenül hangzik. Ilyen lesz?

Ésszerű szkepticizmusának csillapítása érdekében beszéljünk a páros programozás néhány előnyéről, különös tekintettel azokra, akik a kódolási útjuk elején vannak.

A páros programozás három alapvető előnye, olyan személyre szabva, aki megtanul kódolni:

(1) A páros programozás fantasztikus módja a tanulásnak egy másik kódolótól.

Semmilyen más környezetben nem egy kódolási kihívás ugyanazon pontján áll, pontosan ugyanazon a problémán küzd, és megpróbálja együtt megoldani. Nevetni fog, sírni fog, és végül megtanul .

Fontos, hogy különböző tudásbázisokat halmoztak fel, amint megtanulták a kódolást, és új tartalmat gyűjthettek a párostól. Ennél is fontosabb, hogy a jó programozás végső soron a legjobb problémamegoldási folyamat alkalmazását jelenti, és ne csak sok tartalmi ismerettel rendelkezzen (lásd ezt a bejegyzést). A páros programozás lehetővé teszi, hogy tanuljon egy másik fejlesztő folyamatától, valamint lehetőséget adjon arra, hogy visszajelzést kapjon saját kódolási folyamatairól (a visszajelzésről bővebben alább).

Bónusz előnye annak, ha ezt a perspektívát látja a kódolási folyamatával, és meg kell magyaráznia a párjának: A gumikacsintás fantasztikus módszer a kód hibakeresésére. Dióhéjban magában foglalja annak elmagyarázatát, hogy mit próbál megoldani egy „gumikacsa” vagy más élettelen tárgy számára, hogy perspektívát kapjon a kérdésről. Miért nem magyarázza el egy valós kódolónak, hogy helyette visszaverheti az ötleteket?

(2) A párosítás remek környezet a jó szoftverfejlesztés szempontjából kulcsfontosságú csapat képességek gyakorlásához.

Korábban megállapítottuk, hogy a szoftver csapatsport. Ha a kódolási gyakorlatot a saját fején kívülre viszi párosítással, akkor természetesen felépíti azokat a lágy csapatkészségeket, amelyek annyira fontosak egy nagyobb szoftverfejlesztő csapatban való munkához.

Az interjúk kódolása gyakran magában foglalja az interjúztató beszélgetését a gondolkodási folyamat során, amikor kódol vagy álkódot készít. A párosítási gyakorlattal egyértelműen meg tudja fogalmazni kódolási gondolatait, és a lehető legjobb esélyt adhatja magának ezeken a páros stílusú interjúkon.

(3) A páros programozás előnyei még nagyobbak (viszonylag) új szoftverfejlesztők számára.

Laurie Williams által lefolytatott kutatás alátámasztja, hogy a párkódolás akkor működik a legjobban, ha (i) a pár összetett feladatokon dolgozik, és (ii) az egyének a programozási ismeretek hasonló szintjén vannak (lásd a Laurie Williams által összeállított páros programozási kutatást).

A nagyszerűség felé vezető újonnan vert kódolóként sok elvégzett feladat természetesen összetett lesz, mert még nincs meg az a tapasztalat- és tudásbázis, amely megkönnyítheti a konkrét kódolási feladatokat. Az a párod, amely szintén kódolni tanul, nagyobb valószínűséggel lesz veled hasonló szinten a különböző kódolási ismeretek terén, még akkor is, ha valamelyikőtök egy adott területen erősebb.

A kemény kutatáson túl megnyugodhat abból is, hogy a rangos kódoló bootcampok többsége (amelyet úgy terveztek, hogy az embereket kezdő kódolóktól kb. 3 hónap alatt kezdje el fiatal fejlesztőkig) nagyban támaszkodik a páros programozásra, hogy a programozók nulláról hős a lehető leggyorsabban.

Az a tény, hogy ezek az intenzív kódtanító bootcampok annyira használják a párosítást, egyértelműen jelzi, hogy a gyors tanuláshoz és tanuláshoz mindenképpen van egy aranyrög. Magam is felfedeztem a párosítás tanulásának dicsőségét az általam látogatott kódoló bootcamp-ban, a Makers Academy-n.

Ha továbbra is szkeptikus vagy, megkérem, próbáld ki a párkódolást . Folytathatnám az előnyeinek felsorolását, de ez halványabb lesz ahhoz képest, hogy kipróbálnám, meglátnám az erejét a gyakorlatban, és végül eldönteném, hogy ez egy nagyszerű mód-e a tanulásra az Ön számára.

Rendben, meg vagyok győződve arról, hogy engedek neki, hogyan kezdjem?

Először is keresse meg a párját (ideális esetben egy olyan ember, aki hasonló készségű, és megtanul kódolni is). Ez lehet egy ismerős barátod, aki megtanul kódolni, vagy valaki, akivel találkozol a kódolási út során.

A személyes párosítás ideális, de a távoli párosítás is kiváló, és kényelmesebb megoldás lehet (ehhez használhat olyan képernyőmegosztó szoftvereket, mint a Skype vagy a Mikogo). A munkahelyen gyakran párosítást végeznek az idősebb és a junior fejlesztők között, hogy a junior gyorsan tanulhasson az idősebb fejlesztőktől.

Ha jelenleg nincs olyan ismerősöd, akivel párosíthatsz, itt az ideje elkezdeni a fejlesztői közösség felépítését.

Más fejlesztők ismerete olyan fontos szempont a kódolás megtanulásában önmagában. Visszapattanhat az emberekről a gondolatokra, együtt dolgozhat ki ötleteket, és tanulhat különböző háttérrel és erősségekkel rendelkező emberektől. Ezért érdemes folytatni a csatlakozást ezekhez a közösségekhez, csak azért, hogy más fejlesztőkkel találkozzunk, ízletes bónusz, ha valakit párosítunk.

Ha új kódoló vagy, két biztos utat ajánlok más fejlesztőkkel való találkozáshoz:

(1) Csatlakozzon egy kódoló közösséghez, ahol az emberek összeállnak kódolni / megtanulni kódolni. Például Londonban csatlakozhat a "London Hackspace" -hez

(2) Vegyen részt a közösségi események kódolásában, különösen az új kódolók számára. Jó útvonal egy aktuális bootcamp által vezetett eseményen való részvétel. A bootcampot ellenőrző más kódolók hasonló helyzetbe kerülnek, mint te.

Miután megtalálta a lehetséges párokat (vagy többeket!), Próbáljon ki különböző páros programozási technikákat, hogy megtaláljon egy tetszését:

Az alábbiakban két példa a páros programozási technikákra:

(1) Pomodoro párosítás. Az időzítő 25 percre van beállítva, ahol az egyik személy a sofőr, a másik a navigátor. 25 percenként rövid szünetet tart, és szerepet cserél. Ehhez itt van egy nagyszerű króm kiterjesztés.

(2) Ping-pong párosítás. A vezető ír egy sikertelen tesztet, majd átadja a vezető szerepét (és a billentyűzetet) a másiknak. Az új illesztőprogram megírja a kódot, hogy a teszt sikeres legyen, átalakítja a kódot, és megír egy sikertelen tesztet, hogy a másik személy áthajthasson. (A tesztvezérelt fejlesztés megértéséhez olvassa el az 1. pontot itt)

További páros programozási technikákért nézze meg:

  • Páros programozási technikák
  • Távoli páros programozás

Végül: a nézet kiegyensúlyozása páros programozással

Remélhetőleg most inspirálta magát, hogy a páros programozást hatékony eszközként adja hozzá a tanulási eszköztárához. Ez valóban nagyon hasznos, és remélem, hogy most már elegendő információval rendelkezik az induláshoz.

A fentiek kiegyensúlyozása érdekében: a párok programozása természetesen nem mindig egyszerű. A kódolási folyamat megmagyarázásának és külsővé tételének megtanulása nehéz lehet. A másokkal való munka általában nehéz lehet, és bizonyos forgatókönyvek csökkenthetik az értékpár programozását (például ha a pár képességei vagy céljai nem egyeznek meg).

"A nehéz dolgok nem könnyűek, de megérik" Mia szereti

Alapvetően, ha azonban kódolást tanulsz és tanulsz dolgozni egy szoftverfejlesztő csapatban, nem találtam semmi hasznosabbat, mint órákon át tartó páros programozás, sokféle háttérrel és tehetséggel rendelkező emberek széles körével.

Ha rátalálunk, a kódban (és az életben) szereplő dolgok többsége jól működik együtt másokkal. A hozzáadott bónusz? A másokkal való együttműködés izgalommal jár az olyan irányok felé, amelyekre Ön talán nem is számíthat, a szigorú minőségi kód biztosítása nézeteltérések és vita útján, és talán, csak talán, egyszerűen sokkal szórakoztatóbb lesz!

További kódolási titkokat keres?

Ez az sorozat ötödik bejegyzése, amely a titkos meta-tanulásokra összpontosít, amelyeket a Makers Academy-nél megtanultam kódolni: a megközelítéseket, az eszközöket és a gondolkodásmódot, hogy áttörést érhessünk el, hogy rúgós kódolónak kell lennetek .

Kattintson ide az előző hozzászólásomhoz: 5 módja annak, hogy eltávolítsa magát a ragadós, trükkös kódolási problémáktól

Ha tetszett ez a blogbejegyzés, és még több hasonlót szeretnél olvasni, akkor kérlek kattints a 'Követés' gombra, és adj nekem néhány tapsot az alábbi Közepes tapsok gombra kattintva?