¿Qué tan importante es para un físico aspirante tener una sólida comprensión de los algoritmos y las estructuras de datos?

Mi experiencia es principalmente en matemáticas, CS y CE, pero he publicado varios artículos en Phys. Rev. A (revista principal en física atómica y molecular), y más de varios en Quantum Information & Computation. Dos de mis estudiantes graduados hicieron Ph.D. trabajar en algoritmos para simulación cuántica.

La respuesta a su pregunta depende de los campos dentro de Física y también de su plan de respaldo para buscar trabajo. Gran parte de la física aplicada es computacional, y si puede programar algo, comprenderá mejor los algoritmos y las estructuras de datos (que cuentan como “el arte de la programación de computadoras”). Los algoritmos de simulación numéricos son esenciales en muchas ramas de la física, y la investigación teórica a menudo da como resultado técnicas de simulación fundamentalmente nuevas que deben implementarse y evaluarse. Si se trata de objetos abstractos, puede terminar usando o desarrollando algoritmos simbólicos. Los campos principales como la computación cuántica y las aplicaciones de la mecánica estadística (por ejemplo, para el análisis de topología de red) dependen en gran medida de algoritmos.

En mi experiencia, pocos físicos hoy son competentes en algoritmos y estructuras de datos. Entonces, si está buscando una ventaja, esta es su oportunidad. Psicológicamente, la física tiende a entusiasmarse con los algoritmos simples que no están condicionados por los modelos físicos, y a menudo se sale con la suya de publicarlos en literatura de física, sin darse cuenta de las técnicas computacionales mucho más avanzadas conocidas por 20-30 años en Ciencias de la Computación e Ingeniería (a menudo muy utilizadas en serio software). Puedo pensar en un Phys. Rev. Lett. documento que lanzó un algoritmo que, en retrospectiva, era claramente inferior al “ingenuo Bayes” (una técnica de IA muy conocida utilizada en filtros de spam). Cuando se corrió la voz, Phys. Rev. Lett. tuvo que publicar refutaciones enojadas de expertos en inteligencia artificial.

Para resumir, si realmente desea evitar algoritmos en física, probablemente pueda. Sin embargo, puede terminar aprendiéndolos cuando solicite trabajos no docentes / no teóricos, y puede terminar necesitándolos en estudios de posgrado. Si tiene algo de tiempo, hágase un favor y aprenda al menos los conceptos básicos de las estructuras de datos y algoritmos.

PD: generalmente estoy de acuerdo con la respuesta de Rob Weir. Los cursos de CS sobre algoritmos tienden a descontar la computación numérica, que es más importante en física. Sin embargo, la clasificación y la búsqueda son relevantes, ya que también se pueden usar en algoritmos numéricos (la clasificación se puede usar para resolver grandes sistemas lineales, la búsqueda se puede usar para encontrar ceros de funciones y en la optimización).

Recomiendo buscar un curso de “informática científica” o “métodos numéricos” si su escuela lo tiene, de lo contrario, busque una copia de “Recetas numéricas”. Conocer los árboles binarios y las clasificaciones rápidas es menos importante que saber resolver numéricamente ecuaciones diferenciales parciales o hacer una transformación rápida de Fourier.

E incluso (muy probablemente) si finalmente utiliza un paquete matemático comercial para hacer los cálculos, en lugar de escribir su propio código, es importante comprender las limitaciones de los cálculos de coma flotante, el error de redondeo, la estabilidad numérica de los algoritmos, etc. son temas no cubiertos en una clase típica de estructuras y algoritmos de datos informáticos.

More Interesting

Cómo obtener más de 30 paquetes LPA de NIT Jamshedpur en la rama de informática

¿La informática tiene una buena carrera?

¿Qué tan útil es un título en informática cuando se trabaja en un trabajo relacionado con TI?

¿Cuánto tiempo puede un principiante de programación aprender "suficiente" para convertirse en un ingeniero de aprendizaje automático?

¿Es la ciencia de la información mejor que la informática para un trabajo?

¿Realmente vale la pena renunciar al tiempo de estudiar CS en la escuela para concentrarse más en los proyectos?

Ya tengo una licenciatura en negocios, pero quiero ser programador sin obtener otro título en informática. ¿Cómo puedo hacer eso?

¿Por qué las personas en informática generalmente tienen intereses similares, no relacionados con la informática?

Quiero seguir investigando en informática, pero también quiero hacer algo GRANDE para la humanidad. Quiero usar la tecnología para beneficiar a la humanidad. ¿Qué áreas de investigación en informática son las más "impactantes" a este respecto?

¿Qué importancia tiene el procesamiento paralelo para pronosticar series de tiempo financieras?

¿Cuál es un título más valioso, ciencias de la computación o ingeniería?

¿Puedo obtener una buena ubicación si empiezo a trabajar duro en mi tercer año de informática?

¿Qué debo aprender para convertirme en un buen desarrollador front-end? ¿Y qué buscan los empleadores en los candidatos?

¿Cuál es la mejor manera de obtener un trabajo de ingeniería de software como estudiante no especializado en cs?

¿Es malo que odie tanto trabajar con el código de algunos de mis compañeros de trabajo que quiero renunciar?