No. Tal vez te confunde un programador competitivo demasiado entusiasta que solo conoce estructuras de datos y algoritmos (y nada más) y hace un gran negocio. [Yo fui uno entre esas personas en el pasado].
Otra pregunta es: ¿qué estructuras de datos y algoritmos? Hay demasiados y es imposible y no tiene sentido aprenderlos porque algunos se usan solo en dominios particulares y otros son puramente de interés teórico. Por ejemplo, la mayoría de la gente sabe ordenar porque es un algoritmo general. ¿Qué pasa con el algoritmo W? Las personas que trabajan con sistemas de inferencia de tipos pueden encontrarse con tales cosas. Es decir, es específico del dominio y no tiene mucho sentido que una persona ajena a él aprenda.
Eres competente en algoritmos, estructuras de datos y matemáticas discretas no me da una imagen completa de ti como ingeniero de software (aunque es bueno tenerlos en tu caja de herramientas de resolución de problemas). No me dice nada acerca de su capacidad para construir y pensar en abstracción, diseñando arquitectura de la aplicación que también son importantes para construir software robusto.
- Silicon Valley (serie de televisión): ¿Cuál es el ejemplo más cercano en la vida real al algoritmo de compresión de Pied Piper?
- ¿Cuál es la diferencia entre un gráfico y un árbol en estructuras de datos y algoritmos?
- ¿Qué es un algoritmo para darme sistemáticamente todas las combinaciones de elementos r de una matriz de elementos K?
- ¿Alguien ha utilizado un algoritmo genético para resolver la ecuación de Schrodinger (o alguna ecuación diferencial)?
- ¿Utiliza el cerebro un proceso de recursión?
Permítanme tomar un ejemplo: la multiplicación de matrices. Tú lo sabes. Tu no? Ahora puede modificarlo para aprovechar la memoria caché. ¿Qué sucede si quiero usar otros recursos de hardware para acelerarlo (como GPU)? Necesitas tener una idea aproximada de su arquitectura.
Algunas buenas lecturas
- Método amigable de caché para multiplicar dos matrices
- ¿Qué es el código “compatible con caché”?
- Optimice su código: multiplicación de matrices
Después de leerlos, puede tener una idea de que no todo son algoritmos y estructuras de datos.