Mitä ohjelmointi on?
Suomenkielinen termi automaattinen tietojenkäsittely kuvaa melko hyvin tietokoneiden toimintaperiaatetta. Tieto on taltioituna numeroina tietokoneen muistiin, ja sitä käsittelee ohjelmakoodi ennalta ohjelmoitujen sääntöjen (eli algoritmin) mukaisesti. Ohjelmakoodin algoritmin lisäksi oikeanlainen datan esitysmuoto ja numeroiden yhdisteleminen on hyvin tärkeä osa ohjelmointia.
Nykyaikaisen digitaalisen tietokoneen toimintaperiaate on jo yli 80 vuotta vanha. Matkalla on otettu huimia kehitysaskeleita laskennan nopeudessa ja laitteiden koossa. Perusperiaatteet ovat kuitenkin pysyneet ennallaan: koneet käsittelevät binäärisiä numeroita tekemällä niillä laskutoimituksia.
Binäärimuoto on helppo toteuttaa transistoreilla: sähköä joko kulkee tai ei. Numeroina binäärimuoto määritellään vastaamaan kahta arvoa, esimerkiksi 1 ja 0. Kun ykkösiä ja nollia laitetaan yhteen useampi, voidaan kuvata suurempia numeroita. Kahdella ykkönen ja nolla -parilla on jo neljä eri arvoa: 00, 01, 10 tai 11 (desimaalilukuina ne ovat 0, 1, 2 ja 3). Tämä on laajennettavissa tarpeeksi isoiksi numeroiksi aina ongelmasta riippuen. Aina ei kuitenkaan yksi numero riitä, vaan käsiteltävän asian kannalta selkeämpää voi olla useamman numeron yhdistelmä. Esimerkiksi päivämäärässä käytämme kolmea eri numeroa, joille on annettu merkitykset päivä, kuukausi ja vuosi: 14.2.2022.
Tietokoneen alkuaikoina laitteen ohjelmoijan tuli tuntea alimman tason bitit hyvin tarkkaan saadakseen aikaiseksi haluamansa toiminnon. Kun ohjelmien haluttiin tekevän mutkikkaampia asioita aina vaan isommille datamäärille, kehitettiin ohjelmoinnin avuksi helpompia tapoja ”puhua” koneen kieltä. Näin syntyneet ohjelmointikielet ovat tulkkina ihmisen ja koneen välissä.
Tämän päivän rannekello puhuu edelleen kaikessa suorittamassaan ohjelmakoodissa samaa binäärikieltä kuin toisen maailmansodan koodinpurkulaite, mutta ohjelmoijan työkalut ovat kehittyneet helppokäyttöisemmiksi.
Tämän päivän ohjelmoinnissa koodin kehittämisen helppous ja erilaisten valmiiden apukirjastojen lukumäärä ja laatu ovat erittäin tärkeitä asioita. Yksi hyvä esimerkki tällaisesta ohjelmointiympäristöstä on hyvin suosittu Python-ohjelmointikieli. Ohjelmoijan ei tarvitse tuntea kaikkia yksityiskohtia käytetyn prosessorin tai tietokoneen muistin toiminnasta, vaan haluttu asia voidaan kirjoittaa selkeämmin niin sanotun korkeamman tason ohjelmointikielen avulla.
Ohjelmointikieli on kuitenkin tyhmä verrattuna ihmisten ajatusmaailmaan. Siksi edelleen tarvitaan ohjelmoijia muuntamaan ongelmanasettelu koneen ymmärtämän ohjelmointikielen muotoon. Hieman kärjistäen voidaan sanoa, että ohjelmoijat ovat ongelmanratkojia. Heidän tulee määritellä, miten jokin kuvattu ongelma esitetään numeroina tietokoneessa ja millä laskutoimituksilla saadaan toteutettua haluttu lopputulos.
Lopputulos on tässä hyvin laaja käsite. Tulos voi olla esimerkiksi taulukko numeroita. Se voi toisaalta olla myös vaikka pelissä näistä numeroista näytölle muodostettuja kolmioita, joista nykyaikainen tietokone saa aikaan huimia virtuaalimaailmoja pyörittämällä niitä miljardeja sekunnissa – edelleen laskemalla numeroilla kuten jo digitaalisten tietokoneiden alkuaikana.
Tieturin koulutus Ohjelmallinen ajattelu ja Python perusteet pyrkii avaamaan juurikin tätä modernin ohjelmoinnin maailmaa: miten ongelmia kuvataan tietokoneelle ymmärrettävään muotoon ja miten tietoa käsitellään ohjelmissa.
Kun ohjelmoinnin perusteet ovat jo tuttuja tarjoaa Python-ohjelmointi -koulutus esittelyn Python 3 ohjelmointikielen kaikkiin perusperiaatteisiin ja standardi-kirjastoon.
Jos Python on jo tuttu ohjelmointikielenä, niin Python Advanced -koulutus käy läpi kaikki mutkikkaammatkin ominaisuudet kielen uusimpaan versioon Python 3.10 asti (avainsanoina mm. decorator, descriptor, metaclass, async, concurrency).