¿Estaría perdiendo el tiempo ganando un profundo nivel de experiencia en algoritmos y matemáticas en mi carrera como ingeniero de software?

Esta es realmente una cuestión de qué barra debe eliminar una actividad para que no la considere una pérdida de tiempo.

En mi opinión, no es absolutamente una pérdida de tiempo aprender matemáticas y algoritmos avanzados, independientemente de su carrera. Sí, podrías ser músico, escritor o pintor y aún así no sería una pérdida de tiempo. La capacidad de razonar que te ayuda a desarrollarte es inmensamente valiosa. Además, voy a citar un correo electrónico de mi profesor de informática de la escuela secundaria. Ella fue la mejor maestra que he conocido y me inspiró a aprender todo lo que sé sobre CS hoy. Y ella dijo esto mejor de lo que yo podría:

Puede que no lo veas ahora, pero espero que algún día veas (como lo hicieron mis alumnos en el pasado) que te di la oportunidad de tu vida, algo muy único y no ofrecido en ningún otro curso en tu escuela. Mi curso no se trata de aprender algoritmos y programación; Esos son asuntos irrelevantes y sirven solo como una herramienta. Hay lecciones más importantes que aprender en la vida. Lo que estoy tratando de enseñarte podría enseñarlo en cualquier otra materia si fuera un maestro: ya sea física o incluso inglés. El tema es verdaderamente irrelevante, aunque la informática es un medio muy conveniente para mi mensaje.

Te abrí la puerta y te invité a caminar y ver: no hay límite de dónde puedes ir y qué puedes lograr si te atreves a probarlo, si perseveras y nunca te rindes. Puedes ir más allá de los límites que creías que eran tus límites; No hay límites que una persona no pueda ir más allá.

Tuve muchos estudiantes caminando por este camino, luchando, sudando, pensando que era imposible y yo mismo volviéndome loco, pero al final descubrí que todo era posible. Ahora están donde están en sus vidas debido a esa experiencia y, por lo tanto, ven el mundo con posibilidades ilimitadas. Fueron guiados por una persona con una visión y ahora crean y viven sus propias visiones. Todo comenzó con el coraje de seguir el curso de Plachta.

Además, ya sabes lo que dicen:

El tiempo que disfruta desperdiciando no es tiempo perdido.

(Atribuido erróneamente a Bertrand Russell (filósofo)).

Definitivamente no perder su tiempo. En su trabajo promedio de ingeniería de software, probablemente no podrá usar el conocimiento, pero seguramente usará el aprendizaje.

Si desea aplicar el conocimiento, hay muchas funciones de desarrollo de software en las que lo hará, cualquier cosa que implique simulación y modelado, por ejemplo, por lo que una amplia gama de trabajo científico, desarrollo de juegos, finanzas, etc. También hay un montón de matemáticas involucrado en una gran cantidad de trabajos de ingeniería en torno a la robótica, sensores, etc., cualquier cosa que involucre sistemas de control y procesamiento de señales. Luego, hay muchas compañías de software que tienen que hacer trabajos matemáticos de bajo nivel y / o diseño de algoritmos a fuerza de lo que están tratando de lograr, gente como Google, por ejemplo.

Sabes que he estado programando desde que tenía 8 años y tengo unos 12 años de experiencia en la industria, además tengo una maestría en CS.

¿Sabes lo que estaba haciendo el otro día? Pasando por el curso de Algoritmos básicos de Robert Sedgewick en Coursera.

Yo diría que nunca se puede saber lo suficiente de estas cosas. Nunca puede revisar sus algoritmos y estructuras de datos suficientes veces. Porque estas cosas son fundamentales para tu carrera como ingeniero de software.

Su trabajo es crear soluciones de software escalables que cumplan con los requisitos y que sean flexibles para cambiar. Sin una sólida comprensión de los componentes básicos, no podrá hacer esto y no quisiera que trabajara en mi proyecto (terminaría reescribiendo su trabajo).

De hecho, tampoco lo harían Google, Facebook, Amazon u otras compañías tecnológicas que dependen en gran medida de algoritmos y estructuras de datos. Es por eso que prueban estas cosas tan fuertemente en su proceso de entrevista.

Es un requisito previo para jugar en el juego.

Definitivamente no es una pérdida de tiempo. Nunca se sabe cuándo podría necesitar tal conocimiento.
Solucioné un problema de tiempo MAYOR para un cliente que estaba sobrecargando 8 servidores haciendo cálculos para el comercio de divisas. Estaba usando regresión lineal en 24 monedas con diferentes configuraciones que van desde 6 a 200. Al reescribir el código para hacer todas las sumas en secuencia y guardar los resultados para cálculos posteriores, el tiempo se redujo a menos de un segundo en lugar de minutos. Sin ese conocimiento de bajo nivel, la aceleración no podría haberse logrado.
También estirará su mente durante el proceso de aprendizaje.

Ni siquiera un poco. Tengo un título en física y un poco de posgrado en física en mi historia de la educación, y aunque rara vez lo uso directamente en mi profesión (desarrollador de software), las habilidades de pensamiento crítico y la capacidad de síntesis creativa que me enseñó me han impulsado mi carrera. Sin embargo, a veces lamento las matemáticas que no estudié.

Recientemente estaba tratando de entender Zerocoin y cómo encaja con Bitcoin, pero después de leer todo lo que pude y después de ver a Matthew Green explicar el concepto a una audiencia de ingenieros de software de Microsoft, de repente me di cuenta de que sin MUCHO más conocimiento matemático de lo que tengo nunca podría comprender completamente todos los conceptos. Eso fue frustrante ya que soy un programador desde hace mucho tiempo y siempre fui bueno en matemáticas en la escuela, pero esta vez estaba bloqueado.

Por lo tanto, estoy totalmente de acuerdo con las otras publicaciones aquí que cualquier matemática avanzada que aprenda tarde o temprano resultará útil de una manera u otra.

Cualquier aprendizaje nunca se desperdicia.

More Interesting

¿Qué tan difícil es para un ingeniero de software cambiar al comercio algorítmico?

¿Qué piensan los ingenieros de software sobre Swift (lenguaje de programación de Apple)?

Como ingeniero de software que ya trabaja, ¿cuánto tiempo tomaría ser contratado por Google y luego trabajar en el equipo de Angular?

¿Cómo es el día típico de un ingeniero de software?

¿Cuánto tiempo debe seguir con el campo técnico, especialmente si planea ser rico?

¿Cómo es desarrollar una aplicación para iPhone en comparación con Android?

¿Cuáles son buenas categorías / encabezados para un ingeniero de software?

A un ingeniero de software experimentado se le ha ofrecido un trabajo de Data + ML. ¿Qué debería hacer ella?

¿Cuánto tiempo se tarda en ascender a ingeniero de software iii en Amazon?

Actualmente estoy en noveno grado, y soy muy malo en matemáticas. Tengo que comenzar a planificar el futuro ahora, y dicho esto, ¿qué trabajo en todo el universo no requiere matemáticas?

¿Qué tan importante es la calidad de los ingenieros de software para el éxito de una empresa?

Ingeniería en Silicon Valley: ¿es cierta la siguiente generalización?

Si el trabajo de un ingeniero de software senior es de $ 150k / año, ¿cuánto debería ser si se traduce a la tarifa por hora de un contratista en W-2?

¿Por qué utilizamos funciones en un lenguaje de programación? Mi jefe argumenta que necesitamos crear una función solo si se usa en otro lugar. ¿Es eso cierto?

¿Cómo se compara la vida y el salario de un ingeniero de software con un banquero de inversión?