Stai essenzialmente chiedendo come progettare programmi. Si scopre che c'è un libro che ti insegna che, e si chiama ... Come progettare programmi (aka HtDP ). Ti insegna, bene, come progettare programmi. E lo fa dando le ricette da seguire per analizzare i problemi, risolverli, trasformarli in algoritmi e in programmi di lavoro.
Si noti che la "ricetta" è fondamentalmente un'altra parola per "programma", quindi in altre parole, il libro insegna ai programmi che gli umani devono girare nella loro testa per generare programmi che devono essere eseguiti dai computer. Quant'è fico? : -)
Gli autori stanno attualmente lavorando a una bozza per una seconda edizione di HtDP , che potresti voler leggere invece della prima edizione. Il materiale sulla programmazione imperativa è stato rimosso e verrà trattato nel secondo volume non ancora scritto Come progettare i componenti , ma puoi leggere quei capitoli mancanti dalla prima edizione.
Nota che l'HtDP non ha conoscenze di programmazione e si rivolge agli studenti delle scuole superiori. Ma non lasciare che questo ti fermi: significa solo che probabilmente sarai in grado di finire alcuni primi capitoli più velocemente, ma non penso che ti annoierai.
Le Abstractions concrete sono anche una buona lettura lungo le vene simili. Come HtDP, non presuppone alcuna conoscenza di programmazione.
Un altro libro che potresti sentire menzionato è Struttura e interpretazione dei programmi per computer aka SICP. È uno dei più grandi libri di programmazione mai scritti e, ancora una volta, non presuppone alcuna conoscenza di programmazione.
È è , tuttavia, orientato a completare i neofiti che studiano al MIT . E così, mentre non presuppone alcuna conoscenza di programmazione, fa assume un bel po 'di conoscenza dominio , ad es. nei campi dell'ingegneria elettrica, della fisica e della matematica. Nota: questi non hanno nulla a che fare con i concetti che vengono insegnati, sono solo necessari per comprendere gli esercizi e esempi . Quindi, potrebbe essere meglio leggere prima HtDP o Concrete Abstractions e poi leggere SICP.