Soy bastante bueno en matemáticas, pero soy absolutamente basura en la codificación y no me interesa, ¿hay alguna solución para esto?

No es anormal en lo más mínimo.

Sin embargo, este sentimiento se desvanece a medida que te vuelves mejor.

Además, como sugirió Benjamin Paul Rollert, intente utilizar lenguajes funcionales. Haskell sería ideal, pero lamentablemente no se usa mucho ‘en la naturaleza’. R, sin embargo, es. He estado usando R durante años y no puedo recordar la última vez que escribí un bucle for.

La otra cosa para reconocer qué es la programación: aprovechar el poder de la computación. Muchas de las cosas que exploras en tu educación matemática son pisapapeles inútiles sin grandes cantidades de poder computacional.

Nadie hace ninguna de estas cosas a mano:

  1. calcula el inverso de una matriz
  2. transpone matrices
  3. modelos ocultos de markov
  4. regresión (de cualquier raya)
  5. el algoritmo simplex (la idea de hacer esto a mano … * se estremece *)

Además, recuerde el punto de partida de sus clases introductorias de cálculo y ecuaciones diferenciales: “Tenemos que usar métodos numéricos para resolver la mayoría de los problemas ‘reales'”.

Métodos numéricos == Programación.

Algoritmos == Programación.

Así que trata de no ver la programación como un ejercicio tedioso para decirle a la caja mágica que tienes delante qué hacer, sino más bien como una habilidad para actualizar el poder de las matemáticas.


Aquí hay algunas cosas para probar.

Escribe un programa que calcule:

  1. la suma de 1 / n ^ 2 de n = 1 a 20 (luego 100, 300, 1000, etc.): siempre es divertido.
  2. una suma de Riemann, para alguna función f (x)
  3. una suma de Riemann, para alguna función f (x, y)

Si eres muy ambicioso, intenta implementar el algoritmo simplex (¡será muy difícil!).

Por supuesto, todas estas cosas han sido escritas ya en muchos lenguajes (por ejemplo, python … bueno, C) por un autor que es muy consciente de la complejidad algorítmica. Sin embargo, todavía se puede aprender mucho del ejercicio.

Realmente, realmente recomiendo que mires a R. Mucha gente de ciencias de la computación lo odia por las mismas razones que a las personas de matemáticas y estadísticas les encanta. Me encanta R porque es un lenguaje funcional (o puede serlo) y te animamos a vectorizar en lugar de usar para bucles. Es una forma mucho más matemática de codificar y pensar.

A2A. No, realmente no hay forma de arreglar la inmadurez de aburrirse fácilmente, que es el verdadero problema. Si puede hacer pruebas, puede codificar. Simplemente no te gusta cuidar los detalles. Lo más probable es que seas un intuicionista, lo que significa que no tienes paciencia para el formalismo que se requiere para el método paso a paso de probar cosas.

La belleza de los físicos es que generalmente encuentran una manera de obtener las matemáticas necesarias para expresar sus resultados experimentales. Si está realmente interesado en la astrofísica, aprenderá a codificar y codificar bien.

Soy estudiante de física y matemáticas, si eso es útil. Por lo que recuerdo, no he tenido mucho interés en CS, pero aún parece cierto que una gran parte de la investigación física (especialmente en astrofísica) depende de su capacidad de codificación. Me parece que me aburro fácilmente de su naturaleza aparentemente pedante.

Un sentimiento perfectamente normal.

Entonces, no codifiques. O codifique, pero solo para resolver problemas específicos que le interesen. Quizás todavía no le interese, pero lo hace para llegar al final, no por su propio bien. Eso está perfectamente bien.

Las personas hacen cosas que les resultan aburridas todo el tiempo para llegar a los fines que desean. Realmente no disfruto enviando correos electrónicos, y odio hablar por teléfono, pero eso no me impide hacer lo que tengo que hacer para obtener lo que quiero.

Una razón por la que los chicos de CS a menudo prefieren Linux es porque todo el sistema operativo es de código abierto. Esto significa que todo el código en el que se ejecuta está completamente abierto para que lo modifique.

¿Y qué?

Un tema común con Linux es que un programador se frustra cuando un programa en particular no admite una función que necesita. Entonces, ¿qué hace él al respecto? Abre el código, lo aumenta en consecuencia, vuelve a compilar y ¡bam! Literalmente resolvió su propio problema con sus propias habilidades.

Imagínese si su automóvil no admite la aceleración 0-60, porque el motor está succionado o lo que sea. Entonces, casualmente, simplemente decide crear un conjunto de herramientas y habilidades ampliamente técnicas para aumentar literalmente todo el motor para hacer lo que desee. Ahora imagine que todo lo que necesitaba para el trabajo era una computadora portátil.

Por eso es tan genial.

Entonces, para responder a su pregunta: no importa si no encuentra deseable la codificación. Solo necesita aplicar habilidades de programación como un medio para un fin, ya que su área de interés es la física. Todo lo que necesita hacer es aprender lo suficiente como para desarrollar algunas habilidades técnicas según sea necesario para ingresar, aumentar algunos datos (o lo que sea) y resolver un problema de física.

He aprendido en la vida que si hay algo que disfruto hacer, y que soy objetivamente bueno en eso, es una carrera o un interés que debería perseguir.

El verdadero desafío es conocerse lo suficientemente bien como para obtener la respuesta a estas dos preguntas. A menudo cometemos errores al buscar educación y trabajos para cumplir con las expectativas de los demás y no seguir nuestros propios deseos y habilidades.

Si no te gusta la codificación y no te sientes bien, ¿por qué no explorar otra forma de usar tus habilidades matemáticas? ¿Algo que puedas disfrutar más?

Si. No intentes ser programador. Si eres bueno en la teoría, intenta emparejarte con alguien que sea bueno en la codificación pero malo en la teoría.