Ninguno.
La informática es una ciencia , y lo más importante en el estudio de la ciencia es la capacidad de simplificar la experiencia diversa en un modelo abstracto que tiene poder explicativo y predictivo. Es posible que necesite o no habilidades de codificación para configurar sus experimentos, y puede que necesite o no habilidades matemáticas para expresar su modelo. Pero si tiene ambos y no puede dar ese salto de abstracción, no creo que pueda ser un científico informático exitoso.
Déjame hacer esto un poco más concreto. El Departamento de Energía de los Estados Unidos quisiera tener una computadora exascale en los próximos años que (con suerte) no consuma más de 20 megavatios. Tal máquina podría tener mil millones de núcleos de procesador. Si eres matemático, esto podría hacerte repensar cómo abordarías problemas como la cuantificación de la incertidumbre. Si eres programador, definitivamente estás repensando cómo puedes hacer que MPI funcione (en absoluto).
- ¿Qué tan bueno es comenzar su carrera como ingeniero de software asociado en CA Technologies Hyderabad?
- ¿Cuál es la forma más rápida de convertirse en director de un gerente?
- ¿Cuáles son algunas buenas tácticas pasivas agresivas que puedo usar en mi trabajo?
- ¿Cómo es una maestría en gestión de software en CMU-SV?
- ¿Cuánto esfuerzo debo poner para ingresar a Google?
Sin embargo, la cuestión de la informática, comenzando con la proposición de que la utilización de la medición se debe hacer desde el escaso recurso, estamos pasando de escasez de FLOPS a escasa potencia, por lo que una máquina totalmente utilizada debería extraer 20MW desde el momento en que se pone el piso de la sala de máquinas hasta su desmantelamiento. Nunca antes tuvimos que pensar en cómo ejecutar simulaciones físicas en un entorno con restricciones de potencia, por lo que la pregunta científica es: ¿qué significa eso? ¿Cómo modela las aplicaciones para comprender cómo reaccionarán ante un entorno con restricciones de energía? ¿Cómo modela el sistema para que la energía pueda reasignarse dentro de él donde sea más beneficioso? ¿Cómo modela trabajos para que el algoritmo de programación de trabajos pueda tener en cuenta el tiempo, el recuento de nodos y los vatios?
La codificación y las matemáticas son ciertamente habilidades útiles para tener en cuenta estos problemas, pero la mayoría de las soluciones reales parecen provenir de mirar gráficos de datos experimentales y garabatear en la pizarra.