@ramtrack, ma dai!! La macchina di Turing (TM-Turing Machine)?
Diciamo una versione mooolto piu' semplice ed utile: gli automi a stati finiti (FA-Finite Automata, praticamente la TM, ma in versione mooolto piu' comprensibile )
Questo perche' con FA ci puoi fare un bel po' di cose: dalle espressioni regolari, al parsing di una stringa di caratteri, alla modellazione degli "stati" di un'applicazione, come le app, ecc
Per quanto riguarda il C++: il problema FONDAMENTALE del C & C++ e' la gestione della memoria (area decisamente 'complicata'), cosa che non serve conoscere nei dettagli in linguaggi basati su garbage collector. Questo NON VUOL DIRE che C++ non si possa imparare, ma conoscere un linguaggio CONCETTUALMENTE simile ridurrebbe notevolmente la difficolta' di comprensione del C/C++.
E' come dire: invece di saltare direttamente dal trampolino di 75m, si inizia con quello da 45m per farsi le ossa e POI passare a quello da 75m, sapendo gia' come saltare , anche se ci sono dei dettagli "specifici"
https://it.wikipedia.org/wiki/Eddie_the_Eagle_-_Il_coraggio_della_follia
Comunque, SI, inizialmente e' NECCESSARIO sbattere la testa contro il muro per comprendere i concetti fondamentali. Le scorciatoie sono inutili. Meglio perdere una settimana o un mese per capire DA SOLI perche' un algoritmo stupido non funziona, che trovare qualcuno ce ti dica 'hai sbagliato li'. Questo perche' sapere dove c'e' l'errore NON RISOLVE il problema di CAPIRE perche' si e' fatto quel errore. Se ci si arriva da soli, si e' in grado di evitare l'errore e tutti gli errori simili.