Il linguaggio C è ottimo in alcuni contesti e pessimo in altri. Se il tuo obiettivo è imparare a programmare allora ci sono tante alternative al C, tutte migliori in quanto meno low-level e più didattiche.
Nella maggior parte dei casi non ha senso sviluppare applicazioni di rete direttamente con i socket, ci sono ottime librerie high-level che ti consentono di concentrare la tua attenzioni sullo sviluppo dei protocolli e dell'applicazione e non su complessi dettagli a basso livello (che si portano dietro bug quasi inevitabili).
Nel caso del C gli esercizi "aritmetici" non sono inutili, perché servono a mostrarti caratteristiche tipiche del linguaggio. Se ti sembrano inutili allora stai saltanto le basi che tanto ti stanno care...
Cosa vuoi sviluppare?