Korkean tason ohjelmointiin kuuluu tietokoneohjelman kirjoittaminen kielellä, joka estää ohjelmoijan joutumasta käsittelemään suoraan ohjelmoitavan tietokoneen laitteistoa. Tämän abstraktion avulla ohjelmoija voi keskittyä enemmän ohjelman suunnitteluun, kulkuun ja toimivuuteen ja vähemmän järjestelmän perusresurssien järjestämiseen näiden tavoitteiden saavuttamiseksi. Korkean tason ohjelmointikieli voi käsitellä muistin hallintaa tai syöttöä ja lähtöä tavalla, joka ohjelmoijan tarvitsee vain ymmärtää käsitteen eikä tietyn järjestelmän laitteistokohtaisia ominaisuuksia. Toisin kuin korkean tason ohjelmointi on matalan tason ohjelmointia, jossa kirjoitettu tietokoodi ja tietokoneen suorittamat toiminnot erotetaan toisistaan vain vähän tai ei lainkaan.
Korkean tason ohjelmointikielten kehittäminen oli vastaus ihmisten luettavien lähdekooditiedostojen tarpeeseen, jotka voitaisiin helposti ymmärtää ja muokata. Käyttämällä luonnollisia kieliratkaisuja korkean tason lähdekoodista tulee paljon luettavampi kuin kokoonpanokieli tai muut konekielet. Tietokoneohjelmien koon edetessä käytännöllisyys kirjoittaa kokonaisia ohjelmia matalan tason kielillä oli mahdotonta.
Vastineeksi ohjelmoinnista ihmiselle luettavalla kielellä, joka ei vaadi alhaista laitteistotietoa, on olemassa käsite, joka tunnetaan abstraktiorangaistuksena. Tämä kuvaa lisääntyneitä prosessointitehon, muistin käytön ja muun tyyppisiä yleiskustannuksia, joita tarvitaan lopullisen ohjelman suorittamiseen. Tämä pätee erityisesti tulkittuihin kieliin, joiden on suoritettava tulkki ohjelman suorittamiseksi, mikä edellyttää olennaisesti kahden sovelluksen suorittamista samanaikaisesti.
Käännetyt kielet ovat korkean tason ohjelmointikieliä, joilla luettavat lähdetiedostot muutetaan konekoodiksi, jota tietokone voi lukea. Vaikka käännetty kieli kärsii vähemmän abstraktiorangaistuksesta kuin tulkittu kieli, se luottaa silti valmiiksi koottuihin kirjastoihin ja automaattisiin kääntäjätoimintoihin. Nämä elementit voivat vahingoittaa monimutkaisen ohjelman optimointia, jossa suorituskyky on elintärkeää.
Korkean tason ohjelmointikielten käyttö on myös helpottanut käyttäjäystävällistä ohjelmointia. Tätä helpottaa se, että useimpien korkean tason kielten käyttöliittymään on helppo lisätä standardoituja elementtejä. Sen sijaan, että kehitettäisiin mukautettua koodia ikkunajärjestelmälle tai käyttöliittymäpainikkeelle joka kerta, kun sitä tarvitaan, tutut elementit voidaan helposti sijoittaa käyttöliittymään, jossa on vain muutama koodirivi. Tämä mahdollistaa ohjelmat, jotka loppukäyttäjät voivat oppia helpommin tai jotka ovat heti tuttuja.
Termin “korkeatasoinen ohjelmointi” käyttö on suhteessa ohjelmoijan kokemukseen. Joitakin välittäjäkieliä pidettiin aiemmin matalan tason, mutta nyt ei. Samoin jotkut korkean tason kielet jakavat näkökohtia matalan tason kielten kanssa, mikä hämärtää niiden välistä rajaa.