Alapvetően a fejlesztéshez három dologra van szüksége a programozónak. Egy editorra, egy fordítóra és egy linkerre. A forrásfájlokat egyenként lefordítjuk tárgykódra, majd a tárgykódokból a linker segítségével előállítjuk a futtatható állományt. Ez azonban igen időigényes folyamat, ezért ennek megkönnyítésére számos eszköz áll rendelkezésre. Ezen felül az idő folyamán a számos új típusú eszköz is megjelent, ami nem csak a fordítás és a szerkesztés menetét könnyítik meg. Segítenek a hibakeresésben, a lassú kódrészletek megtalálásában, a grafikus felület megtervezésében vagy akár a kód statikus elemzésében. Ugyanakkor sok különböző program felhasználása egy folyamathoz hosszadalmas és macerás tud lenni, ezért számos eszköz "összecsomagolásából", és egységesítéséből létrejöttek az integrált fejlesztői környezetek (IDE), amiknek a célja, hogy minél több terhet levegyen a programozó válláról, ezáltal produktív legyen.