Paten perangkat lunak
FOLDOC mendefinisikan paten perangkat lunak sebagai "paten yang dimaksudkan untuk menghalangi orang lain untuk menggunakan suatu teknik pemrograman". Namun definisi ini belum diterima secara universal.
Pemrograman
Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan ketiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi saat dijalankan ("run time") atau memori yang digunakan.