github - sofokus blog

Github CV:nä

Olet varmaan kuullut sanottavan, että ”Github on uusi CV.” Vaikka tämä ei ihan pidä paikkaansa, ei se myöskään ole täysin tuulesta temmattua. CV:ssä linkitetty Github-tili on itseasiassa portfolio, eli kokoelma työnäytteitä.

Github-profiilin, tai muun vastaavan kuten Bitbucketin tai Gitlabin, liittäminen CV:hen antaa hakijan demonstroida käytännön osaamistasoaan ja voi näin luoda etulyöntiaseman sellaiseen hakijaan verrattuna, kenellä ei ole esittää työkokemusta tai työnäytteitä.

Tässä muutamia vinkkejä, miten antaa hyvä vaikutus koodi-portfoliolla.

Älä linkitä lainkaan!

Jos ei vielä ole mitään mitä esitellä, älä yritä väkisin. Portfolio ei ole pakollinen osa CV:tä. Huonosta portfoliosta voi olla enempi haittaa kuin hyötyä, jos se antaa hakijasta huolimattoman kuvan.

Github:ssa vähempi on enempi

Kun haastattelija katsoo profiilia, häntä kiinnostavat ne projektit joita hakija pitää eniten häntä edustavampina. Github-tilille kuitenkin kertyy kaikenlaista: keskeneräisiä projekteja, vanhoja koulutöitä, forkkeja, ym. Tiliä kannattaakin siistiä aika ajoin.

Ensin kannattaa poistaa turhat forkit. Yleensä projekti forkataan, koska siihen halutaan tehdä omia muutoksia. Usein nämä muutokset lähetään takaisin alkuperäiseen projektiin pull requestina. Kun muutokset on mergetty, forkin voi hyvin poistaa.

Entä vanhentuneet omat projektit? Kaikkea ei raaski poistaa, mutta projektin voi merkitä arkistoiduksi. Tämä on selkeä signaali, että kehittäjä ei aio jatkaa projektia, tai että se ei edusta hänen nykyistä osaamistasoa.

Entä jos kaiken siistimisen jälkeenkin, profiili on edelleen täynnä sekalaisia projekteja, joista vain yksi tai kaksi on sellaisia, joita haluaisi CV:ssään esitellä? Tässä siihen ratkaisuja:

  1. Käytä Githubin ”Pinned repository” ominaisuutta ja nosta haluamasi projektit profiilin etusivulle. Jos olet osallistunut projektiin, joka sijaitsee jossain muussa Github-profiilissa, voit silti linkittää sen omalle sivullesi tällä tavalla.
  2. Sisällytä CV:hen linkki suoraan projektiin koko profiilin sijaan.

Käytä versiohallintaa oikein

Github, Bitbucket ja Gitlab ovat palveluita Git versiohallintatyökalun tietovarastojen säilömiseen ja esittämiseen. Kannattaa siis jo heti alkuun opetella Gitin perusteet, sillä on sanomattakin selvää, että ammattilaisen pitäisi osata käyttää työkalujaan.

Erityisesti kannattaa pitää mielessä nämä helposti vältettävät, mutta hyvin silmiinpistävät virheet:

  • Commitoitu jotain ylimmäräistä: väliaikaiset tiedostot, objektitiedostot tai ladattavat riippuvuudet (.o, .class, __pycache__, node_modules, jne.) eivät kuulu repoon, tiettyja harvoja poikkeuksia lukuunottamatta.
  • Epäselvät commit viestit: Commit viestin tarkoitus on lyhyesti ja ytimekkäästi kertoa mistä muutoksessa on kyse. Hyvien commit viestien kirjoittaminen on erittäin tärkeä taito, kun työskennellään tiimeissä.
  • Selkeät commitit: Liittyen edelliseen, yhden commitin pitäisi olla selkeä kokonaisuus. Jos commitille on vaikea keksiä kuvaavaa otsikkoa, se todennäköisesti sisältää liikaa toisiinsa kuulumattomia muutoksia. Tämä on toinen tärkeä taito käytännön projekteissa, sillä se helpottaa bugien etsintää ja korjausta.

Selkeä projektirakenne

Yleensä haastattelija ei tee projektille mitään syvällistä koodikatselmusta, vaan pikaisesti selaa sen läpi hakien yleiskuvaa. Tämän vuoksi ensivaikutelma onkin se tärkein osa. Selkeä ja standardin mukainen projektirakenne on omiaan antamaan hyvän vaikutelman.

README tiedosto:

Mikäli projektijuuressa on README tiedosto, Github näyttää sen suoraan projektin etusivulla. Readmessa tulee kertoa mistä projektissa on kyse ja mahdollisesti asennus- tai muut käyttöönotto-ohjeet. Myös näytönkaappauksia voi sisällyttää.​

Lisenssi:

Pistokoe: Jos Github repossa ei ole lainkaan lisenssiä, tarkoittaako se, että koodi on vapaasti käytettävissä? Jo pelkkä lisenssin läsnäolo osoittaa, että tekijä tietää ainakin perusteet ohjelmistolisensoinnista. Vapaa koodi on nykyään kaupallisenkin ohjelmistokehityksen kulmakivi, joten on äärimmäisen tärkeää ymmärtää mitä koodia saa käyttää missäkin tilanteessa.

Standardin mukainen projektirakenne:

Eri kielillä ja sovelluskehyksillä on yleensä projekteille standardi kansiorakenne. Tämän noudattaminen auttaa muita pääsemään nopeasti projektiin sisälle.

Siisti koodi:

Luokkien, funktioiden ja muuttujien nimeäminen, sisennys, rivitys. Nämä kaikki vaikuttavat koodin luettavuuteen ja pistävät ensimmäisenä silmään kun koodia selaa. Noudata kielen ja/tai sovelluskehyksen tyyliopasta.

Koodikommentit:

Puuttuvatko kommentit kokonaan? Ovatko kommentit ns. nollakommentteja, jotka vain toistavat sanallisesti mitä koodi tekee? Hyvien kommenttien kirjoittaminen on ihan oma taitonsa.

Github CV:nä: Yhteenveto

Github-tili ei ole CV vaan portfolio, joka mahdollisesti täydentää CV:tä. Sitä ei automaattisesti kannata linkittää CV:hen, jos ei ole mitään näytettävää.​

Haastattelija ei käy työnäytetteitä läpi täikammalla, vaan hakee yleiskuvaa. Tehokkain tapa antaa hyvä kuva on tehdä profiilista selkeä ja edustava valikoimalla näytille vain työt, jotka parhaiten kuvaavat ammattitaitoasi. Näihin projekteihin kannattaa myös panostaa hiukan enemmän ja olla erityisen tarkka hyvien käytäntöjen noudattamisessa.

Taiteilijalla on ateljeessaan pinokaupalla suttua, mutta portfolioonsa hän valitsee vain parhaat työnsä.

Calle Laakkonen

Lue lisää aiheesta