Il codice sorgente (spesso abbreviato sorgente) è un insieme di istruzioni appartenenti ad un determinato linguaggio di programmazione, utilizzato per costruire un programma per computer. A volte la distinzione tra istruzioni e dati è sottile o nulla, come nel lisp, in altri linguaggi è invece molto marcata, ad esempio in eiffel o smalltalk.
Per estensione, si chiama codice sorgente anche l'insieme di istruzioni di linguaggi quali ad esempio HTML, XML. Questi sono generalmente chiamati linguaggi di formattazione ed il relativo codice sorgente viene trattato in modo diverso da quello dei linguaggi di programmazione. Per esempio, il codice HTML viene letto ed interpretato da un browser per visualizzare il contenuto di una pagina web, mentre il codice XML può essere interpretato tramite API SAX o DOM per l'accesso strutturato alle informazioni riguardanti una determinata entità.
Lo scopo del codice sorgente di un linguaggio di programmazione, invece, è quello di essere eseguito, cioè di far compiere al computer le azioni descritte nel codice sorgente. Questo viene fatto in modo diverso a seconda che il linguaggio sia interpretato o compilato. Il codice sorgente di un linguaggio di programmazione interpretato viene letto, interpretato ed eseguito da un interprete del relativo linguaggio. In un linguaggio di programmazione compilato, invece, il codice sorgente, attraverso diverse fasi, viene trasformato in un file eseguibile. Le fasi che portano da un codice sorgente ad un file eseguibile vengono solitamente suddivise tra vari strumenti, a grandi linee: il preprocessore, il compilatore e il linker.