Ohjelmointikieltä käyttäen ohjelman kirjoittaminen on tekstin kirjoittamista: Kirjoitetaan haluttu ohjelmateksti jollain tekstieditorilla ja tallennetaan se tiedostoon. Tallennettaessa tiedostolle annetaan jokin nimi. Tiedostonimen alkuosaksi (nimiosa) keksitään joku ohjelman toimintaa kuvaava sana tai lyhenne. Käytetty tarkennin riippuu ohjelmointikielestä ja ohjelmointiympäristöstä. Esimerkiksi, DOS/Windows-ympäristössä C++-kielistä ohjelmaa tallennettaessa käytetään tarkenninta CPP. Kirjoitettua tekstimuotoista ohjelmaa sanotaan lähdekieliseksi ohjelmaksi.
Seuraavaksi käännetään lähdekielinen ohjelma tai ohjelman osat (modulit) kääntäjällä konekielisiksi käskyiksi. Tuloksena on objektitiedosto, jonka tarkentimena DOS/Windows-ympäristössä on OBJ. Objektitiedosto (tai -tiedostot) annetaan syöttötietona linkittäjälle, joka muodostaa siitä suorituskelpoisen ohjelman liittäen samalla mukaan tarvittavat osat eri aliohjelmakirjastoista. Suorituskelpoisen ohjelman tarkentimena DOS/Windows-ympäristössä on EXE (tai joskus COM).
Usein kaikki edellä mainitut vaiheet (kirjoittaminen, kääntäminen, linkittäminen) voidaan tehdä yhdellä ja samalla työkalulla. Sanotaan, että käytössä on integroitu ohjelmointiympäristö. Tällä kurssilla käytettävä Borland C++-kääntäjä on juuri tällainen integroitu ohjelmointityökalu.
Ohjelmointityökalut sisältävät yleensä myös joitain ohjelmointityön apuvälineitä. Esimerkiksi debuggeri eli virheenjäljitin on hyödyllinen käytännön apuväline. Nimittäin ohjelmia kirjoitettaessa on tavallista, että koodiin tulee myös virheitä. Tällaisia ovat
Virheitä ei kannata pelästyä, niitä tulee ohjelmoinnissa jokaiselle. Pienet ohjelmat on ainakin periaatteessa mahdollista kirjoittaa kerralla oikein, mutta suuremmissa ohjelmakokonaisuuksissa virheiden havaitseminen ja löytäminen on merkittävä osa ohjelmointityötä.
Ohjelmankehityksen eri vaiheet (esim. C++-kielinen ohjelma DOS/Windows-ympäristössä) ovat siis: