“Ingeniero de CS” bueno es realmente un término ambiguo y podría significar cosas diferentes para diferentes personas. Lo mismo se aplica al término – “matemática débil”.
Contestaré en términos de “hacer un buen software”.
En términos generales, hacer un software de extremo a extremo consta de dos cosas:
1. Buen algoritmo / diseño
2. Buena implementación / codificación
- ¿Cuál es una buena manera de aprender y comprender la escritura dependiente en un idioma como Idris / Coq / Agda?
- Dada una matriz que consta de solo 0s y 1s, ¿cómo puedo encontrar la submatriz más grande que contenga solo 1s?
- Cómo aprender la optimización matemática para el aprendizaje automático y el aprendizaje profundo
- ¿Es el operador de módulo (%) adecuado para el muestreo?
- ¿Cuál es el problema P versus NP en informática?
Por supuesto, el punto (1.) requiere fuertes bases matemáticas. Hay tantos algoritmos disponibles, uno debe saber por qué un algoritmo es mejor que otro, en qué casos usar cuál, la complejidad de tiempo y espacio, cómo cada módulo en su software afecta el rendimiento en términos de memoria y velocidad, etc.
El punto (2.) trata principalmente sobre el comando de uno sobre un lenguaje de computadora. Se le dará el diseño de un software y tendrá que simplemente implementarlo. Aquí básicamente se requiere “lógica” e inmensa “práctica” de codificación, no tener control sobre las matemáticas está bien.