¿Es una pérdida de tiempo tratar de ser un programador de computadoras si soy malo en matemáticas?

De ningún modo. Viniendo de alguien que está en el extremo opuesto, a veces desearía no sentir que las matemáticas eran mi única gracia salvadora en el campo. Decidí especializarme en Ciencias de la Computación al llegar a la universidad basado en mi habilidad natural con las matemáticas y mi intuición general con las computadoras. Si bien las matemáticas son muy útiles cuando se trata de optimizar algoritmos y aprender teoría computacional, ciertamente no es todo lo que se necesita para ser un programador maravilloso. Me he destacado en todos mis cursos de matemáticas, mientras lucho en muchos de mis cursos de programación. Sin embargo, estoy a punto de graduarme con mi título en Ciencias de la Computación, que es algo que nunca habría imaginado hace 5 años cuando estaba en el último año de la escuela secundaria. Muchos (si no la mayoría) de los programadores que conozco carecen de habilidad matemática y son mucho mejores en la programación real que yo. Si bien puedo idear el mejor algoritmo en una situación dada, siempre tengo problemas para implementarlo. Si te preocupa la universidad y tener que tomar cursos de matemáticas, diría que ciertamente no debes rendirte, pero definitivamente debes encontrar un tutor o un amigo que te ayude en estas clases (que a menudo son necesarias). Puede que tenga que pasar más tiempo aprendiendo y practicando matemáticas, pero se sorprendería de cómo esto puede beneficiarlo en cursos de computación / teoría de alto nivel. Soy un estudiante de Ciencias de la Computación, pero en mi universidad ofrecen una carrera de Ingeniería en Computación y Sistemas de Información en Computación. Si bien la ingeniería ciertamente implica bastante matemática, la especialización de CIS en realidad tiene un requisito muy bajo para las clases de matemática y aún involucra algunos cursos de computación / programación de muy alto nivel. De ninguna manera se considera que los estudiantes de CIS sean menores que los otros estudiantes de informática, sino que tienden a centrarse en diferentes partes del campo de la informática. Lo que no quiere decir que ninguna de las especialidades se limite a ninguna parte del campo, pero en la estructura universitaria es así como se organizan las cosas.

Dicho todo esto, la universidad NO ES NECESARIA en absoluto para convertirse en un programador exitoso. Especialmente en estos días donde tienes los recursos de Internet a tu alcance. En mi caso, uni ha sido más que crucial en mi viaje para convertirme en programador. Sin embargo, muchas personas que conozco simplemente no pudieron hacerlo debido a su falta de habilidad matemática y comprensión. Estas personas tampoco están endeudadas por el pago de la matrícula y han trabajado en el campo de otras maneras. La programación es una compilación tan amplia de tantas cosas diferentes, y si bien las matemáticas juegan un papel muy importante en eso, a menudo es tan importante (si no más) poder codificar bien. Cuando pienso en un equipo de programadores que trabajan en algún proyecto, imagino que debe haber diferentes personas de diferentes orígenes con diferentes habilidades para crear la solución más óptima y útil. Podrías ser esa persona que puede no estar resolviendo todo lo relacionado con las matemáticas, sino que realmente está implementando las cosas matemáticas que otros miembros del equipo han inventado. ¡Ofrece una perspectiva diferente a la idea estándar de un programador, que es más valiosa de lo que piensa! Sin mencionar que es más que probable que retome algunas de estas convenciones matemáticas y aprenda más de lo que cree sobre ellas.

Las personas como usted que no están tan concentradas en sus conocimientos matemáticos y técnicos son las personas que continúan impulsando el campo de la informática. Las perspectivas nuevas y diferentes son extremadamente importantes para todos los aspectos de la vida, y eso también se aplica a la informática.

Y, al final del día, probablemente seas mucho mejor en matemáticas de lo que piensas. O, al menos, mejor que la mayoría de sus compañeros. Persigue lo que te apasiona, o persigue lo que crees que posiblemente te apasione eventualmente (así es como me funcionó jaja). ¡Creo que se sorprenderá mucho de su propio potencial!

Todo lo que sabes, incluidas las matemáticas, es útil para un programador informático, pero definitivamente NO es obligatorio. Cada información agrega un valor especialmente para fines de análisis y diseño, que es la parte más crucial del desarrollo de cualquier programa de computadora. La programación no es una pérdida de tiempo en absoluto si estás interesado en ella, no importa si eres bueno en matemáticas o no. No soy tan bueno en matemáticas, pero me encanta la programación.

Creo que es importante saber cómo la computadora realiza las matemáticas. Veamos.

Hace un pequeño paso a la vez pero extremadamente rápido y con subprocesos múltiples. Las operaciones numéricas se pueden dividir en suma, resta, multiplicación y división, que son tareas básicas para un microprocesador. Para acomodar un rango más amplio de valores numéricos sin abrumar la memoria y los recursos de procesamiento, las computadoras usan el sistema de punto flotante, reemplazando los números comunes (digamos, 1,300,000) con valores de punto flotante (digamos, 1.3 x 106). Este enfoque generalmente produce solo una aproximación del resultado, pero con cierto cuidado hace que los valores sean extremadamente cercanos a la respuesta correcta. Finalmente, todo sucede con solo “cero” y “uno”, conocidos como valores binarios . La mayoría de las computadoras ahora tienen hardware especial para multiplicar y dividir.

  • Veamos una multiplicación de muestra.

(Fuente de la imagen: imágenes de Google)

Cuando multiplica, multiplica el multiplicando por un dígito del multiplicador a la vez. Cambia cada producto parcial por un dígito, luego los agrega.

483

* 27

—-

3381

966

—–

13041

Una computadora se multiplica más bien piensa en binario. La única diferencia de lo que aprendimos es que la tabla de multiplicación binaria es muy simple:

* | 0 1

– + –

0 | 0 0

1 | 0 1

entonces, cuando multiplicamos por 0, la respuesta es 0. Si multiplicamos por 1, la respuesta es el número original. Eso es.

  • Así es como funciona la multiplicación en binario:

13 = 1101

* 9 = 1001

– —-

1101

0 0

0 0

1101

——-

1110101 = 117

Mientras que la computadora en cierto sentido se multiplica agregando, no lo hace agregando 13 + 13 + 13 + 13 + 13 +13 + 13 + 13 + 13. Eso sería mucho más lento. Y la razón por la que dije que la computadora se multiplica casi solo por la suma es que también usa la operación de desplazamiento por un bit, que es lo mismo que multiplicar por 2. También ocurre algo similar para la división.

¿Alguna de las cosas aquí parece familiar a lo que hacemos en el día a día, en su mayoría NO? Es por eso que las matemáticas que se enseñan en la escuela no son realmente obligatorias para convertirse en programador.

Entonces, ¿cuándo las matemáticas pueden ser útiles? Todavía diría que un concepto de física no es exactamente y solo matemática

Una fórmula de un ejemplo de cómo calcular la velocidad angular con sensores de Android, Gyroscope. Sensores de movimiento | Desarrolladores de Android

// Calcular la velocidad angular de la muestra

flotante omegaMagnitude = sqrt (axisX * axisX + axisY * axisY + axisZ * axisZ);

Es una fórmula de física que involucra matemáticas. Entonces, como quisiera citar con lo que comencé, mi respuesta decía: ” Todo lo que sabes, incluidas las matemáticas, es útil para un programador de computadoras PERO definitivamente NO es obligatorio

Puede consultar más en ¿Cómo realizan las computadoras operaciones matemáticas complejas?

No. Pero no por la razón que probablemente pienses.

¿Te suena familiar esta pregunta?

“Un tren sale de Nueva York a las 3:00 a.m., con un promedio de 30 mph. Otro tren que se dirige en la misma dirección sale de Nueva York a las 6:00 a.m., con un promedio de 60 mph. ¿Cuántas horas después de que salga el segundo tren pasará el primer tren?

Probablemente lo viste en una clase de matemáticas de secundaria. Y si fueras como yo, no te podría haber importado menos encontrar la respuesta.

(si te importa, revelaré la respuesta al final de esta publicación).

Aquí está la cosa. Fui malo en matemáticas hasta que descubrí la programación.

Los problemas de palabras como este no tenían sentido para mí. Se sentían tan desconectados de la realidad que me costó mucho trabajo encontrar las respuestas.

Todo cambió cuando me metí en la programación. Me iluminó Me ayudó a entender cómo se aplicaban las matemáticas al mundo real.

Aquí hay un ejemplo. Desea comunicar la duración de un entrenamiento en horas y minutos a un usuario de una aplicación de ejercicios. El entrenamiento duró 71 minutos.

71/60 = 1,18. Eso es 1 hora completa.

¿Cómo consigues los minutos?

Utiliza una función de módulo, que encuentra el resto de un número.

71% 60 = 11.

Entonces 71 minutos es 1 hora 11 minutos.

Muestra la información al usuario.

Este es un pequeño ejemplo. Pero hay muchos casos de uso sobre cómo puede aplicar matemática simple a la programación. De hecho, solo necesita conocer 5 conceptos matemáticos relativamente simples para ser lo suficientemente bueno en la programación:

  1. Agregando
  2. Restando
  3. Multiplicando
  4. Divisor
  5. Restos (como el ejemplo que mostré arriba)

La gente asume que necesitas haber amado las matemáticas toda tu vida y haber sido realmente bueno para convertirte en programador.

Nada podría estar más lejos de la verdad. Odiaba las matemáticas hasta que entendía por qué realmente las necesitaba. Una vez que me convencieron de que realmente tenía un propósito, me fue fácil aprender lo que era necesario para convertirme en programador … lo que realmente no es tanto.

La programación no es como un campo como la ciencia de datos, en el que necesitas usar cálculos complicados para construir modelos del mundo. Las matemáticas que necesitas son mucho más simples.

Ahora he tenido 4 trabajos de programación diferentes … en grandes compañías como Paypal para pequeñas startups. También he escrito un plan de estudios que ayuda a enseñar a las personas a convertirse en ingenieros de software.

Puedo decir con 100% de confianza que no es una pérdida de tiempo intentar convertirse en programador si crees que eres malo en matemáticas. ¿Por qué?

  • Probablemente no seas tan malo como crees.
  • No necesita ser tan bueno como probablemente asume para comenzar a programar a tiempo completo.

Ahora que lo sabes, ¡sal y comienza a programar! Si desea comenzar en línea, hice una lista maestra de los mejores lugares para hacerlo aquí.

PD: la respuesta correcta al “problema del tren” anterior es de 3 horas. Pero si no pudiste resolverlo, no significa que no puedas ser un programador 🙂

Si le gustó mi respuesta, le agradecería que la votara al presionar el botón azul claro a continuación.

No creo que sea particularmente productivo pensar en uno mismo como “malo para las matemáticas” o bueno para eso, así que me gustaría responder una versión ligeramente reformulada de la pregunta: ¿Es una pérdida de tiempo tratar de ser programador de computadoras si no tengo mucha experiencia previa en matemáticas?

Como muchos otros han señalado, la respuesta corta a esta pregunta es no. Una respuesta completa depende, en parte, de sus objetivos profesionales. Si está tratando de construir un motor de física súper realista desde cero, entonces probablemente sea importante tener una sólida base matemática. Pero si solo está tratando de entrar en el desarrollo web, por ejemplo, entonces no es necesario que sepa muchas matemáticas.

Diría que la mayor ventaja que te brindan los conocimientos de matemáticas es saber cómo abordar un problema. Las personas que han estudiado matemáticas tienden a tener habilidades muy fuertes para resolver problemas: saben cómo dividir un problema en trozos más pequeños; se frustran menos fácilmente cuando se enfrentan a un problema particularmente espinoso; y a menudo tienen muchas estrategias generales que pueden usar al abordar un problema. Sin embargo, estas son habilidades que se pueden desarrollar a través de la programación también. Solo se necesita práctica.

¡Espero que esto ayude!

Cualquiera puede aprender a leer. Cualquiera puede aprender matemáticas. Cualquiera puede aprender a programar.

Primero: vea esta charla de Ted por Salman Khan de la academia Khan, y luego no necesitará leer más en esta respuesta, ni en ninguna otra respuesta aquí:

Enseñemos para dominar, no para evaluar los puntajes

Muchas personas fallan en matemáticas en la escuela, pero NADIE es malo en matemáticas. Usas las matemáticas intuitivamente durante todo el día, pero simplemente no te das cuenta, porque esto es algo que hacen todos los humanos. constantemente está estimando qué es más grande, qué es más pequeño, qué cuesta más, qué vale menos, qué cosas son más o menos iguales (tamaño, altura, peso, costo, valor para usted) y toma decisiones basadas en estas estimaciones. Usas algoritmos regularmente: para cocinar, para ir del punto A al punto B, para vestirte, para decidir qué hacer en la universidad … para que ya tengas la habilidad natural de comprender y aplicar algoritmos (para que puedas convertirte en programador).

Crees que eres malo en matemáticas. Pero realmente se te permitió quedarte atrás y fallar. Porque en una etapa particular de su infancia, no se le permitió pasar suficiente tiempo dominando las habilidades matemáticas tempranas. No se le dio el tiempo y la atención que necesitaba durante esas lecciones cruciales. Debido a esto, con el tiempo te retrasaste más y más, y ahora has llegado a creer que eres un mal matemático, cuando todo lo que necesitas hacer es volver y dominar los cimientos primero.

Sí, necesitas absolutamente algunas matemáticas básicas para convertirte en un buen programador. Pero puedes aprender y dominar ambos. ¡Buena suerte!

No eres malo en matemáticas. Las matemáticas son como una pirámide. Primero necesita construir una buena base, y probablemente lo que sucedió con usted, como le sucede a muchos, en algún momento de la escuela tuvo un mal maestro, prestó atención y cuando se construyó el siguiente piso de la pirámide, su El paso anterior fue débil.

En la educación estudiantil masiva de hoy, los estudiantes que no la entienden se quedan atrás. Lo que podría haberse resuelto con un par de meses de refuerzo, se ignoró, por lo que te convencieron de que simplemente no eres bueno en eso.

Dejé mi carrera como ingeniero de software porque en mi universidad los cursos de matemáticas se compartían con las otras carreras, así que tuve que tomar 6 cursos de matemáticas, en un estilo muy teórico, no hay ejemplos, solo pruebas. Comencé algunos cursos en Algoritmos este año y me di cuenta de que el mayor problema era que nadie explicaba por qué todas esas matemáticas eran útiles. Simplemente fue empujado hacia mí, y ya estaba débil en álgebra y trigonometría (odiaba a ese maestro, así que presté suficiente atención solo para aprobar el curso).

Puedo decir que probablemente me siento más capaz en matemáticas ahora que cuando me preparé para mis exámenes universitarios. Solo tomo lo que necesito para entender y resolver el problema en cuestión. Hay muchas maneras de reforzar sus matemáticas: Khan Academy, YouTube, cursos edX del MIT, etc. La educación formal es una mezcla de buenos y malos maestros, las escuelas no se preocupan por los filtros, los padres solo se preocupan por las calificaciones y los niños realmente no saben suficiente para entender que se les da una educación mediocre.

Eres tan inteligente como la mayoría de nosotros, no hay razón para que seas un experto en matemáticas. Hazte cargo de tu propia educación. Si te gusta la programación, encontrarás el camino.

No, las matemáticas no son un requisito. Hay pocos tipos de educación que permitan bootcamp y la Universidad Holberton es un ejemplo.

Los estudiantes son seleccionados en base a 3 criterios:

· Motivación

· Talento

· Capacidad para colaborar

No se le da importancia a nada más, incluidas las matemáticas.

Los estudiantes provienen de antecedentes muy diversos: músico, graduado de secundaria, marketing, reclutador, consejero escolar, maestro, cajero, trabajador de la construcción, maestro de sociología …

Para convertirte en un gran programador de computadoras, debes enfocarte en 3 elementos principales:

· Tener conocimiento de la pila completa

· Ser capaz de aprender solo

· Habilidades blandas

Entonces no puedes encontrar las matemáticas en la lista.

Tener un conocimiento de la pila completa

Las aplicaciones de software son un sistema complicado compuesto de muchas tecnologías y partes: frontend, back-end, base de datos, servidor web, red … Por ejemplo: cambiar una consulta en la interfaz afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos. la consulta puede provocar la caída del sitio.

Esta situación similar ocurrió cuando un desarrollador junior que era un “especialista en front-end” creó una solicitud que consultaba un campo en la tabla de usuario que contenía millones de entradas, este campo no tenía un índice y la base de datos se cayó junto con el sitio web.

Este desarrollador no tenía idea de cómo funciona una base de datos, sin embargo, saber qué es un índice es algo que debe saber cualquier buen ingeniero de software. Tengo muchos ejemplos como este.

Es por eso que primero debe aprender un mínimo sobre lo que llamamos la pila, mientras que cada uno tiene su propia definición de la pila, un buen comienzo es saber sobre:

· Algoritmo y estructura de datos.

· Programación de alto nivel (lenguajes de programación de objetos orientados)

· Administración del sistema y un poco de trabajo en red.

Con esto, un ingeniero de software podrá navegar casi cualquier sistema / aplicación y podrá tomar decisiones de ingeniería bien pensadas.

Ser capaz de aprender solo

Los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las industrias que cambia más rápido, es por eso que constantemente necesita actualizar su aplicación para teléfonos inteligentes y que sus sitios web favoritos brinden constantemente una mejor experiencia y características.

En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que los ayudarán a hacer que su aplicación sea más rápida, mejor y más confiable. Los nuevos lenguajes de programación y bibliotecas están constantemente llegando y uno no puede volver a la universidad cada vez que surge una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que pueda aprender solo.

Habilidades blandas

A menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante.

Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas”, porque este libro es muy importante para aprender a ser un ser humano exitoso.

· Comunicación

o verbal: hablar en público, presentación

o escrito: documentación, correos electrónicos, post mortem, escrito técnico

· Colaboración

o Ayudar a un compañero de trabajo en un proyecto.

o Incorporación de nuevos participantes

o Saber cuándo hacer una pregunta

· Espíritu de equipo

o Comprender a otros compañeros de trabajo

o Fomentar la colaboración con otros equipos (si está en una gran empresa)

No te puedes imaginar cómo ser amable con las personas y ayudarlas a hacer su trabajo traerá mucho. Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero supongamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas.

Si puedes conseguir estas 3 cosas, serás un programador increíble y todos querrán contratarte. A menos que desee ingresar al mundo de la investigación o convertirse en un científico de datos, las matemáticas realmente no son tan importantes.

Sylvain Kalache, el cofundador (Holberton School of Software Engineering en San Francisco), no era bueno en matemáticas.

¡Buena suerte en tu camino para convertirte en un gran programador!

Mientras estudias ciencias de la computación o ingeniería informática, tendrás que tomar muchos cursos relacionados con las matemáticas, como álgebra lineal, cálculo I, cálculo II, estadística y probabilidad, ecuaciones diferenciales, etc.

Las matemáticas son parte de tus estudios y siempre lo serán. Pero no pienses que eres malo en matemáticas. De hecho, lo que más importa es la lógica . En la mayoría de los casos, los estudiantes que son buenos en matemáticas también son buenos en programación (no siempre, pero principalmente), pero no todos los programadores son buenos en matemáticas.

Hay muchos programadores que no eran tan buenos en matemáticas pero sobresalieron en los cursos de programación. Quizás para algunos no sea un placer aprender matemáticas, mientras que la programación es su materia favorita.

Tu caso podría ser este.

Esto es lo que te sugiero que hagas:

Darle una oportunidad

Si bien crees que eres malo en matemáticas, quizás hayas aprendido de la manera incorrecta. A veces es el profesor quien te hace amar u odiar el tema.

En la universidad, algunos cursos de matemáticas son nuevos, por lo que no todo depende del conocimiento de la escuela secundaria. El cálculo I, por ejemplo, se basa en el conocimiento de la escuela secundaria, pero también se enseña en la universidad. Entonces, solo pruébalo. Quizás no sea tan difícil.

Centrarse en la programación

Si bien las matemáticas pueden ser una pérdida de tiempo para usted, la programación no lo es. Puede centrarse fácilmente en la programación y adquirir habilidades avanzadas en varios campos. Tal vez las matemáticas serían necesarias para tener un GPA alto, pero si tienes la lógica y te sientes bien en la programación, creo que puedes manejarlo.

Muchos estudiantes de mi clase lograron convertirse en programadores, incluso fallaron en algunos cursos relacionados con las matemáticas.

¿Por qué no otra escuela de programación?

Como estás luchando con las matemáticas, ¿por qué no pruebas una escuela basada en proyectos? Está totalmente enfocado en la programación y obtienes habilidades de programación de la vida real que te ayudarán a encontrar el trabajo adecuado y un futuro para tu carrera. Los institutos de programación ofrecen cursos de ingeniería de software en los cuales te llevan de 0% de conocimiento a nivel experto.

Este es un ejemplo: Holberton School of Software Engineering en San Francisco.

Absolutamente no. Sin embargo, puede hacer que algunos conceptos sean un poco más difíciles de aprender.

La programación no depende únicamente de las matemáticas y, francamente, ciertas áreas de programación requieren muy poca matemática. Las matemáticas, en esencia, son la resolución de problemas y la resolución de problemas es la habilidad central de un buen programador. Los programas de informática tienden a ser bastante pesados ​​en las clases de matemáticas (múltiples niveles de cálculo, trigonometría, etc.) y, por lo tanto, les da a las personas la percepción de que nunca podrían ser programadores. Si bien estos cursos de matemáticas de alto nivel son útiles, lo que realmente te están enseñando es cómo resolver problemas complejos. La mayoría de los programadores no van a usar ese conocimiento de cálculo para construir un reactor nuclear ni nada.

¿Entonces te percibes falta de habilidades matemáticas? ¿Has considerado el desarrollo web? El diseño / desarrollo web tiene muchos conceptos de programación, puede proporcionar una carrera lucrativa y no tiene nada de matemático. A medida que las empresas crecen, necesitan desarrollo móvil y web para llegar a su audiencia. Usando lenguajes como HTML, CSS, Java y Python, ciertamente puede seguir este camino y tener éxito sin necesidad de tener un fondo matemático pesado. El desarrollo web actualmente tiene una tendencia de $ 134k / año en YouWorth.

Desarrollo Web Salario en Estados Unidos

Otra opción podría ser considerar entrar en el diseño de UI / UX. Aprender esto te pone en el medio de las cosas. Te involucras en el proceso de construcción de un producto, pero no eres necesariamente el que tiene todo el conocimiento técnico. El diseño de UI / UX son campos en crecimiento y los proyectos dependen de personas con este tipo de experiencia para avanzar.

Salario de la experiencia del usuario en Estados Unidos – $ 151k / año

Interfaz de usuario Salario en Estados Unidos – $ 165k / año

Saqué esta información salarial de YouWorth. YouWorth es una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales del programador. No solo soy un campeón del producto, sino que lo uso yo mismo. La aplicación permite a cualquier persona importar habilidades de LinkedIn y rastrear su valor en el mercado laboral con el tiempo. También me notifican si hay un cambio en las habilidades que se están viendo.

He programado en muchos, muchos idiomas durante las 5 décadas de mi vida. Soy TERRIBLE en matemáticas … Soy uno de los raros ingenieros que obtuvieron puntajes verbales SAT más altos que las Matemáticas. Fui rechazado por mi universidad de primera elección debido a eso (en realidad me lo dijeron, jajaja), pero de todos modos me aceptaron en algunas decentes.

En realidad, necesitarás lógica mucho más que matemáticas. La capacidad de ver estructuras y pensar en árboles de decisión. Solo cuando comencé a programar el código de lenguaje APL desearía saber más matemáticas. Pero eso fue para un curso muy anticuado y centrado en la ingeniería, en lo que ahora es un idioma casi muerto.

Debes estudiar lógica informal (¡aprende a jugar al ajedrez!) Y lógica formal. Que tu necesitas.

Soy un estudiante de matemática aplicada pero tengo una clase de programación de Python. Ayer, durante la clase, tuve que explicarle a mi profesor el gatillo detrás de los ángulos en un triángulo. Es una de las programadoras más brillantes del estado y ha trabajado para el Departamento de Defensa. Entonces no, no necesitas ser bueno en matemáticas para ser un programador.

La programación se basa en la lógica y un poco de buena inteligencia pasada de moda. Debe tener una buena cantidad de razonamiento espacial, y eso generalmente se asocia con las habilidades matemáticas, pero los dos no son transitivos.

Por lo general, encontrará con las matemáticas que no es realmente “bueno” en eso hasta que encuentre un propósito para ello. Muy pocas personas están realmente interesadas en las matemáticas por el bien de las matemáticas (matemática pura). Por esa razón, tiendo a pensar que “bueno” en matemáticas es una especie de término sin sentido. Para la mayoría de las personas simplemente no han encontrado su aplicación de las matemáticas.

Entonces estará bien, si es bueno programando, es bueno programando, no deje que sus habilidades percibidas en matemáticas se interpongan en su camino.

Para intervenir con las otras respuestas aquí:

No.

Yo también soy “malo en matemáticas”.

O más bien, mi habilidad innata para comprender las matemáticas es muy variable.

Ciertos aspectos de las matemáticas que realmente disfruté y cuando se trataba de la escuela y la universidad me fue bien en estas áreas.

Otras áreas que no disfruté e hice mal.

Cuando me enseñaban matemáticas, mi disfrute y rendimiento estaban directamente relacionados con lo bien que el maestro hacía su trabajo.

Cada vez que tenía un mal profesor / profesor, mi placer cuando bajaba los tubos y mis notas sufrían.

Cada vez que tuve un gran maestro / profesor disfruté el proceso de aprendizaje y obtuve buenos resultados en las pruebas y tareas.

Lo que aprendí de esto fue que no soy una de esas personas naturalmente dotadas cuando se trata de matemáticas, pero tampoco soy incapaz de comprender los conceptos.

Como tal, me he convertido en un desarrollador de software razonablemente competente. Es posible que no use conceptos matemáticos avanzados todos los días en el trabajo que hago, pero todavía no me arrepiento del tiempo que pasé estudiando matemáticas y lo considero una asignatura que todos deberían apreciar y dedicar algún tiempo. Todo esto a pesar del hecho de que mis malas experiencias mencionadas anteriormente me llevaron a no completar mi Comp. Sci. la licenciatura. Si todavía puedo amar las matemáticas, tú también puedes 😉

La programación es lógica, no matemática. Mis dos centavos es que lo que necesitan los programadores es ser rigurosos en la lógica. La aplicación hará exactamente y con precisión lo que el programa le dice que haga.

Las matemáticas básicas son comunes en la programación. Pero las matemáticas avanzadas son raras, dependen de la aplicación. Si está escribiendo una aplicación web de base de datos, la matemática más difícil puede ser calcular la edad de alguien en función de su fecha de nacimiento. E incluso si está escribiendo programas más complejos como un juego o calculando una distancia entre dos ubicaciones en la tierra, empleará el trabajo de otros en bibliotecas, API y kits de herramientas.

Los programadores deben ser buenos en lógica, en razonamiento.

Depende de si eres realmente malo en matemáticas (incluso si no te gusta, que es muy diferente) o no.

Esto, a su vez, depende del tipo de matemática que tenga en mente. Las matemáticas que haces en la escuela son principalmente sobre números y geometría 2D / 3D, álgebra numérica, funciones de números. La matemática moderna también se ocupa del álgebra abstracta (algo más similar a la teoría de conjuntos que el álgebra numérica), la lógica, los números discretos, la geometría multidimensional de topología (por ejemplo, teoría de grafos) (pero eso es muy avanzado, solo unos pocos especialistas se ocupan de ella).

La informática es esencialmente una rama del último tipo de matemáticas, por lo que no necesariamente se ven muchos números o ecuaciones, sino una gran variedad de temas, que tienen en común la idea de traducir procedimientos o descripciones intuitivamente definidos de entidades del mundo real. en un riguroso conjunto de símbolos y reglas, para que puedan ejecutarse automáticamente.

Pero déjame darte un ejemplo:

Tienes una lista de nombres. ¿Cómo puedes calcular el que alfabéticamente viene primero?

Una idea inicial podría ser: los escaneo a todos y selecciono el que comienza con la letra más baja (que viene primero en el alfabeto). Escanear todo? ¿Cómo? ¿Seleccionar? ¿Cómo? ¿Y si su lista es: Jon, Joanna, Jo, Jonathan, Josh, Joseph?

OK, digamos:

  • ‘a’ <'b' <'c' ... por definición (definamos '=' y '>‘ de manera similar)

A continuación, definamos una función (‘: =’ es decir ‘se define como’):

  • nombre_nombre (nombre1, nombre2): =
  • nombre1
    if first_letter (name1)
  • nombre2
    if first_letter (name1)> first_letter (name2)
  • first_name (rest (nombre1), rest (nombre2))
    si las primeras letras son iguales
  • nombre1 si nombre1 está vacío (digamos que pueden existir nombres sin letras y definirlos como ”)

donde first_letter () debe ser autoexplicativo, rest (name) asocia un nombre al mismo nombre con la primera letra eliminada (por ejemplo, rest (‘Jon’) = ‘on’)

Y otra vez:

  • first_in_list (name_list): =
  • cabeza (nombre_lista)
    if length (name_list) = 1
  • first_name (head (name_list), first_in_list (tail (name_list))
    de otra manera

Donde length (list) le dice cuántos elementos (nombres en nuestro caso) hay en una lista, tail (l) le da una lista diferente, donde se elimina el primer elemento de l (por ejemplo, tail (‘Jon’, ‘ John ‘,’ Joanna ‘) =’ John ‘,’ Joanna ‘), head () le da el primer elemento de la lista, el resto debe ser lo suficientemente claro (y está reutilizando las funciones definidas anteriormente).

Aquí, puedes ver muchas matemáticas, incluso si eso no es fácilmente reconocible por aquellos que tienen en mente solo las matemáticas que se ven en la escuela secundaria. A saber:

  • Existe la noción de función, pero los números no aparecen mucho (solo en longitud ()), estamos trabajando con otras entidades (formalizadas), es decir, nombres y letras.
  • existe una relación de orden, donde “relación de orden” se refiere a una generalización de la idea de ordenar números. Los dos están tan conectados que reutilizamos el símbolo ‘<', redefiniéndolo para otro propósito

Ahora, en la práctica, este es un ejemplo de un programa de computadora. Hay aplicaciones de software que pueden traducir símbolos similares a los anteriores en algo real, de modo que eventualmente obtendrá el primer nombre en una lista. Esta no es la forma en que generalmente se te presenta la programación, porque es un estilo de programación llamado estilo funcional y hay un estilo diferente (llamado imperativo, de procedimiento) que (todavía) es más común entre los programadores. Sin embargo, el ejemplo debería darle una idea de que la informática se trata de conceptos matemáticos, aunque no necesariamente tienen mucho que ver con los números.

En conclusión, la informática es una forma de matemática, pero no solo la que la mayoría de la gente suele tener en mente. ¿Eres bueno en matemáticas? Si pudieras seguirme hasta ahora, probablemente sí. ¿Te gusta? Si te ha gustado lo que escribí hasta ahora, probablemente sí. ¡Pero hey! No confíe solo en una respuesta de Quora, estudie algo sobre el pensamiento computacional y un lenguaje de programación real (Python o Java pueden ser buenos iniciadores) y luego decida por su cuenta.

¿Necesitaré matemáticas clásicas (numéricas) en una carrera de informática? Será una herramienta necesaria y útil, usará una cantidad (por ejemplo, todavía necesito límites y series numéricas para determinar cuánto es rápido un programa, necesito una gran cantidad de estadísticas, por ejemplo, para escribir programas que me dicen cuán similares son dos páginas web con respecto a los temas que tratan), pero no es necesariamente crucial.

Oh, Dios, no.

Lo único que podría impedir que aprenda a programar es la falta de la capacidad fundamental para aprender. Eso es. Y todos tienen eso, en diversos grados.

Experiencia personal: Fallé mi clase de física de inmediato cuando terminé mi primer semestre como estudiante de CS. Obtuve una D en Cálculo I, y en mi introducción. a la clase de programación, obtuve un B. Mi primer semestre fue terrible. Todo porque soy muy malo en matemáticas. Todavía soy malo en matemáticas. Pero las matemáticas no son lo que aprenderás como programador (ya sea que te estés matriculando o no en un programa de CS).

Lo peor que me ha sucedido hasta ahora en la universidad es lo que más me ha fallado en física y casi las fallas en matemáticas. La carga de mi curso se reemplaza con algunas clases relativamente esenciales que son importantes para cualquier estudiante universitario de CS, y eso significa que tomaré 1 o 2 clases más que el resto de mis compañeros antes de graduarme.

La falla principal de todos los programas de CS es que te obligan a tomar mucha física y matemáticas antes de comenzar, lo que crea la falsa impresión de que la programación se trata de comprender el efecto Doppler o saber cómo graficar ln (0). Esto está mal.

Lo que aprenderá como programador son estructuras de datos avanzadas, algoritmos, estructura de código, métodos de programación eficientes y cosas de esa naturaleza. A veces te encontrarás con algún problema que requiere que sepas cómo calcular el registro [matemático] [/ matemático] de un número, pero para entonces habrás adquirido la capacidad de aprender cosas sobre la marcha, y esa clase de cálculo fallaste va a sumar 3 minutos de consultas de búsqueda de Google.

Sí, un buen conocimiento de las matemáticas es una gran ventaja para un programador. Y admito que es importante (al menos) tener una comprensión básica de la física. Pero no es tan necesario como sus profesores le dirán, así que tome esa clase de Física 101 con todos los demás estudiantes de primer año.

Ser un buen programador se trata de conocer sus debilidades y eliminarlas aprendiendo lo que aún no ha aprendido. No hay nada abstracto o espiritual al respecto. Se trata de si estás o no dispuesto a convertirte en un estudiante permanente de tus propios fracasos.

No.

Piense en ello como “el arte del desarrollo de software”, porque está mucho más cerca de eso que de conocer sus tablas de multiplicar. Comencé la vida como un buen artista, y todavía uso esas mismas habilidades para escribir software.
Como programador de aplicaciones, en realidad uso muy pocas matemáticas, que debo saber en mi cabeza. Un tipo diferente de programador puede requerir más matemáticas.

Pero aquí hay algunos puntos a considerar:
– Como con cualquier cosa, si necesitas saberlo con frecuencia, * lo * aprenderás.
– Con el software, generalmente puede buscar lo que necesita saber.
– Si está haciendo cosas usando pruebas (muy recomendable), puede escribir una prueba de lo que espera que suceda, incluso antes de escribir código que ejecute funciones “matemáticas”.
– La “matemática” más compleja en software es especializada y, a menudo, encapsulada.
– El software de escritura es en realidad la culminación de una gran cantidad de otras habilidades y tareas, sabiendo que una sola de ellas no le permitirá escribir software.

Entonces, para responder a su pregunta, no, no necesita saber matemáticas a menos que esté trabajando con un pequeño subconjunto especializado de software.

No particularmente. Escuché a alguien decir que, en el futuro, los programadores serán obsoletos, porque podrás decirle a la computadora exactamente lo que quieres hacer y la computadora simplemente lo hará. En programación tenemos una palabra para eso: ¡programación! La programación es solo decirle a una computadora qué hacer.

El caso es que las computadoras son bastante estúpidas. Por ejemplo, si te pido que me traigas una bebida, irás al refrigerador, abrirás el refrigerador, obtendrás la bebida específica que quiero, cerraré el refrigerador y me traerás la bebida, ¿verdad? (Bueno, probablemente me diga que vaya a buscarlo yo mismo, pero de todos modos). La computadora no conoce ninguna de estas cosas, por lo que debe indicarle que realice cada uno de esos pasos. Incluso necesita enseñarle cómo caminar, cómo ubicar el refrigerador, cómo ubicar el mango, cómo agarrar el mango, etc. Las computadoras son idiotas. No saben nada (En realidad, eso está cambiando lentamente, pero de todos modos).

Por lo tanto, para ser un programador exitoso, necesitas entrar en la mentalidad de la computadora, lo que significa que debes convertirte en un completo idiota que no sabe nada, para descubrir cómo hacer que haga lo que quieres que hacer En esencia, la programación es la contabilidad, es hacer un seguimiento de qué valores están dónde y qué significan. Muchos de los principales paradigmas de programación están diseñados para simplificar esto. Por ejemplo, en el trabajo, uno de los paradigmas que utilizamos es el modelo de servicio, donde todo el código que realiza funciones básicas de recuperación de datos en una cosa va en un archivo llamado thingService. A su vez, thingService llama a las funciones en thingRepository para acceder realmente a la base de datos. El código que le permite obtener las cosas desde afuera está en un archivo llamado restThing. De esta manera, mantenemos todo organizado, ¡y escribir código es bastante fácil! (La configuración es en realidad mucho más complicada que eso, pero esta es la esencia básica).

No hay duda de que ser inteligente es de gran ayuda cuando se programa, porque antes de poder usar modelos limpios como ese, debe escribir todo el código en ellos, y puede que necesite realizar operaciones complicadas. Alrededor del 50% de la programación está corrigiendo errores, lo que significa que debe ser lo suficientemente inteligente como para descubrir cómo encontrarlos. Eso no siempre es fácil. A menudo es más fácil construir algo desde cero que corregir errores (por supuesto, lo que construiste desde cero también estará lleno de ellos). En realidad, no necesitas hacer * matemáticas *, pero sí debes ser capaz de pensar como una computadora: como un completo idiota.

No, pero entiendo que las matemáticas son una buena habilidad.

Escribir un programa no requiere muchas matemáticas, PERO escribir un programa confiable y eficiente podría pedir algunas matemáticas (mejorar las velocidades de cálculo, saber qué tipo de matemáticas usar, etc.).

Y, por supuesto, dependerá del campo en el que pueda trabajar. Por ejemplo, si trabaja en gráficos 3D, audio (como yo), ciencias de la computación u otros campos, necesitará comprender (y a veces hacer) las matemáticas requeridas.

Pero no te preocupes, como todo, las matemáticas no son tan difíciles.

Yo diría que es probable que sea una pérdida de tiempo.

La primera pregunta es ¿Por qué?

¿Qué te hace querer ser un “programador”?
Si es el dinero, nunca ganarás mucho si tienes habilidades lógicas débiles (malas en matemáticas). También es probable que seas muy infeliz.

Si desea “diseñar” software, porque siente que tiene buenas ideas, busque en el lado de la gestión de proyectos del desarrollo. Si eres una persona de personas, es posible que te guste esta área. También hay documentos escritos que requieren poca lógica.

Hay cientos de trabajos por ahí, pero la línea de base es que si no te gustan las matemáticas, no eres bueno en eso, probablemente no te gustará la programación o serás bueno en él, así que encuentra uno de los otros trabajos, que mejor se adapte a tu personalidad .

Mucha gente dice “La programación no requiere matemáticas”. El problema es que solo lo ven desde la superficie, la programación es solo álgebra básica, con conceptos f (x). El problema es que las matemáticas representan el pensamiento lógico, el análisis, la capacidad de extraer y extrapolar funciones complejas.

La programación es mucha lógica y pensamiento creativo. Muchos “programadores” hacen un código lento porque no tienen idea de conceptos como Big O, tiendo a llamarlos novatos o script kiddies, pero si nunca superan ese punto, es probable que nunca sean felices, y pueden tener limitaciones financieras. crecimiento.

Si bien la buena comprensión matemática puede ser una ventaja para alguien que busca una carrera de programación, ¡en realidad NO ES OBLIGATORIO!

La codificación es una actividad muy diferente. Se trata de resolver problemas. Seguro que algunos de estos problemas pueden resolverse más fácilmente cuando se reducen a un modelo matemático, pero la mayoría de las veces solo aplicará los resultados; entonces una simple comprensión de la teoría será suficiente.

En realidad, saber que ESTE modelo es el que lo ayudará a resolver ESE problema es mucho más útil que tener una comprensión completa del grado de investigación de la teoría subyacente del modelo. Y de esto se trata la codificación: poder identificar el patrón correcto que lo ayudará a resolver su problema real.

También puede ver aquí para obtener más información: la respuesta de Elvis Donald Attro a las malas, pero quiero aprender la codificación, ¿qué idioma (s) es más fácil para alguien como yo?

More Interesting

¿Cuál es el uso de las matemáticas en el mundo real en informática?

¿Se pueden modelar todos los algoritmos iterativos de forma recursiva y viceversa?

¿Cuál es la mejor manera de manejar los problemas de coma flotante con cálculos financieros en JavaScript?

¿Puede una inteligencia computacional observar una ley física incontestable?

¿Cómo puedes escribir en C una función que devuelve el punto fijo de una función?

¿Cuál es el orden correcto para tomar cursos en línea sobre algoritmos (del MIT y Stanford) para un estudiante interesado en aspectos teóricos y teoría de la complejidad?

¿Cómo resuelven las computadoras fórmulas y ecuaciones matemáticas?

¿Cuáles son algunos de los ejemplos más interesantes de problemas indecidibles sobre las máquinas de Turing?

¿Cuál es el número más grande que puede generar con un procesador de 64 bits?

¿Hay una manera eficiente de comparar la similitud de una cadena con cada permutación de otra cadena (es decir, un grupo simétrico)?

¿Qué libros leerías para poder resolver el problema P versus NP por tu cuenta, recién salido de la escuela secundaria?

Cómo resolver la relación de recurrencia T (n + 1) = T (n) + ceil (n + 1) usando la sustitución para hacer un análisis asintótico

¿Puede una resta dar un resultado negativo usando un número sin signo?

¿Debo crear una solución para un problema matemático que nunca he encontrado antes, o tomar la ayuda de alguien y aprenderlo de manera efectiva?

Dadas las ventajas de usar el ternario como base de las computadoras, y la experiencia de los soviéticos, ¿por qué no hay computadoras cuaternarias ternarias o imaginarias? Knuth aprobó el ternario y propuso el cuaternario como eficiente para la computación científica.