Questa è una domanda molto ampia, ma cercherò di rispondere all'interpretazione più elementare di essa. Quindi, per capire come si fa un programma, dobbiamo prima sapere perché deve essere fatto. Un programma per computer di solito tenta di risolvere un problema, e questo è il suo scopo, ed è il motivo per cui in molti contesti, un progetto, o un insieme di progetti, sono spesso indicati come una 'soluzione'.
Quindi, per risolvere un problema, si deve identificare un problema, e si deve mettere insieme una soluzione fattibile. Ora, per mettere insieme una soluzione efficace ad un problema, dobbiamo sapere, ad un livello base, come funziona un computer - cioè cosa definisce un computer. In quello che è conosciuto come il 'modello Von Neumann', un computer è definito come una macchina che riceve una forma di input, è in grado di elaborare quell'input, può dare un output basato sul modo in cui l'input è stato elaborato, e ha una qualche forma di memorizzazione (a breve o lungo termine) per immagazzinare le informazioni necessarie.
Ora che sappiamo cosa definisce un computer, e abbiamo identificato un problema, possiamo dividere il problema in blocchi di base (parti separate, se volete) e poi progettare diagrammi che rappresentano, passo dopo passo, una soluzione a quella particolare parte del problema. Questo è tipicamente fatto usando quello che è chiamato un diagramma di flusso (un grafico che visualizza il processo di realizzazione di qualcosa). Il diagramma di flusso indica quale parte del modello di Von Neumann sarà usata in ogni passo (ad esempio passo 1: chiedere all'utente un input , passo 2: prendere l'input dall'utente , passo 3: memorizzare l'input dell'utente nella memoria a breve termine , passo 4: chiedere all'utente un altro input , passo 5: prendere l'input dall'utente passo 6: memorizzare l'input dell'utente nella memoria a breve termine passo 7: moltiplicare l'input1 per l'input2 , passo 8: visualizzare la risposta sullo schermo ). Si noti che fino a questo punto non c'è ancora codice, ma un diagramma di flusso può essere facilmente convertito in codice una volta adeguatamente progettato.
In seguito, viene selezionato un linguaggio di programmazione (o una combinazione di essi) - si noti che ce ne sono molti tra cui scegliere - che potrebbe svolgere al meglio il lavoro, e i diagrammi di flusso e i diagrammi vengono poi tradotti in codice nel linguaggio scelto. Il codice è solitamente scritto in un editor di testo (standalone o parte di un più grande ambiente di sviluppo integrato - IDE) e poi compilato (tradotto) in codice macchina, che è codice che la macchina può eseguire. Ed è da qui che provengono i programmi! Per mantenere questa risposta breve, fornirò un esempio come richiesto. Spero che questo aiuti!