Git tutuksi – kieltenopelle vertauskuvat tarpeen

Oppimispäiväkirjaan on taas jäsennettävää – mysteeri Githubin, Gitin ja Git pagesin kanssa alkaa olla ratkennut! Aloin muuten scooppailemaan ohjelmointiin liittyviä linkkejä ja vinkkejä.

Olen huomannut, että vertauskuvat ja konkreettiset esimerkit ovat todella tarpeellisia, kun kieltenopen taustalla lähtee tutustumaan koodauksen kiemuroihin. Tarvittavien toistojen määrä on myös yllättänyt – tuntuu hämmentävältä, ettei ymmärrä jotakin hetki, kun on tottunut yleensä jäsentämään laajojakin kokonaisuuksia käden käänteessä. Kiitos kärsivällisyydestä minua neuvoneille! :)

Termejä tutuksi

Ville selitti termejä minulle, toivottavasti pikkuhiljaa kokonaisuus jäsentyy ja puhun oikeilla termeillä oikeista asioista! :)

  • ohjelmointi ja koodaaminen on sama asia
  • HTML on merkintäkieli ja CSS taas tyyliohje (eivät siis ohjelmointia vaan nettisivuilla käytettyjä tekniikoita)
  •  ohjelmoinnissa käsketään konetta: ”tee asia X”, esimerkiksi ”tulosta luvut 1-10”
  • Javascript on ohjelmointikieli (sillä saadaan esim toiminnallisuuksia nettisivuille)
  • Muita ohjelmointikieliä ovat esimerkiksi Python, Java, PHP, Javascript, Ruby, C, C++

Markdown ja textile 

Olen päässyt harjoittelemaan oppimaani käyttäen Git pagesiä. Alkeelliset HTML ja CSS taitoni ovat siis olleet jo hyödyksi! Lisäksi siinä sivussa olen oppinut, että on olemassa vähän strukturoidumpaa tekstiä ”plain text”, kuten Markdown ja Textile. Github ymmärtää markdownia ja kääntää sen taustalla automaattisesti HTML:ksi, jota taasen selaimet osaavat lukea ja tulkita. Jännää! Mielenkiintoista on näin jälkikäteen myös huomata, että töissä yhteen juttuun pyynnöstä käyttämäni ”kummalliset merkinnät” johtuivat siis juurikin tästä markdown-html-yhteydestä. Kaikelle on selitys! Tässä harjoitteluni tulos, tehty Githubiin kuuluvalla Github pagesilla http://annavonzansen.github.io/

Meneekö yli hilseen?

Ei haittaa, niin ajoittain mullakin! Perustin kysymysvihkon, johon laitan ylös epäselviä tai myöhemmin prosessoitavia asioita. Tuntuu että niin moni asia on kysymysmerkkiä aloittelijalle… Ja kun ei ole pohjaa, jonka päälle tietoa rakentaa, tulee moni kysymys esille ”epäloogisessa” järjestyksessä. Tässä kuitenkin pari aiempaa oppimispäiväkirjaa, aloita tästä ja jatka täältä niin pääset kärryille!

Annanvihko

Mikä ihmeen Git?

Olen tähän asti työkennellyt vain webbipohjaisesti Githubia käyttäen. Seuraavaksi on luvassa Gitin asentaminen koneelle ja ihmettely jatkuu. :) Tässä ohjeet asentamiseen ja tässä selitettynä, mistä on kyse.

Ensinnäkin on olemassa Github, Git ja Github pages. Kysyin niiden eroja ja tässä saamani vastaukset:

  • ”Git” on sovellus, jota yleensä käytetään omalla koneella (vrt. word tai excel), ja sillä hallinnoidaan omalla koneella olevaa dataa, (oman valinnan mukaan voidaan myös synkata tietoa muualle/muualta)
  • Git on versionhallintatyökalu, jonka avulla siirrellään paikasta toiseen dataa
  • Git pitää ikään kuin kirjaa eri rakennusmestarien ja arkkitehtien tekemistä piirroksista ja tietää myös, onko kyseessä sketchaus vai lopullinen versio (aika hyvä vertauskuva, käsitteellistäminen ja metaforat ovat tarpeen kun kieltenope opettelee koodaamaan!)
  • Github on vähän niinkuin taidenäyttely ja koti koodinpätkille, sen tehtävänä on säilyttää ja pitää kaikkien saatavilla tehdyt työt.
  • Github on firma, joka pyörittää omilla palvelimillaan isoja datavarastoja, joihin voi git:n avulla tallettaa omia juttuja, ja sit toi github.com on vaan selainpohjainen käyttöliittymä git:iin
  • GitHub on säilytyspaikka & kollaboratiivinen alusta repositoryjen (yksi ”git-datapankki”) hallintaan
  • Repo on projektin koti
  • GitHub Pages = GitHubin yksi erikoisuus, eli mahdollisuus julkaista git-repoon tallennettua HTML-sisältöä helposti & ”automaattisesti”, vähän blogityyiin ja tästä lähdinkin liikkeelle!
  • Gitin ”social coding” asema pitää paikkansa: kysymykseeni Twitterissä vastattiin välittömästi! Voi, miten iloitsin han ventovieraan välittömästä vastauksesta pulmaani! Tuli fiilis, että saan jatkossakin apua. :)

Pisara meressä

  • GitHub on yksi monista (vrt. esim Bitbucket)
  • Git kehitettiin alunperin Linuxin lähdekoodin hallintaan, nykyään ehkä laajimmalle levinnyt versionhallintatyökalu
  • tehtävänä on pitää kirjaa siitä, mitä muutoksia kuka on tehnyt & milloin; auttaa siirtymään eri versioiden välillä & jakamaan koodia useiden kehittäjien välillä
  • nettisivut on yksi harvoista sisällöistä joita git tukee (käytännössä voi olla mitä vaan)
  • Github-sivuissa on se kiva puoli, että markdownin lisäksi (tiedosto.md) voi käyttä monia muita tiedostomuotoja, esim. suoraa html (tiedosto.html)
  •  Sourceforge  on se edelleen aktiivisessa käytössä, erona ehkä se, et GH on ollut alusta lähtien sosiaalisempi (kaikki puhuvat Githubista ”socil coding”)

Käytännön esimerkki

Ville kertoi tällaisen esimerkin kun kysyin, mitä tarkoittaa Git clone / pull / push:

  • ”git clone/pull/push” on sen git-sovelluksen eri komentoja: ensimmäisellä voidaan kloonata joku datakasa omalle koneelle, toisella viedään omat muutokset etäpalvelimelle ja kolmannella päivitetään muutoksia etäpalvelimelta paikalliseen kopioon
  • kun aloitan projektin, luon uuteen kansioon (”uusi projekti”) git-repositoryn (se ”datakasa”): git init
  • sitten luon jonkun tiedoston ihan millä ohjelmalla vaan haluan, vaikka notepad++, tallennan sen tohon kansioon
  • sit kerron gitille, että mulla on uus tiedosto, jonka tahdon lisätä git:n versionhallintaan: git add uusitiedosto.txt
  • sit tallennan tänhetkisen version: git commit -m ”Tein uuden tiedoston”
  • sit muokkaan tiedostoa, vaikka taas notepad++, ja päivitän muutokset git:iin: ”git add uusitiedosto.txt”, ”git commit -m ”lisäsin tiedostoon jutun X”

Ihmettelin, mitä varten nettiliittymän lisäksi pitää asentaa omalle koneelle Git. Nettikäyttöliittymällä operoiminen on ilmeisen hidasta jos tekee ”jotakin oikeaa” eli koodaa ja tekee paljon muutoksia päivässä. :)

Osa avointa, osa suljettua + versionhallintaa

Githubissa voi itse päättää, mitä haluaa avoimesti näyttää (vrt. taidenäyttely!) ja mitä haluaa pitää privana. Näppärää, jos vaikkapa koodaa kavereiden kanssa ympäri maailmaa.

Tässä esimerkkinä Jannen julkinen Github ja Villen. Tässä esimerkki Gitin hyödyntämisestä asioiden (tehdyt muutokset) seuraamisessa.

PS. Aiemmassa postauksessani kysyin, onko koodaamisesta hyötyä. Vastaajista valtaosa (91%) ajatteli ”Toki, se opettaa ongelmanratkaisua ja on näppärä taito nykypäivänä.”

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s