Funcionaría enormemente para su beneficio.
Por un lado, muchos códigos científicos modernos están escritos en C ++ porque combina los beneficios de Fortran con un rico conjunto de herramientas orientadas a objetos. También tiene una gran cantidad de bibliotecas bien desarrolladas: si alguna vez decidiera que no le gustaba la informática científica por alguna razón, como programador experto en C o C ++ no le resultaría difícil realizar la transición. También significa que hay mucho menos que escribir cosas desde cero, y generalmente la gente ha pasado muchas horas en su código de biblioteca altamente optimizado. A veces, es posible que necesite una variante de algo que esté disponible y querrá poder realizar las modificaciones correctas.
Hay una razón muy importante para que todos en informática aprendan C, no solo programadores científicos. Es similar a hacer derivaciones matemáticas a mano en lugar de aplicar los resultados a ciegas. No solo entiendes de dónde viene todo, sino que obtienes mucha experiencia práctica con la mecánica de cómo se hacen las cosas de manera eficiente . Para la computación científica, la eficiencia importa casi más que cualquier otra cosa, y obtener el máximo rendimiento de sus máquinas es imposible sin entender cómo funciona en sus niveles más bajos (o en sus niveles más bajos, ya que la programación en corrientes controladas a través de transistores no es útil) ). La programación en C requiere que usted entienda cómo se utiliza la memoria y no oculta nada al respecto.
Para ser realmente efectivo en exprimir el rendimiento, incluso puede comenzar a hurgar en el ensamblaje. No es demasiado aterrador, de hecho es muy simple y lo único que lo hace difícil es que es tan detallado. Pero en algunos casos, incluso el código C no le contará toda la historia, y querrá saber cómo se manejan algunas operaciones. Eventualmente, querrá estudiar la arquitectura de una computadora y comprender cómo ciertas opciones afectan la velocidad de sus programas. Por ejemplo, querrá saber que no debe acceder a la memoria de forma esporádica, y que si fragmenta sus datos correctamente (si es posible), se integrará en los cachés de la CPU, lo que puede aumentar considerablemente su rendimiento. En la computación en paralelo, puede matar fácilmente cualquier aumento de velocidad potencial que pueda haber logrado simplemente copiando la memoria de manera ineficiente.
- Mi examen acaba de terminar y estoy aburrida. ¿Qué cosas interesantes podría hacer?
- ¿Qué consejo le puede dar a alguien que quiere ser un buen ingeniero pero, desafortunadamente, las cosas se están volviendo opuestas a lo que él espera?
- Voy a unirme a LNMIIT Jaipur. Me asusta el hecho de que mis mayores me van a desbaratar. Ni siquiera tienen derecho a preguntar mi nombre a la fuerza. ¿Hay alguna manera de que los adultos mayores no hagan mis trucos y, si lo hacen, debo quejarme ante la policía o el jefe de la institución?
- ¿Cuál es tu consejo para mí?
- Cómo obtener una certificación ISO 22000
Aprender C es solo el comienzo de todo esto, y un mínimo para comprender los problemas de rendimiento en cualquier tipo de software. Esto no significa que debas hacer todo en C, ni mucho menos en realidad. En mi opinión, creo que la forma más eficiente de desarrollar software científico es hacer un prototipo en Python y transformar lentamente sus partes más críticas para parecerse al código C a través de las extensiones Cython y las bibliotecas numéricas rápidas como Numpy. Esto proporciona un equilibrio casi perfecto entre el tiempo de desarrollo y la eficiencia del software, y puede ser una ruta para que usted se familiarice con el lenguaje C. La parte interesante es que realmente puedes mirar el código C generado (aunque es bastante feo, es mejor que primero aprendas C de manera independiente) y ver en qué compila Python. También te recomiendo que compres el libro de programación en C de Kernighan y Ritchie, ya que es probablemente el mejor libro sobre el tema (y si puedes leer un libro de texto de matemáticas o ciencias, esto encajará).