Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla
Ennen tallennusta suositellaan ottamaan kopio muokkausruudusta (ctrl-a -> ctrl-c)
Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.
Ohjelmointi
Ohjelmoinnissa ohjelmoija kirjoittaa haluamansa komennot peräkkäin tietokkoneen suoritettavaksi. Ohjelmia voi kirjoittaa esim. tekstieditorilla (esim. muistio), ohjelmointieditorilla (sisältää syntaksin korostuksen, esim. Notepad++ tai Sublime Text 2) tai ohjelmointiympäristön editorilla. Tietokone on sinänsä fiksu kampe, että se tekee juuri täsmälleen niin kuin on käsketty. Joten yleensä kun kuulee sanottavan että 'tietokone ei toimi', se tarkoittaa että käyttäjä ei ymmärrä mitä tietokone tarkoittaa. Näin saattaa käydä silloin, jos käyttäjä käyttää ohjelmaa toisin kuin mitä ohjelmoija on ajatellut (testaus ja määrittely) tai että ohjelmoija on olettanut käyttäjän tietävän jonkin asian, jota käyttäjä ei tiedäkkään (käytettävyyssuunnittelu). Tämän lisäksi on toki olemassa bugeja ohjelmissa sekä laitteistovikoja, mutta nämä ovat aika pieni osa kaikista 'vioista'.
Nykypäivänä ohjelmointi usein tapahtuu jonkun ohjelmointiympäristön kautta. Ohjelmointiympäristö on tarkoitusta varten suunniteltu ohjelma, joka auttaa ohjelmoijaa rutiiniluontoisissa tehtävissä, ohjelmaa kirjoitettaessa. Ohjelmnointiympäristöt eivät suinkaan tarkoita, että ohjelmoijan ei tarvitsisi osata ohjelmoinnin perustetita, päin vastoin. Ohjelmointiympäristöä käytettäessä ohjelmoija yleensä keskittyy vain tiettyyn osaan ohjelmasta, jolloin paljon mutta jää 'piiloon' ympäristön sisään, jolloin dokumentoinnin ja ohjelmointikäytänteiden ymmärtäminen korostuu. Esimerkiksi ohjelmistoyrityksessä kehitettävän ohjelman tietty osa, eli ominaisuus, on voitu antaa tehtäväksi yhdelle ohjelmoijalle. Tällöin ohjelmoija kirjoittaa suunnitelman mukaisesti muihin ohjelman kirjastoihin yhteensopivan uuden kirjaston ja sen sisältämät luokat (eli metodeja ja parametrejä), jotka sisältävät kyseisen ominaisuuden vaatimat toiminnot.
Jokaisen ohjelmoijan on kuitenkin aloitettava perusteista. Alla on joitain resursseja, jotka voivat avittaa alkuun pääsemistä ohjelmointiharrastuksessasi tai -urassasi.
Erilaisia ohjelmointikieliä[muokkaa]
- Basic Beginner's All-purpose Symbolic Instruction Code vuodelta 1964.
- Visual Basic
- Assembly tai assembler Lähellä konelieltä oleva ohejlmointikieli.
- Lisp Funktionaalisen ohjelmoinnin yksi tunnetuimpia ohjelmointikieliä.
- C-kieli, C++ Proseduraalisen ohjelmoinnin peruskieliä. Unix ja käyttöjärjestelmäydinten maailmassa suosittu.
- C# (lausutaan: C sharp) C- kieleen pohjautuva ohejlmointikieli.
- Objective-C Applen käyttämä c- kielen johdannaninen.
- PHP Web palvelimien perinteinen ohjelmointilieli.
- Java Työpöytä- ja web-sovelluksissa sekä android -käyttöjärjestelmän käyttämä ohjelmointikieli.
- Python Työpöytäkäytössä skriptauskielenä tunnettu ohjelmointikieli. Monet suosittelevat Pythonia ensimmäiseksi ohjelmointikieleksi sen yksinkertaisen syntaksin ja korkean tason tietorakenteiden ansiosta. Kuitenkin, esim. dynaaminen tyypitys tai lauseen päätösmerkkien puuttuminen saattaa aiheuttaa päänvaivaa myöhemmissä vaiheissa. Käytetään myös mm. Django palvelinohjelmistossa.
- JavaScript Web sivujen toiminnallusuus on usein toteutettu javaScriptillä. Käytetään myös mm. Node.JS palvelinohjelmistossa.
- Ruby Käytetään mm. Ruby on Rails palvelinohjelmistossa.
Lisätietoa ohjelmointikielistä Wikipedian puolella.
Muita netin 'merkintäkieliä'[muokkaa]
- HTML Web sivujen merkintäkieli (sisältö).
- CSS Web sivujen muotoilukieli.
- VBA Microsoft Excelin makroja laajentava 'ohjelmointikieli'.
- Wiki-merkintäkieli Yksinkertaistettu versio HTML -kielestä wikien käyttöön.
- BBCode Keskustelupalstojen merkintäkieli.
Millä ohjelmointikielellä aloittaisin?[muokkaa]
Lähes kaikilla ohjelmointikielillä perusteet ovat samat ja eroja on lähinnä syntaksissa ja saatavilla olevissa kirjastoissa. Jos haluat perehtyä ohjelmointiin ja sinulla ei ole erityistä kohdetta tiedossa, suositelluimpia kieliä ovat Python ja Java. Jos tiedät mihin tarkoitukseen ohjelmia aiot kirjoittaa, alta luettelosta voit katsoa ohjelmointikielen yleisimmille tarkoituksille.
- PC työpöytäohjelmia Windowsille tai Linuksille: C++
- Työpöytäohjelmia MAC:ille tai mobiilisovelluksia iOS:lle: C#
- Android -mobiilisovelluksia: Java
- Skriptejä (pieniä ohjelmapalasia pikkutehtäviin): Python
- Nettisivuja: HTML(5), JavaScript ja CSS
- Nettipalvelinohjelmistoja: PHP tai Ruby
Lisää ohjelmoinnista[muokkaa]
Wikikon ohjelmointisivuja[muokkaa]
Kirjoja[muokkaa]
- http://greenteapress.com/wp/think-python/ Python ohjelmoinnin opas aloitetlijoille (Englanninkielinen)
- http://inventwithpython.com/index.html Python ohjelmointiin keskittynyt ilmainen kirjasarja (Englanninkielinen)
Muita nettisivuja[muokkaa]
- http://www.ohjelmointiputka.net/ Suomalaisten ohjelmoijien kokoontumispaikka.
- http://mooc.fi/ Korkeakoulu kotonasi
- www.avoinyliopisto.fi/ Suomen yliopistojen kaikille avoin opetus, hakusanalla: Ohjelmointi. (Katso kursseja: etäopinnot)
- www.coursera.org Ulkomaisten yliopistojen verkkokurssit ohjelmoinnista. Osa kursseista saattaa olla maksullisia.
- https://www.khanacademy.org/computing/computer-programming KhanAcademyn ohjelmointiosio. Englanninkielisiä verkkotehtäviä ohjelmoinnin alalta.
- https://codecombat.com/ Selainpeli joka opettaa ohjelmoimaan. Peruskäytössä ilmainen.
- https://code.google.com/codejam/contests.html Googlen vuosittaisen ohjelmnointikisan tehtäviä. Menneiden vuosien esikarsintatehtävät ovat kohtuullisen helppoja jopa aloittelijalle, mutta finaalitehtävät vaativat jo kokemusta alalta sekä tiettyjen algoritmien tuntemusta
- https://projecteuler.net/ Matemaattisia / algoritmisia haasteita.
Ohjelmistoprojektin vaiheista[muokkaa]
Projektin aloittaminen[muokkaa]
- Suunnittelu
- Hallinnointi
Määrittely[muokkaa]
- Vaatimukset
Suunnittelu[muokkaa]
- Prototyypit
- Käyttöliittymän suunnittelu
Ohjelmointi[muokkaa]
- Ohjelman kirjoittaminen
- aliohjelmina osa kerrallaan varmistaen niiden toiminnan
- Tietokannat
- Poikkeustenkäsittely
- ohjelman jatkaminen virheen tapahduttua tai hallittu lopetus
Testaus[muokkaa]
- Oikeelllisuus ja virheettömyys
- Debuggaus
- kirjoitusvirheet, ohjelmointivirheet, määrittelyvirheet
Dokumentointi[muokkaa]
- Käyttäjälle
- Lähdekoodi
- Tekniset: asennus, mukauttaminen, päivitys
Ylläpito[muokkaa]
- Suoritusympäristön muutokset
- Löytyneiden virheiden korjaukset, päivitykset
Kehitys[muokkaa]
- Uudet toiminnot
- Uudet laitealustat
- Muuttuneet käyttäjävaatimukset