Kymmensormijärjestelmän oppitunnit
ohjelmoijille
- Eri ohjelmointikieliä
- Sulkeet, operaattorit ja avainsanat
Jokaisella ohjelmointikielellä on oma syntaksinsa. Voit kirjoittaa koodia nopeammin harjoittelemalla kymmensormijärjestelmää. Yllä olevat oppitunnit sisältävät erilaisia koodinpätkiä valitsemastasi kielestä sen avainsanojen ja symbolien harjoitteluun.
Kymmensormijärjestelmän oppitunnit ohjelmoijille
Harjoittele kymmensormijärjestelmää ohjelmointikielten esimerkeillä
Kymmensormijärjestelmä ohjelmoinnissa
Ohjelmointi kuvataan usein loogisten ongelmien ratkaisuna, järjestelmien suunnitteluna tai sovellusten rakentamisena. Tämä kaikki pitää paikkansa. Harvemmin kuitenkaan muistetaan, että pohjimmiltaan kyse on myös fyysisestä taidosta kirjoittaa koodia editoriin. Ohjelmoija käyttää näppäimistöä koodin syöttämiseen. Jos joudut etsimään näppäimiä kirjoittaessasi sulkeita tai for-silmukkaa, työ keskeytyy. Sujuva kirjoittaminen vähentää näitä taukoja koodin syöttämisessä. Kymmensormijärjestelmä ohjelmoinnissa auttaa keskittymään ongelmanratkaisuun näppäinten etsimisen sijaan. Nopea kirjoittaminen ohjelmoinnissa ei tarkoita "120 sanaa minuutissa" vaan tarkkuutta ja varmuutta koodin symbolien, avainsanojen ja rakenteiden kirjoittamisessa.
Miksi kymmensormijärjestelmä on tärkeää ohjelmoijille
Tavallisesta tekstistä poiketen koodi noudattaa määriteltyä rakennetta ja syntaksia. Et voi luottaa siihen, että kääntäjä tai tulkki arvaa tarkoituksesi, jos kirjoitat väärän merkin. Kirjoitusvirhe voi aiheuttaa syntaksivirheen tai muuttaa ohjelman merkitystä, vaikka koodi pysyisi kelvollisena. Nopean kirjoittamisen rinnalla on siksi harjoiteltava tarkkuutta; pelkkä nopeus ei takaa vähempää korjaamista. Kymmensormijärjestelmän avulla voit katsoa editoria näppäimistön sijaan ja käyttää vähemmän huomiota näppäinten etsimiseen. Ohjelman logiikan tarkistaminen ja ongelmien ratkaiseminen ovat edelleen erillisiä tehtäviä.
AgileFingers keskittyy juuri tähän haasteeseen: se tarjoaa ohjelmoijille oppitunteja, jotka perustuvat oikeaan koodiin, eivät satunnaisiin syntaksimerkkeihin. Kyse ei ole kielen oppimisesta alusta, vaan sen syntaksin hallinnasta kirjoittaessa. Kymmensormijärjestelmän ja kielen tuntemuksen yhdistelmä antaa ohjelmoijalle varmuutta.
Kielet kirjoittamisen haasteiden mukaan
Eri kielet asettavat erilaisia vaatimuksia kirjoittamiselle. Kymmensormijärjestelmän näkökulmasta on järkevää ryhmitellä ne näppäilyjaksojen mukaan eikä esimerkiksi ohjelmointiparadigman mukaan. AgileFingers tarjoaa harjoituksia kielille Java, JavaScript, C++, C#, Go, PHP, SQL, Bash ja Python. Näin ne eroavat toisistaan:
Aaltosulkeisiin nojaavat kielet (Java, JavaScript, C++, C#, Go)
Nämä kielet käyttävät runsaasti aaltosulkeita {} ja kaarisulkeita. Javassa, C++:ssa ja C#:ssa lauseet päättyvät yleensä puolipisteeseen; Go lisää useimmat puolipisteet automaattisesti, ja JavaScriptissä ne voi monissa tapauksissa jättää pois. Nämä merkit muodostavat koodin rungon. Jos joudut etsimään niiden näppäimiä, ajatustyö keskeytyy. Esimerkki Javasta:
public class Greeter {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("Hei " + i);
}
}
}
Tai C#, jossa syntaksi on laaja mutta johdonmukainen:
for (int i = 0; i < 10; i++) {
Console.WriteLine($"Arvo: {i}");
}
Nopea kirjoittaminen tällaisissa silmukoissa vaatii varmuutta aaltosulkeiden, sulkeiden ja operaattoreiden käytössä. C++ lisää osoitinoperaattoreita (*, ->), ja Go yksinkertaistaa syntaksia mutta käyttää sekin aaltosulkeita. Näiden näppäilyjaksojen harjoittelu AgileFingersissä auttaa kirjoittamaan ne sujuvammin.
Skripti- ja kyselykielet (Bash, PHP, SQL)
Skripteissä symboleja on paljon. Bashissa käytät usein putkia (engl. "pipe" - |), uudelleenohjauksia ja dollarimerkkiä $:
for file in *.txt; do
echo "Käsitellään $file"
done
PHP:ssä muuttujan eteen kirjoitetaan $-merkki. Kun PHP-koodia upotetaan HTML:ään, tiedostossa vuorottelevat HTML-tagit ja C:tä muistuttava syntaksi. SQL:ssä kyse on vähemmän välimerkeistä ja enemmän kyselyiden avainsanoista:
UPDATE users
SET active = 0
WHERE last_login < NOW() - INTERVAL '30 days';
Näissä kielissä kymmensormijärjestelmä tarkoittaa avainsanojen ja symbolien toistojen hallintaa. Hetken epäröinti putken kirjoittamisessa tai puuttuva puolipiste riittää keskeyttämään ajatusketjun.
Sisennykseen perustuvat kielet (Python)
Python on erityinen, koska sisennys on osa syntaksia. Yksi puuttuva välilyönti tai kaksoispiste voi rikkoa ohjelman. Kirjoituskuvio on selkeä: if ...:, uusi rivi, sisennys. Esimerkiksi:
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
Kymmensormijärjestelmän harjoittelu Pythonissa auttaa totuttelemaan koodin visuaaliseen rakenteeseen ja sisennyksiin. Useimmat editorit lisäävät tabulaattorit tai välilyönnit automaattisesti, mutta sinun on silti tunnistettava, mistä kukin lohko alkaa ja mihin se päättyy. Tavallisen asettelun tunteminen helpottaa koodin seuraamista kirjoittaessa ja tarkistaessa. AgileFingers tarjoaa monia Python-harjoituksia näiden rakenteiden kirjoittamiseen.
Muut ohjelmointikielet
Tuettujen kielten lisäksi Rust, Kotlin, Swift ja Haskell tuovat omat erityispiirteensä. Rust korostaa muistiturvallisuutta borrowingin (&) ja lifetimejen ('a) avulla. Kotlin käyttää lambda-lausekkeita ja nuolia funktiotyyppien merkinnässä. Swift yhdistää C-tyylisen syntaksin moderniin ilmaisuvoimaan. Haskell vaatii tarkkaa sisennystä ja käyttää runsaasti symbolisia operaattoreita. Kymmensormijärjestelmä tekee kaikesta tästä hallittavampaa.
Ohjelmointi flow-tilassa
Ohjelmointi on miellyttävää, kun voit keskittyä tehtävään ja muuttaa ideasi koodiksi ilman tarpeettomia keskeytyksiä. Tällaista syvää keskittymistä kutsutaan usein flow-tilaksi. Kymmensormijärjestelmä vähentää tarvetta etsiä näppäimiä ja siirtää katsetta editorista näppäimistöön. Silloin itse näppäily vie vähemmän huomiota ohjelman logiikan, rakenteen ja ongelmien pohtimiselta. Syntaksi on silti tunnettava ja tarkistettava; sen osaaminen ei synny pelkistä sormien liikkeistä. Harjoittelu tekee tutuista näppäilyjaksoista rutiinia. Automaattinen täydennys ja koodin kopioiminen voivat myös kuulua työskentelyyn, kunhan ymmärrät ja tarkistat ohjelmaan lisäämäsi koodin.
Koodin automaattinen täydennys
Automaattinen täydennys on hyödyllinen pitkissä muuttujien ja luokkien nimissä sekä toistuvissa silmukoissa ja koodilohkoissa. Kun hyväksyt kokonaisen ehdotuksen, et harjoittele sen kirjoittamista merkki kerrallaan. Jos opettelet kieltä, lue täydennetty koodi ja varmista, että ymmärrät sen rakenteen. Kokeile myös kirjoittaa joitakin rakenteita itse. Täydennyksen käyttö ei itsessään tarkoita, että unohtaisit syntaksin.
Tekoälyavustajat (engl. "AI assistants") voivat ehdottaa kokonaisia funktioita tai useita koodilohkoja kerralla. Tämä voi säästää näppäilyä, mutta ehdotus on silti luettava ja tarvittaessa muokattava: pienet yksityiskohdat voivat muuttaa ohjelman toimintaa. Avustajan käyttäminen ei itsessään tee ohjelmoijasta pelkkää koodin tarkastajaa. Päätät edelleen, mitä hyväksyt ja miten se sopii projektiisi. Kymmensormijärjestelmästä on hyötyä, kun teet omia muutoksia, lisäyksiä ja korjauksia. AgileFingersissä voit harjoitella kielirakenteiden kirjoittamista itse ja totutella niiden symboleihin ja avainsanoihin.
Työskentely IDE:iden ja editorien kanssa
Integroitu kehitysympäristö (engl. Integrated Development Environment, IDE) on enemmän kuin editori: se yhdistää muokkauksen, debuggaamisen, refaktoroinnin, testauksen ja projektinhallinnan yhteen työkaluun. Esimerkkejä ovat IntelliJ IDEA, PyCharm ja Rider. Ne tarjoavat tehokkaita ehdotuksia, virheiden tunnistusta ja navigointia. Sujuva kirjoittaminen auttaa koodin syöttämisessä ja muokkaamisessa. Pikanäppäimillä pääsee käyttämään monia tavallisia komentoja, mutta hiiren ja näppäimistön käyttö riippuu tehtävästä ja omista työtavoistasi.
Kehitysympäristön automaattinen täydennys on kätevä, mutta se ei korvaa kielen perusteiden tuntemista. Voit käyttää sitä pitkiin tunnisteisiin ja tavallisiin rakenteisiin, kun ymmärrät syntyvän koodin. Jos haluat harjoitella for-silmukan kirjoittamista, kirjoita se välillä ilman mallipohjaa ja tarkista sen ehto ja runko. Kymmensormijärjestelmä auttaa omassa koodin syöttämisessä ja muokkaamisessa. Täydennystyökalut ja kirjoitusharjoittelu voivat siis kuulua samaan työtapaan.
IDE:n ja editorin välimaastossa on Visual Studio Code. Jotkut kutsuvat sitä IDE:ksi, mutta teknisesti se on edistynyt editori. Oikeilla lisäosilla siitä tulee erittäin tehokas. Vim-emuloinnin lisäosat tuovat Vimin näppäinkomennot VS Codeen. Git-tuki on valmiina editorissa; muut lisäosat tarjoavat tietokantatyökaluja tai linting-tarkistuksia (engl. "linting"). Kymmensormijärjestelmästä on hyötyä koodin syöttämisessä ja muokkaamisessa, mutta työkalujen hyöty riippuu myös siitä, miten käytät niitä kyseisessä tehtävässä.
Neovim - näppäimistölähtöisen editorin voima
Neovim on suunniteltu näppäimistöllä työskentelyyn, mutta se tukee myös hiirtä ja sitä voi käyttää graafisten käyttöliittymien kautta. Sen komennot mahdollistavat täsmälliset muokkaukset: dd poistaa rivin, ciw muuttaa sanan ja :%s/foo/bar/g korvaa tekstiä koko tiedostossa. Navigointiin voi käyttää esimerkiksi komentoa 42G, joka vie suoraan riville 42. Kymmensormijärjestelmä auttaa komentojen ja koodin syöttämisessä. Myös itse komentojen tunteminen on tärkeää; ne tulevat tutuiksi, kun käytät niitä käytännön muokkaustehtävissä.
Laaja lisäosien (engl. "plugins") ekosysteemi tekee Neovimistä monipuolisen: telescope.nvim hakuun, coc.nvim tai nvim-cmp täydennyksiin, fugitive.vim Gitiin. Nämä lisäosat tuovat editoriin haku-, täydennys- ja versionhallintakomentoja. Jos työskentelet mieluiten näppäimistöllä, voit opetella niiden pikanäppäimet Neovimin muokkauskomentojen rinnalla ja käyttää kymmensormijärjestelmää koodin kirjoittamiseen.
Mekaaniset näppäimistöt ja ohjelmoinnin mukavuus
Vuosien koodaamisen jälkeen huomaat, miten näppäimistö liittyy työtapoihisi. Mekaanisissa näppäimistöissä on erilliset mekaaniset kytkimet, jotka tarjoavat erilaisia näppäintuntumia. Pitkän työskentelyn mukavuus riippuu näppäimistön mallista, sen sijoittelusta ja omista mieltymyksistäsi. Voit valita kytkintyyppejä, joita merkitään usein väreillä red, blue tai brown. Ne eroavat esimerkiksi painallukseen tarvittavassa voimassa, tuntopalautteessa ja äänessä; ominaisuudet riippuvat kyseisestä mallista. Näin voit valita itsellesi mieluisan näppäintuntuman. Kymmensormijärjestelmää voit harjoitella näppäimistöllä, joka sopii sinulle. Pelkät mekaaniset kytkimet eivät takaa pienempää rasitusta, parempaa tarkkuutta tai rentoja sormia pitkän työskentelyn ajan. Myös käsien asento ja tauot vaikuttavat mukavuuteen.
Tekoälyn rooli ja taitojen säilyttäminen
Tekoälytyökalut voivat tuottaa koodinpätkiä, kokonaisia funktioita ja ohjelmia. Ehdotukset säästävät osan käsin kirjoittamisesta, mutta sinun on tarkistettava, ratkaisevatko ne kyseisen tehtävän. Jos hyväksyt koodia, jota et ymmärrä, sen muuttaminen tai virheiden etsiminen on myöhemmin vaikeaa. Siksi kielen opiskelu ja omien ohjelmien kirjoittaminen ovat edelleen tärkeitä. Tekoälyn käyttö ei itsessään tarkoita syntaksin tuntemuksen menettämistä tai luovan työn loppumista. Ratkaisun suunnittelu, muutoksista päättäminen ja tuloksen tarkistaminen kuuluvat yhä ohjelmointiin.
Tekoälystä voi olla hyötyä toistuvan koodin kirjoittamisessa (engl. "boilerplate") tai virheenjäljityksen tulosteiden lisäämisessä esimerkiksi kutsuilla print ja console.log. Silloinkin päätät itse, mitä tulostetaan ja missä, ja tarkistat ehdotetun koodin. Tehtävästä riippuen kirjoitat, muokkaat tai tarkastat koodia; kaikki nämä ovat osa ohjelmoijan työtä. Kymmensormijärjestelmästä on hyötyä käsin kirjoittamisessa ja korjaamisessa. AgileFingersissä harjoittelet koodiesimerkkien avainsanoja ja symboleja sekä niiden kirjoitusnopeutta ja tarkkuutta. Kielen ja ohjelmien suunnittelun osaamista kehität opiskelun ja omien projektien avulla.
Lopuksi
Kymmensormijärjestelmä on käytännöllinen taito koodin kirjoittamisessa ja muokkaamisessa. Kun tiedät näppäinten paikat, voit katsoa editoria sen sijaan, että vilkuilisit jatkuvasti näppäimistöä. Näin oikean merkin etsiminen katkaisee harvemmin ajatuksen muuttamisen koodiksi. Kirjoitusnopeus ja ohjelman oikea toiminta ovat kuitenkin eri asioita: koodin logiikka on edelleen tarkistettava ja lopputulos testattava. Oman koodin kirjoittamisen rinnalla voi käyttää automaattitäydennystä ja tekoälyn ehdotuksia silloin, kun ne sopivat tehtävään.
AgileFingers tarjoaa ohjelmointiharjoituksia, joissa kirjoitetaan Java-, Python- ja Go-koodia sekä muiden kielten koodikatkelmia. Toistamalla esimerkkien näppäinpainalluksia harjoittelet kirjoitusnopeutta ja tarkkuutta sekä kehität lihasmuistia tavallisia merkkejä ja näppäinsarjoja varten. Samalla koodin kirjoitusasu tulee tutuksi, mutta ohjelman toiminnan ymmärtäminen vaatii kielen opiskelua ja omien projektien tekemistä. Vaikka työkalut tuottaisivat tai täydentäisivät koodia, kymmensormijärjestelmästä on hyötyä omia muutoksia ja korjauksia kirjoitettaessa.