Yleinen ohjelmointi on suosittu tietokoneohjelmointityyppi, joka on kirjoitettu siten, että se luo mahdollisimman tehokkaan koodin ja sallii koodin soveltua mahdollisimman moniin tilanteisiin ilman muutoksia alkuperäiseen koodiin. Kun koodi on kirjoitettu, se voi suorittaa vain ne tehtävät, joille se on kirjoitettu. Käyttämällä yleistä ohjelmointia luodakseen koodeja, jotka toimivat useissa eri tilanteissa samalla kun he suorittavat saman perustoiminnon, ohjelmoijat voivat käyttää yksittäistä koodia eri ohjelmissa tekemättä muutoksia alkuperäiseen.
Yleinen ohjelmointi debytoi 1970 -luvulla Ada- ja CLU -ohjelmointikielillä. Pian tämän jälkeen muut ohjelmointikielet, kuten Java ja C ++, alkoivat käyttää yleistä ohjelmointia ohjelmointikoodin yksinkertaistamiseksi sallien samalla koodin käytön useissa skenaarioissa. Jokaisella ohjelmointikielellä on erityinen tapa käyttää tätä koodia ja erilaisia termejä sen kuvaamiseen. “Yleisiä”, “malleja” ja “parametroituja tyyppejä” on käytetty jossain vaiheessa viittaamaan yleiseen ohjelmointiin.
Tämän tyyppisen ohjelmoinnin ymmärtämiseksi on tärkeää tietää ohjelmointikielen toiminnan peruskäsitteet. Jos esimerkiksi Paavali haluaa kirjoittaa ohjelman, joka lisää kaksi numeroa yhteen, hän kirjoittaisi tietokoneen koodin lisätäkseen kaksi objektia. Sitten hän kertoi tietokoneelle, että nämä kaksi esinettä ovat numeroita ja että lopullisen vastauksen tulisi olla myös luku.
Vaikka ohjelma toimii niin kauan kuin Paul lisää kaksi numeroa, se kaatuu, jos hän yrittää lisätä jotain muuta yhteen. Jos Paavali päättäisi yhdistää virkkeet yhteen kappaleen muodostamiseksi, ohjelma kaatuisi, koska se löytäisi kirjaimia eikä numeroita. Paavali voisi kuitenkin korjata tämän ongelman käyttämällä yleistä ohjelmointia kertomaan alkuperäiselle ohjelmalle hyväksymään useita muuttujia – sekä numeroita että kirjaimia – ja siten ohjelma voisi luoda lauseita tai suorittaa lisäyksiä.
Kaikki ohjelmointikielet eivät tarvitse yleisen ohjelmoinnin käsitettä, jotta ne olisivat tehokkaita. Ne, jotka käyttävät sitä, ovat staattisesti kirjoitettuja kieliä. Tämä tarkoittaa yksinkertaisesti sitä, että koodi on niin sanottu kiviin, eikä sitä voi muuttaa ohjelman ollessa käynnissä. Tästä syystä, jos ohjelmoija määritteli, että käyttäjän syöttö olisi kirjaimia ja käyttäjä kirjoittaisi numeron, ohjelma ei voisi käyttää syötettä. Ohjelmoijat yrittävät siis ennakoida kaikki loogiset tietotyypit, joita käyttäjä voi syöttää, olivatpa ne sitten numeroita, kirjaimia tai symboleja, ja luoda ohjelman, joka voi säätää sen mukaan.