Haluatko olla kehittäjä? Sinun pitäisi todennäköisesti olla pariohjelmointi.

Kun ihmiset ajattelevat ohjelmistokehitystä, he ajattelevat ymmärtävänsä yksinäisen suden ohjelmoijan, joka suljetaan maailmasta ja ratkaisee monimutkaisia ​​ongelmia.

Entä jos sanoisin, että ohjelmistokehitys ei tuskin koskaan toimi todellisessa maailmassa ... ja että pariohjelmointi voisi olla vastaus koodaamisen oppimiseen nopeammin, valmistautua ohjelmistokehityksen todelliseen maailmaan ja ehkä pitää hauskempaa käsitellä asiaa?

Kuulostaa hyvältä. Joten miten ohjelmistokehittäjät todella toimivat?

Mikä voi olla tarkempaa, on joukko ohjelmistokehittäjiä, jotka sulkevat itsensä joskus maailmasta, yhdistävät itsensä maailmaan muina aikoina ja ratkaisevat edelleen monimutkaisia ​​ongelmia (mutta yhdessä ).

Yksinäinen susi -skenaario voi olla totta tietyissä tilanteissa, kuten sivuprojektin loppuun saattaminen tai freelance-työ. Useimmiten minkä tahansa merkityksellisen mittakaavan tuotteiden ohjelmistokehityksen tekee kuitenkin täysimittainen ohjelmistotiimi, todennäköisesti sekoittaen erilaisia ​​kehityksen vahvuuksia (katso alla oleva kuva DSDM Agile Framework -sovelluksesta). Tämä ohjelmistotiimi liitetään laajempaan liike- ja kaupalliseen tiimiin (emme voi unohtaa loppukäyttäjäämme :))

Mitä tämä tarkoittaa meille ohjelmistokehittäjille, jotka oppivat ammattia? Se tarkoittaa, että vaikka koodaamisen oppiminen alkaa usein yksinäisenä susipelinä, haluamme sen kasvavan (mahdollisimman pian) ohjelmistokehityksen joukkuelajiksi, joka on yleistä useimmissa organisaatioissa.

Itse koodaavan sisällön lisäksi on välttämätöntä rakentaa yhteistyö- ja ryhmätyön taitoja, jotka auttavat sinua menestymään ohjelmistokehitystiimissä. Muiden ulkoinen tuki saada sinut venymään on myös upea (ehkä paras) tapa oppia, vaikka luonnollinen houkutus on taistella yksin hankalien koodausongelmien kautta.

Tiimin löytäminen oppimaan ja kasvamaan ei välttämättä ole käytännöllinen ratkaisu. Yhden toisen henkilön löytäminen pariksi ohjelman kanssa on paljon realistisempi lähtökohta.

Ok, olen kiinnostunut ...

Aloittelijoille: mitä on pariohjelmointi?

Onneksi Wikipedia voi auttaa meitä täällä:

”Pariohjelmointi on ketterä ohjelmistokehitystekniikka, jossa kaksi ohjelmoijaa työskentelee yhdessä yhdessä työasemassa. Yksi, kuljettaja , kirjoittaa koodin, kun taas toinen, tarkkailija tai navigaattori , tarkastelee koodiriviä kirjoittaessaan. Kaksi ohjelmoijaa vaihtaa roolia usein. "

Kuinka tämä muuttaa koodiin lähestyvien kahden ihmisen ajattelutapaa?

"Tarkastelun aikana tarkkailija pohtii myös työn" strategista "suuntaa ja esitti parannusehdotuksia ja todennäköisesti käsiteltäviä tulevia ongelmia. Tämä vapauttaa kuljettajan keskittymään kaiken huomionsa nykyisen tehtävän suorittamisen "taktisiin" näkökohtiin käyttämällä tarkkailijaa turvaverkkona ja oppaana. "

Ok viileä. Mutta eikö tämä pariohjelmointi ole erittäin epämukavaa?

Saatat olla skeptinen pariohjelmoinnissa - olin itse epäilevä. Ensimmäiset ajatuksesi saattavat olla, että idea kuulostaa epämiellyttävältä. Onko se näin?

Voit lievittää kohtuullista skeptisyyttäsi puhumalla parin ohjelmoinnin eduista, kiinnitettynä erityistä huomiota niihin, jotka ovat lähellä koodausmatkansa alkua.

Kolme pariohjelmoinnin etua, räätälöity jollekin, joka oppii koodaamaan:

(1) Parin ohjelmointi on loistava tapa oppia toiselta kooderilta.

Missään muussa ympäristössä et ole koodauksen haasteessa samassa pisteessä, kamppailet täsmälleen saman ongelman läpi ja yrität ratkaista sen yhdessä. Naurat, et itkeä, ja te lopulta oppia .

Tärkeää on, että olet hankkinut erilaisia ​​tietopohjia, kun olet oppinut koodaamaan, ja voit hakea uutta sisältöä paristasi. Vielä tärkeämpää on, että hyvä ohjelmointi on viime kädessä parhaan ongelmanratkaisuprosessin soveltamista, ei vain paljon sisältötietoa (katso tämä viesti). Parin ohjelmointi antaa sinulle mahdollisuuden oppia toisen kehittäjän prosessista sekä antaa sinulle mahdollisuuden saada palautetta omasta koodausprosessistasi (lisää palautteesta alla).

Bonusetu siitä, että sinulla on tämä näkökulma koodausprosessiisi ja sinun on selitettävä se parillesi : Kumipito on loistava tapa virheenkorjaukseen. Lyhyesti sanottuna siihen kuuluu sen selittäminen, mitä yrität ratkaista 'kumiankalle' tai muulle elottomalle esineelle, jotta saat näkökulman asiaan. Miksi et selittäisi tosielämän kooderille, että voit palauttaa ideoita sen sijaan?

(2) Yhdistäminen on loistava ympäristö hyvien ohjelmistokehityksen kannalta keskeisten tiimitaitojen harjoittamiseen.

Olemme aiemmin todenneet, että ohjelmisto on joukkuelaji. Ottamalla koodauskäytännöt oman pään ulkopuolelle pariksi muodostamalla luonnollisesti pehmeät tiimitaidot, jotka ovat niin tärkeitä työskennellessä suuremmassa ohjelmistokehitystiimissä.

Haastatteluiden koodaaminen voi usein liittyä haastattelijan puhumiseen ajatusprosessisi aikana koodaamalla tai näennäiskoodilla. Pariliitoksen avulla pystyt selkeästi ilmaisemaan koodausajatuksesi ja antamaan itsellesi parhaat mahdollisuudet näissä parityylisissä haastatteluissa.

(3) Pariohjelmoinnin edut ovat vielä suurempia (suhteellisen) uusille ohjelmistokehittäjille.

Laurie Williamsin tekemän tutkimuksen mukaan parikoodaus toimii parhaiten, kun (i) pari työskentelee monimutkaisissa tehtävissä ja (ii) yksilöt ovat samalla tasolla ohjelmointitiedoilla (katso Laurie Williamsin kokoama pariohjelmointitutkimus).

Äskettäin lyötynä kooderina, joka venyttää tietäsi suuruuteen, monet tekemistäsi tehtävistä ovat luonnollisesti monimutkaisia, koska sinulla ei vielä ole kokemuspohjaa ja tietoa, joka voi tehdä tietyistä koodaustehtävistä helppoja. Parisi, joka myös oppii koodaamaan, on todennäköisemmin samalla tasolla kuin sinä useilla koodauksen osa-alueilla, vaikka joku teistä olisi vahvempi tietyllä alueella.

Vakavan tutkimuksen lisäksi voit myös lohduttaa sitä, että suurin osa arvostetuista koodaavista bootcampeista (jotka on suunniteltu viemään ihmisiä aloittelijoiden koodereista nuorempiin kehittäjiin noin 3 kuukauden aikana) luottavat voimakkaasti pariohjelmointiin, jotta ohjelmoijat voivat siirtyä nollasta pisteeseen sankari mahdollisimman nopeasti.

Se, että nämä intensiiviset koodinopetusbootit käyttävät pariliitosta niin paljon, on selkeä osoitus siitä, että sen käyttämisessä oppimiseen ja oppimiseen on ehdottomasti kulta. Itse löysin loiston pariliitoksen käytöstä oppimiseen koodaavassa käynnistyskampuksella, johon osallistuin, Makers Academy.

Jos olet edelleen epäilevä, haastan sinut kokeilemaan parikoodausta . Voisin luetella sen etuja, mutta tämä haalistuu verrattuna kokeilemiseen, sen voimien näkemiseen käytännössä ja lopulta päättämiseen, onko se hieno tapa oppia sinulle.

OK, olen vakuuttunut siitä, että annan sen mennä, miten aloitan?

Etsi ensin parisi (mieluiten henkilö, jolla on samanlainen taitotaso ja joka oppii myös koodaamaan). Tämä voi olla tuttava ystävä, joka oppii koodaamista, tai joku, jonka tapaat koodausmatkallasi.

Henkilökohtainen pariliitos on ihanteellinen, mutta etäkäyttöinen pariliitos on myös hieno ja voi olla mukavampi ratkaisu (johon voit käyttää näytönjako-ohjelmistoja, kuten Skype tai Mikogo). Työpaikalla pariliitos tehdään usein vanhempien ja nuorempien kehittäjien välillä, jotta nuorempi voi oppia nopeasti vanhemmalta kehittäjältä.

Jos sinulla ei tällä hetkellä ole ilmeistä henkilöä, jonka kanssa voit muodostaa parin, on aika aloittaa kehittäjäyhteisön rakentaminen.

Muiden kehittäjien tunteminen on niin tärkeä osa koodaamisen oppimista sinänsä. Voit palauttaa ajatuksia ihmisistä, kehittää ideoita yhdessä ja oppia ihmisiltä, ​​joilla on erilaisia ​​taustoja ja vahvuuksia. Tämän vuoksi on kannattavaa jatkaa liittymistä näihin yhteisöihin vain tavatakseen muita kehittäjiä. Pariskunnan löytäminen on maukas bonus.

Jos olet uusi kooderi, suosittelen kahta varmaa reittiä tavata muita kehittäjiä:

(1) Liity koodaavaan yhteisöön, jossa ihmiset kokoontuvat koodaamaan / oppimaan koodaamaan. Esimerkiksi Lontoossa voit liittyä London Hackspaceen

(2) Osallistu yhteisön koodaustapahtumiin, erityisesti uusille koodereille. Hyvä reitti on osallistuminen nykyisen käynnistysleirin pitämään tapahtumaan. Muut kooderit, jotka tarkistavat bootcampin, ovat samanlaisessa asemassa kuin sinä.

Kun löydät potentiaalisen parin (tai useita!), Kokeile erilaisia ​​pariohjelmointitekniikoita löytääksesi haluamasi:

Alla on kaksi esimerkkiä pariohjelmointitekniikoista:

(1) Pomodoro-pariliitos. Ajastin asetetaan 25 minuutiksi, jolloin yksi henkilö on kuljettaja ja toinen navigaattori. 25 minuutin välein sinulla on lyhyt tauko ja vaihdat rooleja. Tähän on suuri kromi laajennus.

(2) Ping-pong-pariliitos. Kuljettaja kirjoittaa epäonnistuneen testin ja siirtää sitten kuljettajaroolin (ja näppäimistön) toiselle henkilölle. Uusi kuljettaja kirjoittaa koodin, jotta testi läpäisee, korjaa koodin ja kirjoittaa epäonnistuneen testin toisen henkilön ajamiseksi läpi. (Jotta ymmärtäisit testiohjatun kehityksen, lue kohta 1 täältä)

Katso lisää pariohjelmointitekniikoita katsomalla:

  • Parin ohjelmointitekniikat
  • Parien etäohjelmointi

Lopuksi: tasapainottamalla näkymä pariohjelmoinnissa

Toivottavasti tunnet innoituksen lisätä pariohjelmointi tehokkaana työkaluna oppimistyökalupakkiisi. Se on todella hyödyllistä, ja toivon, että sinulla on nyt tarpeeksi tietoa aloittaaksesi.

Edellä olevan tasapainottamiseksi: pariohjelmointi ei tietenkään ole aina helppoa. Oppiminen selittämään ja ulkoistamaan koodausprosessisi voi olla vaikeaa. Yhteistyö muiden kanssa voi olla vaikeaa yleensä, ja tietyt skenaariot voivat vähentää arvoparien ohjelmointia (esimerkiksi jos parin taidot tai tavoitteet eivät täsmää).

"Vaikeat asiat eivät ole helppoja, mutta ne ovat sen arvoista", Mia rakastaa

Pohjimmiltaan, jos opit koodaamaan ja opit työskentelemään ohjelmistokehitystiimissä, en ole löytänyt mitään hyödyllistä kuin tuntikausien pariohjelmointi monenlaisten ihmisten kanssa, joilla on erilainen tausta ja kykyjä.

Kun se tulee siihen, suurin osa koodin (ja elämän) asioista tulee toimimaan hyvin muiden kanssa. Lisätty bonus? Yhteistyössä muiden kanssa on innostusta suunnata suuntiin, joita et ehkä odota, tiukkuus varmistaa korkealaatuinen koodi erimielisyyksien ja keskustelujen avulla, ja ehkä, vain ehkä, se on yksinkertaisesti paljon hauskempaa!

Etsitkö lisää koodauksen salaisuuksia?

Tämä on viides viesti sarjassa, joka keskittyy salaiseen meta-oppimiseen, jonka olen oppinut koodaamaan Makers Academy -opistossa: lähestymistavat, työkalut ja ajattelutavat läpimurtojen tekemiseksi sinun on oltava potkukooderi .

Napsauta tästä saadaksesi edellisen viestini: 5 tapaa irrottaa itsesi tahmeista, hankalista koodausongelmista

Jos pidit tästä blogiviestistä ja haluat lukea lisää vastaavia, napsauta Seuraa ja anna minulle muutama taputus napsauttamalla alla olevaa Medium claps -painiketta?