¿Debería aprender C o C# primero?
C# oculta punteros (pero no deja de estar disponible) y el concepto de punteros es necesario para cualquier programador.
Aprender C# establecerá en tu mente ideas importantes como punteros, asignación de memoria, recursividad, diseño de algoritmos, etc., lo que hará que aprender cualquier idioma sea muy fácil.
La sintaxis de C# y el lenguaje C es casi intercambiable, excepto que C# está completamente orientado a objetos, mientras que el lenguaje C es procedimental.
Muchas cosas en C# se pueden asignar al lenguaje C. Por ejemplo, un delegado es similar a un puntero a una función, una estructura es equivalente a una definición de tipo, una clase es equivalente a un tipo*. Y la interfaz es un concepto completamente nuevo, que refleja un cierto cambio en el pensamiento de programación.
Por supuesto, si tu capacidad de comprensión es lo suficientemente fuerte, no es mala idea aprender C# desde cero...
Por supuesto, si tu capacidad de comprensión es lo suficientemente fuerte, No es mala idea aprender C# desde cero.