La conoscenza delle nozioni di base e matematiche è importante: i sistemi di numerazione, in particolare quelli binario e esadecimale, la codifica delle informazioni, l'algebra booleana e le relative proprietà, le funzioni :sisi:
Conoscere le caratteristiche generali di un S.O. e le architetture di rete può essere utile :)
Per quanto riguarda la progettazione degli algoritmi, ti suggerirei, se non lo avessi già fatto, di dare un'occhiata al link postato da @
Mursey ("Iniziare a programmare da zero"), in cui troverai alcuni "articoletti" sul passaggio dal "problema all'algoritmo" e poi "dall'algoritmo al programma", da me linkati :sisilui:
Fammi sapere cosa ne pensi, eventualmente possiamo discuterne :sisi:
A presto :ciaociao: