¿Qué tan importante es la programación en astrofísica observacional y experimental? Si es importante, ¿qué idiomas debo saber?

Primero, la parte básica de la pregunta:

La programación es esencial para la astrofísica.

Tiene un software personalizado para realizar pruebas estandarizadas en los datos que ingresan.

Tiene minería de datos para evaluar y analizar datos que ya ha archivado.

Ha distribuido la informática utilizada por muchos proyectos de investigación, tanto en clústeres locales como en proyectos como [correo electrónico protegido]

Ahora para el idioma:

Python es excelente para algunas cosas, es rápido y simple, por lo que siempre y cuando la mayor parte de lo que tiene que hacer ya esté bien definido, puede ser excelente para automatizar cosas y hacer algunas verificaciones de datos.

C / C ++ es un lenguaje potente, capaz de procesar datos rápidamente incluso a través de múltiples hilos o sistemas. Como tal, es probable que se ponga en juego cualquier procesamiento serio de datos o lógica compleja.

Sin embargo, cada proyecto de investigación tendrá una variedad de idiomas, ya sea porque alguien lo sabía o porque se ajusta mejor a la necesidad.

El desarrollo de software de ciencia se trata más de comprender conceptos como la inexactitud de coma flotante (lo que nunca quiso saber sobre coma flotante, pero se verá obligado a descubrir) que los lenguajes específicos (aunque algunos idiomas funcionan mejor en matemáticas avanzadas).

La programación y las simulaciones son una parte integral de la investigación astrofísica moderna. Se utilizan ampliamente en todas partes, desde proyectos de observación hasta teóricos. Entonces sí, la programación es importante. Pero eso no significa que tengas que ser un codificador superior. Lo importante es comprender los conceptos de física que van detrás de un proyecto y aplicarlos o verificarlos de manera eficiente a través de un código o simulación.

En lo que respecta a los lenguajes de programación, Python se usa en muchas aplicaciones. Algunos softwares se basan en los idiomas antiguos como fortran o IDL. Entonces puedes probar estos.

Extremadamente importante. Python e IDL (para astrofísica observacional, al menos).

Soy un astrónomo observacional, así que elaboraré específicamente desde esa perspectiva.

A riesgo de mostrar mi edad, he estado en el campo durante ~ 13 años, y actualmente estoy haciendo mi segundo postdoc en astronomía. He sido un observador desde el primer día, y uso telescopios como los telescopios Keck sobre Mauna Kea de forma regular. Mi experiencia de observación se extiende a otros telescopios en Hawai, como Gemini, Submillimeter Array, JCMT, UKIRT, así como el telescopio Shane en el Observatorio Lick en la cima del Monte Hamilton. En mi investigación, también utilicé datos de múltiples longitudes de onda de rayos X a la radio, incluidos datos tomados con varios telescopios espaciales. Todo, desde la planificación de observación hasta la adquisición de datos y finalmente el análisis de datos, se realiza en una computadora. TODO.

Ahora, ¿de dónde viene la programación? Bueno, hasta cierto punto, incluso manipular hojas de cálculo en Excel o Numbers o la hoja de cálculo de Google cuenta como programación, y la adquisición de datos en algunos telescopios requiere scripts. Pero la carne de una carrera de astronomía (de observación) se basa en el análisis de datos, y uno lo hace probablemente usando una combinación de los propios guiones + rutinas o tuberías generadas y compartidas por la comunidad astro. La disponibilidad y aplicabilidad general de la última parte guía mi recomendación de Python e IDL como los lenguajes de programación de elección, en mi humilde opinión.

Por supuesto, la popularidad de estos idiomas evoluciona bastante rápido. En los primeros años de mi carrera investigadora, aprendí IRAF y rápidamente me sentí frustrado antes de retomar y enamorarme de IDL. He usado programas FORTRAN de un asesor (el fallecido Dr. John Huchra) que fue un predecesor de IDL. Durante gran parte de mi carrera de investigación de pregrado y posgrado, IDL fue mi amigo. Hay muchas rutinas y recursos escritos en IDL que la comunidad astro comparte en la poderosa red. Sí, la licencia cuesta un brazo, que es el único gran inconveniente de IDL … ¡ojalá pueda conseguir que su asesor o institución pague por ello! Pero hacia el final de mi carrera de posgrado, Python comenzó a hacerse popular, y cada vez se escriben más herramientas de análisis de datos en Python. La comunidad en su conjunto está comenzando a cambiar en esa dirección, particularmente cuando las herramientas de software para telescopios emergentes como ALMA y JWST están escritos en Python. Dado que es gratis, probablemente sea el camino a seguir.

Personalmente, sin embargo, para mí es un poco difícil encontrar tiempo para hacer el cambio y deshacerse del depósito de rutinas en las que he aprendido a confiar y que me siento cómodo de usar. Sin mencionar que algunos de mis queridos datos aún requieren paquetes escritos en IDL para reducirse, por lo que IDL aún no es un completo goner. (Ahora también estoy usando pyRAF a diario, que es una combinación de python e IRAF que hace que este último sea un poco menos abominable. Después de todo, había una razón por la cual IRAF se quedó por un tiempo; su uso en algunos básicos la reducción de datos es bastante robusta.) Pero cada vez siento más mi edad. Para alguien que acaba de ingresar al campo de la astronomía observacional, definitivamente recomendaría aprender Python, pero prepárate para adaptarte a lo que la vida te depare.

No lo es, como tampoco lo es el ciclo de vida de los gusanos planos.

La programación no es una cosa única, es un método para hacer cosas, y puedes usar ese método, aplicado a la astrofísica, sin saber nada sobre programación formal. (Por cierto, aprender lenguajes de programación NO es aprender programación; una es solo una forma de hacer la otra). Newton “programó” las leyes del movimiento mucho antes de que existiera el concepto formal de programación.

Cuando se trata de investigación numérica y bases de datos, conocer un PL resulta muy útil, sin embargo, a menudo puede externalizar sus datos y pagar un servicio para crear y ejecutar un algoritmo. La desventaja de esto es que a menudo puede ser difícil hacer llegar lo que quieres a la persona que escribe el código, por lo que a menudo es más sencillo escribirlo tú mismo.

Tenga en cuenta que un algoritmo simple puede ahorrarle horas y horas de trabajo y tiende a no cometer errores. Además, cuando haya escrito un algoritmo, puede usarlo varias veces en proyectos múltiples o modificarlo si es necesario.

La mayoría de los físicos y matemáticos que conozco usan Python.

Si desea trabajar mucho con grandes bases de datos, busque SQL.