Ohjelmoija 101: Opi itsesi koodaamaan

Olet aina halunnut oppia rakentamaan itse ohjelmistoja – tai vain laatimaan satunnaisia skriptejä – mutta et ole koskaan tiennyt, mistä aloittaa. Onneksi verkko on täynnä ilmaisia resursseja, jotka voivat tehdä sinusta ohjelmoijan hetkessä.

Uusi video

Tämä selain ei tue videoelementtiä.

Internetin keksimisestä lähtien ohjelmoijat ovat käyttäneet sitä keskustellakseen ohjelmistokehitystekniikoista, julkaistakseen opetusohjelmia ja jakaakseen koodinäytteitä, joista muut voivat oppia ja joita he voivat käyttää verkossa. Jos olet utelias siitä, miten tulla ohjelmoijaksi, voit päästä vauhdikkaaseen alkuun käyttämällä lukuisia mahtavia ilmaisia verkkopohjaisia opetusohjelmia ja resursseja.

First Things First: Älä jumiudu kielen valintaan

G/O Media saattaa saada välityspalkkion

Mainos

Yleinen aloittelijoiden sudenkuoppa on jumiutua miettimään sitä, mikä ohjelmointikieli olisi parasta opetella ensin. Mielipiteitä on paljon, mutta yhtä ”parasta” kieltä ei ole olemassa. Asia on näin: loppujen lopuksi kielellä ei ole NIIN paljon väliä. Tieto- ja ohjausrakenteiden ja suunnittelumallien ymmärtämisellä on paljon merkitystä. Jokaisessa kielessä – jopa yksinkertaisessa skriptikielessä – on elementtejä, joita käytät myös muissa kielissä ja jotka auttavat sinua oppimaan. Tietojenkäsittelytieteen tutkintoa varten suorittamillani kursseilla ohjelmoin Pascalilla, Assemblyllä ja C:llä – kielillä, joiden ohjelmoinnista minulle ei koskaan maksettu palkkaa ammattimaisesti. Opetin itse jokaisen kielen, jota olen käyttänyt urallani, käyttämällä uudelleen jo tuntemiani käsitteitä ja tutustumalla dokumentaatioon ja kirjoihin oppiakseni kielten syntaksin. Älkää siis miettikö, mikä kieli on opeteltava ensin. Valitse, millaista kehitystyötä haluat tehdä, ja ryhdy käyttämään sitä, joka toimii.

On olemassa useita erilaisia ohjelmistokehitystapoja, joita voit tehdä eri alustoille, verkosta työpöydälle, älypuhelimeen ja komentoriville. Tässä artikkelissa hahmotamme joitakin suosikki aloitusoppaitamme ja resursseja, joiden avulla voit opettaa itsellesi ohjelmointia jokaiselle tärkeimmälle alustalle. Oletamme, että olet taitava käyttäjä, mutta vasta-alkaja koodinpätkien hallitsemisessa, joten pidämme asiat aloittelijan tasolla. Jo pelkän aloittelijan ohjelmointioppaan läpikäyminen saa sinut ilahtumaan, kun huomaat, miten pitkälle pääset.

Esittely

Työpöydän skriptaaminen

Helpoisin tapa kokeilla Windows- tai Mac-työpöydän ohjelmointia on aloittaa skripti- tai makro-ohjelmalla, jollainen on esimerkiksi AutoHotkey- (Windows) tai Automator-ohjelma (Mac). Juuri nyt kovan luokan koodarit koko Lifehackerin lukijakunnassa huutavat monitoreilleen, että AHK tai AppleScript eivät ole ”oikeaa” ohjelmointia. Se voi olla totta – teknisesti ottaen tällaiset työkalut tekevät vain korkean tason skriptejä. Mutta niille, jotka ovat vasta-alkajia ja haluavat vain päästä jalat alkuun automatisoimalla toimintoja työpöydällään, nämä ilmaiset työkalut ovat loistava tapa aloittaa – ja olisit yllättynyt siitä, miten paljon niillä voi tehdä.

Mainos

Adam kehitti esimerkiksi kaikkien tunteman ja rakastaman itsenäisen Windows-sovelluksen, Texterin, AutoHotkeyn avulla, joten tällä skriptikielellä pystyy paljon muuhunkin kuin vain pienimuotoisiin automatisointiprojekteihin. Jos haluat päästä alkuun AutoHotkeyn kanssa, tutustu Adamin opetusohjelmaan, jossa kerrotaan, miten mikä tahansa toiminto muutetaan pikanäppäimeksi AutoHotkeyn avulla. (Tutustu sitten Texterin lähdekoodiin nähdäksesi täysimittaisen AHK-pohjaisen Windows-sovelluksen sisuskalut.)

Mainos

Verkkokehitys

Sen sijaan, että olisit sidottu tiettyihin ohjelmointikieliin ja tietyn käyttöjärjestelmän ulkoasuun ja fiilikseen, voit laittaa killerisovelluksen selaimella selaimen sisään ja pyörittää sitä pilvipalvelussa web-sovelluksen muodossa. Tervetuloa web-kehityksen ihmeelliseen maailmaan.

Mainos

HTML ja CSS: Ensimmäinen asia, joka sinun on tiedettävä minkä tahansa verkkosivuston rakentamiseksi, on HTML (sivumerkintä, josta verkkosivut koostuvat) ja CSS (tyylitiedot, jotka tekevät merkinnästä kauniin näköistä). HTML ja CSS eivät ole varsinaisia ohjelmointikieliä – ne ovat vain sivun rakennetta ja tyylitietoja. Sinun pitäisi kuitenkin osata laatia yksinkertaisia HTML- ja CSS-ohjelmia käsin ennen kuin alat rakentaa verkkosovelluksia, sillä verkkosivu on jokaisen verkkosovelluksen etusivu. Tämä HTML-opas on hyvä paikka aloittaa.

JavaScript: Nyt kun osaat laatia staattisen verkkosivun HTML:llä ja CSS:llä, asiat muuttuvat hauskoiksi – koska on aika opetella JavaScript. JavaScript on verkkoselaimen ohjelmointikieli, taika, joka saa dynaamiset sivun sisäiset efektit toimimaan. JavaScript on myös kirjanmerkkipakettien, Greasemonkey-käyttäjäskriptien ja Ajaxin perusta, joten se on avain kaikenlaisten verkkoherkkujen tekemiseen. Aloita JavaScriptin opettelu täältä.

Mainos

Server-side scripting: Kun olet hyvä saamaan asioita tapahtumaan verkkosivun sisällä, sinun täytyy laittaa jonkin verran dynaamista palvelintoimintaa sen taakse – ja sitä varten sinun täytyy siirtyä palvelinpuolen skriptikieleen, kuten PHP:hen, Pythoniin, Perliin tai Rubyyn. Jos esimerkiksi haluat tehdä web-pohjaisen yhteydenottolomakkeen, joka lähettää sähköpostin jonnekin sen perusteella, mitä käyttäjä on syöttänyt, tarvitaan palvelinpuolen skripti. PHP:n kaltaiset komentosarjakielet voivat myös keskustella verkkopalvelimella olevan tietokannan kanssa, joten jos haluat tehdä sivuston, johon käyttäjät voivat kirjautua ja tallentaa tietoja, se on oikea tapa toimia. Erinomainen web-kehityssivusto Webmonkey on täynnä opetusohjelmia eri web-ohjelmointikielistä. Katso heidän PHP-oppaansa aloittelijoille. Kun olet valmis, katso WebMonkeyn PHP- ja MySQL-oppaasta, miten PHP:n avulla voi keskustella tietokannan kanssa. PHP:n verkkodokumentaatio ja funktioviite on verkon paras. Jokaisen merkinnän (kuten tämän strlen-funktiota käsittelevän merkinnän) alareunassa on käyttäjien kommentteja, jotka ovat usein yhtä hyödyllisiä kuin itse dokumentaatio. (Satun olemaan puolueellinen PHP:n suhteen, mutta on paljon muitakin palvelinpuolen komentosarjakieliä, joita voit sen sijaan käyttää.)

Mainos

Web-kehykset: Vuosien varrella web-kehittäjät ovat joutuneet ratkaisemaan ja ratkaisemaan samoja ongelmia ja kirjoittamaan uudelleen samanlaista koodia rakentaakseen dynaamisia web-sivustoja. Jotta kaikkien ei tarvitsisi keksiä pyörää uudelleen jokaista uutta web-kehitysprojektia varten, jotkut ohjelmoijat ovat keksineet kehityskehyksiä, jotka tekevät osan toistuvasta työstä puolestasi. Esimerkiksi suosittu Ruby on Rails -kehys käyttää Ruby-ohjelmointikieltä ja tarjoaa verkkokohtaisen rakenteen tavallisten verkkosovellustehtävien hoitamiseen. Itse asiassa Adam käytti Railsia rakentaessaan ensimmäisen vakavan (ja vaikuttavan!) verkkosovelluksensa, MixTape.me:n. Tässä on hänen näkemyksensä siitä, miten rakentaa verkkosivusto tyhjästä ilman kokemusta. Muita suosittuja web-kehityskehyksiä ovat CakePHP (PHP-ohjelmoijille), Django (Python-ohjelmoijille) ja jQuery (JavaScriptille).

Mainos

Web APIs: API (Application programming interface, sovellusohjelmointirajapinta) on ohjelmallinen tapa, jolla eri ohjelmistot voivat keskustella keskenään. Jos esimerkiksi haluat laittaa dynaamisen kartan verkkosivuillesi, kannattaa käyttää Google Mapia sen sijaan, että rakentaisit oman mukautetun kartan. Google Maps API:n avulla on helppo sisällyttää kartta ohjelmallisesti sivulle JavaScriptin avulla. Lähes jokaisella tuntemallasi ja rakastamallasi nykyaikaisella verkkopalvelulla on API, jonka avulla voit sisällyttää sen tietoja ja widgettejä sovellukseesi, kuten Twitter, Facebook, Google Docs, Google Maps ja niin edelleen. Muiden verkkosovellusten integroiminen verkkosovellukseesi API:iden kautta on rikkaan verkkokehityksen viimeinen rajapyykki. Jokainen hyvä, merkittävä verkkopalvelun API tarjoaa perusteellisen dokumentaation ja jonkinlaisen pikaoppaan, jonka avulla sitä voi kokeilla (tässä on esimerkiksi Twitterin API). Go crazy.

Advertisement

Command Line Scripting

Jos haluat kirjoittaa ohjelman, joka ottaa teksti- tai tiedostosyötteen ja antaa tulokseksi jotakin käyttökelpoista, komentorivi on oikea paikka tehdä se. Vaikka komentorivi ei ole yhtä seksikäs tai hyvännäköinen kuin verkkosovellus tai työpöytäsovellus, prosesseja automatisoivien nopeiden skriptien nopeaan kehittämiseen sitä ei voi päihittää.

Mainos

Monet Linux-pohjaisella verkkopalvelimella toimivat skriptikielet toimivat myös komentorivillä, kuten Perl, Python ja PHP – yhden noista pahiksista opetteleminen tekee sinusta siis perehtyneen kahteen asiayhteyteen. Oma polkuni ei koskaan vienyt minua kovin pitkälle Perlin tielle, mutta opettelin itselleni Pythonin käyttämällä erinomaista ja ilmaista verkkokirjaa Dive into Python.

Advertisement

Jos Unix-ninjaksi tuleminen on yksi ohjelmointitavoitteistasi, sinun on ehdottomasti opeteltava hyvin komentosarjakomentosarjojen kirjoittaminen shell-skripteillä bashilla. Bash on *nix-ympäristön komentorivin komentosarjakomentokieli, ja sillä voi tehdä kaikkea mahdollista aina tietokantasi ja tiedostojesi automaattisten varmuuskopioiden laatimisesta käyttäjävuorovaikutteisen täysimittaisen sovelluksen rakentamiseen. Ilman minkäänlaista kokemusta bash-skriptien kirjoittamisesta yli tusina riviä, päädyin kehittämään täydellisen henkilökohtaisen tehtävälistan hallinnan bashilla, Todo.txt CLI.

Add-ons

Nykyaikaiset web-sovellukset ja selaimet ovat nykyään laajennettavissa niihin kiinnitettävillä ja ominaisuuksia lisäävillä ohjelmistopaloilla. Lisäosien kehittäminen kasvattaa suosiotaan, kun yhä useammat kehittäjät katsovat olemassa olevia ohjelmistoja, kuten Firefoxia tai WordPressiä, ja ajattelevat: ”Mutta jos se vain osaisi tehdä TÄTÄ…”

Advertisement

Millä tahansa selaimella voi tehdä vaikka mitä, kunhan hallitsee HTML:n, JavaScriptin ja CSS:n. Bookmarkletit, Greasemonkey-käyttäjäskriptit ja Stylish-käyttäjätyylit luodaan samoilla koodinpätkillä, joilla tehdään tavalliset verkkosivut, joten ne kannattaa opetella, vaikka haluaisit vain hienosäätää olemassa olevaa sivustoa pienellä koodinpätkällä.

Edistyneemmillä selaimen lisäosilla, kuten Firefox-laajennuksilla, voit tehdä enemmän. Esimerkiksi Firefox-laajennusten kehittäminen edellyttää, että hallitset JavaScriptin ja XML:n (HTML:n kaltainen, mutta paljon tiukemman muotoinen merkintä). Vuonna 2007 selvitin, miten Firefox-laajennuksen rakentaminen onnistuu, taidon, jonka omaksuin törmättyäni ilmaiseen opetusohjelmaan.

Mainos

Monet ilmaiset ja rakastetut verkkosovellukset tarjoavat myös laajennuskehyksen, kuten WordPress ja MediaWiki. Molemmat näistä sovelluksista on kirjoitettu PHP:llä, joten PHP:n käyttömukavuus on edellytys alkuun pääsemiselle. Tässä kerrotaan, miten WordPressiin kirjoitetaan laajennuskehys. Kehittäjät, jotka haluavat ratsastaa Google Waven kärjessä, voivat aloittaa vempaimien ja bottien kirjoittamisen HTML:llä, JavaScriptillä, Javalla ja Pythonilla. Kirjoitin ensimmäisen Wave-bottini tämän pikaohjeen mukaan yhdessä iltapäivässä.

Mainos

Web-kehitys työpöydälle

Parasta ohjelmoinnin aloittamisessa jossakin yhteydessä on se, että voit ottaa nämä taidot haltuusi ja soveltaa niitä muualla. Web-kehityksen opetteleminen ensin on hyvä tapa aloittaa, koska nyt on olemassa keinoja, joilla näitä taitoja voi hyödyntää myös työpöytäsovelluksissa. Esimerkiksi Adobe AIR on alustarajat ylittävä ajoympäristö, jonka avulla voit rakentaa sovelluksen kerran ja vapauttaa sen toimimaan työpöydällä jokaisessa käyttöjärjestelmässä, jossa AIR toimii. AIR-sovellukset kirjoitetaan HTML-, Flash- tai Flex-kielellä, joten voit soveltaa web-kehitystaitojasi työpöytäympäristössä. AIR on loistava vaihtoehto työpöytäsovellusten käyttöönotossa, kuten yksi parhaista 10 sovelluksestamme, joita varten kannattaa asentaa Adobe AIR.

Mainos

Mobiilisovelluskehitys

Mobiilisovellukset, kuten iPhonella tai Android-älypuhelimellasi ajettavat sovellukset, ovat tällä hetkellä muotia, joten saatat haaveilla rikastuvasi iTunesin App Storessa seuraavalla killer-sovelluksella. Uudelle koodaajalle mobiilikehitykseen sukeltaminen voi kuitenkin olla kova oppimiskäyrä, sillä se vaatii mukavuutta kehittyneiden ohjelmointikielten, kuten Javan ja Objective C:n, kanssa. Kannattaa kuitenkin tutustua siihen, miltä iPhone- ja Android-kehitys näyttää. Tutustu tähän yksinkertaiseen iPhone-sovelluskehitysesimerkkiin saadaksesi esimakua siitä, mitä iPhone-kehittäjät tekevät. Android-sovellukset kirjoitetaan Javalla, ja tässä on ystävällinen video-opastus siitä, miltä ”Hello Android” -sovelluksen työnkulun rakentaminen näyttää.

Mainos

Kärsivällisyyttä, kyynärpäätä, kokeilua ja erehdystä

Hyvät koodaajat ovat erikoislaatuinen rotu sinnikkäitä ongelmanratkaisijoita, jotka ovat kiintyneitä pitkällä kokeilun ja erehdyksen tiellä saavutettaviin pikkuvoittoihin. Ohjelmoinnin oppiminen on hyvin palkitsevaa, mutta se voi olla myös turhauttava ja yksinäinen kokemus. Jos voit, hanki kaveri, joka työskentelee kanssasi matkan varrella. Todella hyväksi ohjelmoinnissa, kuten missä tahansa muussakin asiassa, tulee pysyä mukana, kokeilla asioita ja hankkia kokemusta matkan varrella.

Mainos

Tämä artikkeli on vain yhden itseoppineen ohjelmoijan huippusuosituksia aloittelijoille. Kokeneet ohjelmoijat: Mitä minulta jäi huomaamatta? Olipa taitotasosi mikä tahansa, lisää kommentteihin ajatuksiasi ja suosituksiasi aloittelijoille.

Gina Trapani, Lifehackerin perustava päätoimittaja, on sitä mieltä, että parhaat ohjelmoijat ovat itseoppineita. Hänen viikoittainen artikkelinsa, Smarterware, ilmestyy joka keskiviikko Lifehackerissa. Tilaa Smarterware-tagin feed, niin saat uudet osat uutistenlukijaasi.

mainos

Jätä kommentti