Tanto con C como con C++ puedes hacer una infinidad de programas de prácticamente cualquier tipo pero es cierto que profesionalmente C se utiliza mucho en sistemas operativos, servicios, etc. C se suele denominar un lenguaje de nivel medio (tiene características tanto de alto nivel como de bajo nivel) lo que permite desarrollar con mucho detalle a nivel físico (incluso incluir lenguaje ensamblador en el propio código C) y generar un código muy eficiente comparado con lenguajes de más alto nivel (Java, C#, Python,...)
Al final C se queda muy limitado al utilizar paradigmas de programación orientada a objetos (POO) por lo que aquí entra C++. Brevemente se puede decir que es una extensión de C con clases. C++ admite todo lo que admite C más lo creado para C++. Se puede decir que ya es de alto nivel aunque permite programar a bajo nivel también.
Yo empecé con ellos y no me arrepiento. ¿Fácil? No, no será. Si buscas facilidad y una curva de aprendizaje alta (grandes resultados en poco tiempo), C/C++ no son tus lenguajes. Java o C# serán mejores lenguajes para ese fin. Si buscas o te gusta saber cómo funciona todo en profundidad y que nada se escape a tu control, entonces sí, C/C++ serán unos buenos lenguajes para ti.
Los lenguajes de más alto nivel se podría decir que te dan el trabajo hecho. Para que lo entiendas, un ejemplo. Estás haciendo un programa y necesitas hacer x cosa...
- ¿Utilizas Java o C#? Seguro que ya tienen una función que hace eso. Investiga, encuentra esa función, lee su documentación, aprende cómo funciona y utilízala. ¿Cómo lo hace? Ni idea. En la mayoría de casos ni lo sabrás ni te pararás a investigarlo pero ya tienes tu tarea hecha.
- ¿Utilizas C o C++? No busques esa función. Hazla tú. ¿Lleva más tiempo? Seguramente. ¿Cómo lo hace? Como tú quieras hacerlo. Cualquier tarea se puede programar de forma diferente y tú tendrás la tuya según tu forma de pensar. Igual no es la mejor solución pero es tuya, sabes cómo funciona al detalle y la puedes ir modificando/mejorando.
Obviamente en C y en C++ también hay funciones hechas, igual que también puedes hacer las tuyas propias en Java o C# pero digamos que es para que tengas una idea de lo que significa programar con unos lenguajes u otros.
PD: Si quieres hacer programas con interfaz gráfica personalmente te recomendaría C# con WPF. Para otros fines como programas de consola, algoritmia, estudio de eficiencia... te animaría a probar C o C++. Al fin y al cabo empezar a probar un lenguaje no significa que no puedas aprender después otros.
