L'avantage de GNU/Linux et des programmes libres, c'est que le code est accessible, et souvent dans les deux sens du terme. La plupart des DE, WM ou applis que tu utilise tous les jours sont codés dans des langages de haut niveau (ou pas forcément, mais quand même accessibles), donc c'est relativement facile à modifier à tes besoins.
Si tu veux être capable de comprendre et modifier le plus de trucs, apprend le C, non seulement c'est une excellente base mais en plus énormément de programmes (et le noyau Linux, par exemple) sont écris en C 