¿Es C un lenguaje de programación práctico en la industria de TI actual?

Eche un vistazo a: ¿Qué lenguajes de programación debería tener un programador moderno en su arsenal? y te darás cuenta de que la mayoría de las respuestas incluyen C como uno de los idiomas que debes aprender.

Aquí hay razones por las que:

  • La mayoría de los lenguajes se implementan en última instancia en C (en la capa más baja). Entonces, para entender lo que realmente está haciendo su computadora, necesita saber C.
  • No tiene otra opción si está escribiendo el código del kernel, los controladores de dispositivo u otras cosas de bajo nivel; tiene que hacerse en C (en la mayoría de los casos)
  • En muchos de los lenguajes de alto nivel (como Python, Perl, Ruby, Java de Android) cuando necesita optimizar el rendimiento, reescribe las partes más críticas en C.
  • Tu trabajo en la universidad no es aprender “idiomas”. Es para aprender informática, y programación. Estructuras de datos, algoritmos, escritura de buen código: programación estructurada y modular, buenas prácticas de ingeniería de software, convertir un problema de la vida real vagamente definido en una especificación de programa, dividir una especificación de programa en un diseño de programa, dividir un problema en partes que pueden resuélvase, depure, sepa dónde buscar respuestas cuando se atasca, sepa cómo separar la información útil de la papelera en las búsquedas de Google; todo esto es mucho más importante que el idioma que aprende.
  • Su principal objetivo es que la universidad no sea conseguir un empleo, sino obtener una educación. Quieres aprender a ser un buen informático y un buen programador. No haga que su trabajo y las condiciones actuales del mercado sean la base de sus decisiones. Lo que está “caliente” en el mercado laboral actual cambia cada 5 años.

Hola amigo, soy un profesional de seguridad y trabajo con Java, perl, php, sql, etc. Pero sigo usando C y me encanta usarlo siempre que sea posible. Saber C es muy importante para ti ya que eres un estudiante de CS.
Básicamente, C es como un lenguaje base, la base para aprender muchos lenguajes de alto nivel como C ++ o C #. Necesitas tener tu base de roca sólida.

El lenguaje C incluye básicamente todos los detalles fundamentales y la aplicación de todas las secuencias de temas, incluidas nuestras rutinas de la vida diaria a través de las aplicaciones (como los temas como NAP [análisis numérico y programación] y muchos más …………). El lenguaje C puede ser más útil para comprender los conceptos de procesamiento de imágenes en los próximos semestres y el importante concepto de OpenGl y gráficos de computadora (no conozco su programa de estudios, pero puede que tenga temas relacionados).
C te hace entender conceptos muy básicos como bucles, funciones, arreglos, etc.

Acerca del trabajo, incluso si aprende el idioma más avanzado, no es elegible para un trabajo a menos que sepa cómo aplicarlo. Así que aprenda a implementar los algoritmos. Puede comenzar con C y luego mejorar sus habilidades dominando otros idiomas de acuerdo a sus necesidades. Suponiendo que no conoce ningún lenguaje de programación, C proporcionará la plataforma adecuada para comprender el concepto de lenguaje de programación y una vez que haya aprendido este lenguaje, le resultará fácil comprender otros idiomas.
Busca tutoriales en línea en C. Encontrarás muchos de ellos.
Todo lo mejor..

Tu padre puede tener razón dependiendo de la dirección que tome tu carrera. Pero hay mucho más que adquirir al aprender ciertos idiomas que solo poder escribir código en ese idioma.

El aprendizaje de C sin duda cambiará tu forma de pensar acerca del código. Saber cómo hacer que una aplicación no trivial (como un servidor HTTP multiproceso) funcione sin segfaults y las fugas le enseñará algo que se cubrirá en un lenguaje como Java o incluso C ++. Aunque C se parece mucho a otros idiomas, es profundamente diferente. La primera vez que te das cuenta no puedes hacer esto:

mystring = anotherstring + “foo”;

y espere que las cadenas estén concatenadas, usted será cambiado. Se preguntará cómo otros lenguajes de programación hacen que la concatenación de cadenas funcione, y luego se dará cuenta de algo más profundo: todos los tipos de datos son solo bytes en la memoria, y una cadena puede ser simplemente un bloque contiguo de bytes terminados por un byte especial que indica tu donde termina O podría ser una longitud de dos bytes seguida de la cantidad de bytes que forman la cadena, o algo más. El punto es que no es solo una Cadena; tiene bytes en la memoria, y no tienen que formatearse de la misma manera en todas las aplicaciones, y en la práctica no lo están.

Por lo tanto, cuando un lenguaje de nivel superior concatena cadenas, puede copiar las cadenas cada vez que se concatenan o tener cada cadena en una estructura especial y apuntar a otra estructura de cadena y encadenarlas de esa manera, o algo así, en el camino. las longitudes O podría estar haciendo algo completamente diferente. Los problemas con eso son dos: 1. cada situación es diferente y debido a eso probablemente haya formas más eficientes de hacerlo que cualquier otra forma genérica que los diseñadores de idiomas de nivel superior eligieron para capturar _todos_ casos, y 2. su elección está oculta para usted .

Por lo tanto, usar idiomas de nivel superior y no saber cómo funcionan internamente le impide saber cómo usarlos de manera eficiente. Incluso diría que te impide entenderlos realmente.

Mira esta conferencia:
Robert Graham está hablando de resolver el problema C10M.
C10M:
– 10 millones de conexiones concurrentes
– 10 gigabits / segundo
– 10 millones de paquetes / segundo
– Latencia de 10 microsegundos.
– 10 microsegundos de jitter
– 1 millón de conexiones / segundo
manejado por un solo servidor de $ 5000

En la conferencia, señala que el desarrollo personalizado basado en C puede aumentar el rendimiento en 80 veces. Eso significaría la diferencia entre el arranque y la necesidad de hacer una búsqueda de personal. Significaría que las polillas para hacer levantamiento pueden ir hacia la construcción del producto.

Obviamente, el principal desafío será diseñar el producto y lograr que la gente lo use.

C puede traer los nuevos productos basados ​​en la nube de súper bajo costo. Piense en el poder de uno o dos desarrolladores, que pueden alojar sistemas como New Relic, pubnub o mixpanel en su garaje.

Como estudiante, es el mejor momento para explorar algunas áreas. Luego descubrirás qué áreas son más interesantes para ti. P.ej:

  • C ++, C, JAVA
  • Android, Swift
  • HTML, CSS, JS, JQuery
  • SQL, NO SQL

Sugiero aprender a través de la implementación de proyectos. Sigue empujando tus límites, el crecimiento es clave.

Bien, entonces supongo que tendré que (respectivamente) nadar contra la corriente de los comentarios anteriores. Creo que tu papá tiene razón.

Asegúrese de que los tipos C de disco duro afirmarán que necesita conocer la lógica a nivel de bits, los punteros y el acceso directo a la memoria. Pero eso es como decir que para conducir un automóvil moderno debe tener experiencia en la conducción de un Modelo-T. Sus viejos tiempos pensando en los viejos.

Elija un idioma, cualquier idioma, siempre que esté orientado a objetos. Ahí es donde se encuentran las habilidades modernas empleables y extensibles. Java, C #, Objective C, C ++, lo que sea. Al hacer uso de la cabeza con el poder de OO será mucho más actual, útil y utilizable que saber sobre punteros C y asignación de memoria. Los lenguajes modernos que usará en el lugar de trabajo de TI resumen todo lo que se aleja de usted de todos modos.

Y no escuche a aquellos sobre los que discute sobre la velocidad de C. Es un argumento obsoleto en arquitecturas modernas como Cloud, donde el nivel de cómputo se puede marcar elásticamente para adaptarse. La compra de cómputo es barata en comparación con la construcción y el mantenimiento de viejos idiomas. Después de todo, se trata de ser moderno. No lo hagas en la tecnología de los viejos tiempos.

C sigue siendo muy relevante en el comercio algorítmico de alta frecuencia, donde el rendimiento es un factor crítico, y desea estar lo más cerca posible de la máquina para reducir la latencia y también se usa ampliamente en sistemas integrados.

Aprenda C si desea conocer las complejidades de bajo nivel de la administración de la memoria, la alineación de bits en la memoria como big-endian o little-endian, le brinda la capacidad de manipular la memoria de su sistema y mejorar el rendimiento de su sistema si se usa en el manera correcta.

Por supuesto, también le gustaría conocer los conceptos orientados a objetos y todo para lo que puede aprender c ++, python.

Así que para conocer mejor tu máquina empieza por C.

Considere los componentes críticos con los que se interconectan los lenguajes modernos, fáciles de escribir, como Java, C #, etc. Ejemplo: REDIS está escrito en C. La mayoría de los balanceadores de carga, etc. están escritos en C. Por lo tanto, sigue siendo relevante pero no la mayoría tiene la necesidad de usarlo. Bien educados, los programadores rudos escriben en C para que los mortales los usemos.

La mayoría de los lenguajes se implementan en última instancia en c (en la capa más inferior). así que para entender lo que realmente está haciendo su computadora, necesita saber el programa c ++ en días.