Kultainen koodi

.NET-osaajan ajatuksia paremmasta koodailusta

Archive for the category “esimerkit”

Code Wars, mahdollisuus oppia

Tutustuin codewarsiin työkaverini suosituksesta yhtenä syksyisenä päivänä. Hän löysi koodiharjoitussivuston, jossa editoria ja testejä voi ajaa selaimen kautta. Toisin kuin exersim.io tai vastaavissa palveluissa, codewarsilla harjoitteleminen onnistuu ilman kehitysympäristöä.

Harjoitusten tekeminen codewarsissa käy helposti. Harjoitusta kutsutaan nimellä kata.

codewars_kata

Kata eli harjoitus codewars.com:ssa.

 

Harjoituksen tehtävänanto selviää ruudun vasemmalta puolelta. Koodi kirjoitetaan oikeassa yläkulmassa näkyvään koodinäkymään. Kirjoitettu koodi ajetaan ”paikallisia” testejä vastaan Run Examples -painikkeella. Ne löytyvät Example Tests -otsikon alta. Näitä testejä voi myös muokata omien mieltymysten mukaan.

Lopullinen testi ratkaisulle tehdään ajamalla koodi Attempt-painikkeella. Ratkaisun toimivuus testataan yksikkötesteillä, joita ei näytetä käyttäjälle. Vain testien tulos näytetään. Toisinaan testien nimestä voi päätellä mikä testi epäonnistui. Järjestelmä sallii myös satunnaistettujen testien ajamisen, jolloin tehtävän luojan ei tarvitse kirjoittaa kaikkia testitapauksia käsin.

Ratkaistuasi tehtävän, saat vaikeusasteen mukaan tietyn määrän pisteitä. Helpoimmat testit saa ratkaistua muutamassa minuutissa, vaikeampien ratkaiseminen kestää tunteja.

Ratkaistuasi tehtävän, näet muiden vastaukset ja näistä oppii. Vastauksista voi merkata omasta mielestä parhaan ja nokkelan vastauksen. Vastauksista näkee kuinka paljon ohjelmoijien ongelmanratkaisukyky ja API-tuntemus vaihtelee.

codewars_stats

Stats-sivu kertoo mistä olet saanut pisteitä.

 

Olen kerännyt suurimman osan pisteistäni tekemällä harjoituksia. Pisteiden hankkimiseen käytetyt kielet näkyvät oikeasta laidasta ja prosenttiosuus kertoo kuinka paljon pisteitä on kerätty ennen seuraavaa tasoa.

Pisteet päivittyvät muutaman tunnin välein, kun palvelin ajaa ajastetusti pisteiden päivistyskriptit. Itsekin ihmettelin aluksi miksi pisteet päivittyvät viiveellä.

Jos teet vain harjoituksia, pisteillä ei ole merkitystä. Halutessasi voit kirjoittaa harjoituksia muiden ratkaistavaksi tai kääntää niitä kieleltä toiselle. Tällöin korkeampi pistemäärä sallii kevyemmän validointiprosessin ennen kuin kirjoittamasi harjoitus julkaistaan.

Yhteisöllisyyttä yritetään lisätä klaanien avulla. Käyttäjän tiedoissa voi antaa itselleen klaanin. Se on vain merkkijono. Kaikki jotka kirjoittavat saman merkkijonon, tulevat samaan klaaniin.

codewars_klaanit

Klaanit

 

Klaanijärjestelmä ei ehkä ole täydellinen, koska vaihdettuani klaanin, näen edelleen kaikki vanhan klaanini jäsenet.

Codewars on ehdottomasti paras palvelu ohjelmointiharjoitusten tekemiseen. Sen avulla voi ylläpitää kielen osaamista tai opetella uutta kieltä. Toki harjoitusten avulla oppii erityisesti kielen käyttöä, ei niihin liittyvien frameworkkien käyttöä.

Suosittelen kokeilemaan codewarsia, sen avulla voit löytää palon vanhaan rakkaaseen kieleen tai kehittää osaamistasi nykyisen kielen kanssa.

 

 

 

ClojuTRE 2016 aloittelijan silmin

Kävin kuuntelemassa upeita luentoja ClojuTRE:ssa, siellä kerrottiin uusimmista tuulista ja erilaisista kielen sovelluksista.

Huomasin hypänneeni clojuren kelkkaan juuri oikeaan aikaan, koska kielen debuggaukseen, ajonopeuteen ym. liittyvät ongelmat on selätetty aivan hiljattain.

Palataan alkuun.

ClojuTRE tarjosi tietoa kolmella rintamalla: clojuren yhteys muihin kieliin ja clojuren historia, erilaisia sovelluksia miten clojurea voi käyttää oikeissa projekteissa ja kielen kehittymiseen liittyvät projektit tai laajennukset.

Tietämykseni laajeni kerralla aivan uusiin sfääreihin seurattuani esityksiä.

Klipse tarjoaa REPL:n eli reaaliaikaisen ohjelmointiympäristön mille tahansa web-sivulle, joka voi pyörittää komponentteja tai JavaScriptiä. Sen avulla uuden kielen oppiminen muuttuu paljon helpommaksi, kun opiskelijan ei tarvitse erikseen pystyttää kehitysympäristöä. Ideoita voi kokeilla heti.

Native mobile apps ja clojure of things järisyttivät maailmaani. Siis näin voi tehdä alustariippumattomia sovelluksia clojurella tai ohjata IoT-laitetta (RaspberryPi). Aivan fantastista kamaa. Juuri tämän kaltaiset esimerkit elävästä elämästä saavat uskomaan tämän kielen mahdollisuuksiin. Huimaa.

The Story of Owl Lisp avasi lispien maailmaa tavalla, jota en uskonut mahdolliseksi. Kaiken lisäksi Aki Helin sai yleisön nauramaan upealla esityksellään. Kaiken takana on yksinkertainen lambda-matematiikka eli funktiot. Yksinkertaisuudessaan ja yksinkertaisuudesta kasvaessaan monimutkaisuudessaan kaunista.

ClojureScriptin viisi viimeisintä vuotta ja viisi seuraavaa puuhkäisivät pöydän puhtaaksi. David Nolen tiivisti erinomaisesti, yhteistö sai tämän kaiken aikaan. Liity yhteisöön ja anna vähän. Nappaa helppoja juttuja, joilla parannetaan clojure (scriptiä). Oikein voimaannuttava puhe mieheltä, joka on auttanut clojurescriptin syntymisessä. Hän rakastaa LISPiä.

Päähäni jäi paljon innostusta. Sain suuren määrän tietoa, josta osaa pystyn käyttämään edukseni paremmin kuin toista. Löysin paikkoja, joista voi aloittaa, kun tahtoo saada asioita tapahtumaan. Siemeniä, alkuja minulle. Muille projekteja, jotka luovat uskoa clojureen.

Post Navigation