Il coding si basa sul formulare soluzioni a problemi nello stesso modo in cui “pensa” una macchina: la soluzione deve essere scomposta in passi semplici, quelli che dovrebbe seguire un “esecutore” (il computer!) che ha bisogno di istruzioni precise, solitamente prese da un linguaggio di comandi molto ristretto. L’esecutore infatti non comprende il linguaggio naturale e non usa informazioni di contesto: sa solo interpretare e ripetere istruzioni di base (es. incrementa di uno, memorizza il valore, controlla se è uguale a zero, ecc...). La programmazione dell’esecutore richiede quindi la decomposizione di problemi complessi in sotto-problemi più semplici; questa non è un’attività che “banalizza i problemi”, al contrario aiuta a sviluppare le proprie competenze logiche in modo da affinare la propria capacità di risoluzione dei problemi in modo rigoroso, efficiente e creativo.