Bon, pour répondre à ta question, ça dépend.(d,ailleurs, c´est du C ou du C++ que tu parle?)
Le language UNIX comme tu l´appelle est en fait le language des plateformes UNIX comme Linux, Mac Os X et les pur UNIX, comme le MS-DOS est pour le Windows ou le DOS.
Le C est un language de programmation êtremement puissant, reconnu pour être complexe(hélas) lorsqu´on qu´on s´enfonce. Mais grattant à la surface, c´est ironiquement drolement simple.
Le C++ est une bête. Il est un C amélioré, dotée de la POO(Programation Orienté Objet), qu´il le rent monstrueux et ultra-puissant. Et qui dit puissance ajoutée, dit complexité ajouté. Déja qu´a la base le language est réputé pour être illisible(enfin presque)...
Oui, il faut de bonnes notions de math.
Oui, c´est dur
Oui, c´est chiant, surtout lorsque tu débute et que tu as tes premiers débuggages.
Ah, aussi, il est vrai qu´au début, surtout lorsqu´on se bourre le crane avec des rammassis le formules dont 1/100 nous sera utile a la fin au lieu de programmer, c´est sérieusement emmerdant à mort