El bit de orden más alto es que las personas de sistemas son constructores, mientras que las personas de teoría son solucionadores de problemas abstractos. Entonces, si uno fuera a generalizar, la gente de teoría está más interesada en mejorar las primitivas, mientras que la gente de sistemas está más interesada en unir los bloques de construcción para construir algo.
La mayoría de las otras diferencias surgirán de esta diferencia central.
Una forma de conocer la diferencia es ir a leer algunos documentos en ambas áreas. Probablemente notarás:
- ¿Cuáles son los problemas en la visión por computadora en imágenes médicas?
- ¿Los investigadores de matemática o ciencias de la computación teóricas leen documentos o simplemente tratan de pensar originalmente?
- ¿Cuáles son algunas preguntas de investigación de doctorado en el campo del "proceso de ciencia de datos"?
- ¿Cuál es el mejor lugar para la investigación a tiempo completo en arquitectura de computadoras en Bangalore que no sea IISC? Estar en el campo de la enseñanza, ¿cuál es la mejor opción?
- ¿Cuál es la diferencia entre visión por computadora, procesamiento de imágenes digitales y computación multimedia?
- Si lees un artículo teórico, generalmente hay mucho rigor matemático y atención a los detalles matemáticos en la búsqueda de la teoría.
- Si lee un documento de sistemas, normalmente encontrará muchos detalles sobre la implementación y, a menudo, datos sobre resultados experimentales: su sabor de obtener los detalles correctos es realmente construirlo y demostrar los resultados en la práctica.
- En términos generales, las matemáticas son más ligeras en los sistemas, pero la atención al detalle para obtener una implementación real en vivo es sustancialmente mayor.
- La gente de sistemas usualmente tiene muchas más oportunidades de trabajar en la industria – vea: la respuesta de Kartik Ayyar a ¿Cuál debería ser el camino para alguien interesado en la programación de sistemas?
Dicho esto, en la práctica, las líneas son más borrosas de lo que puedas imaginar.
Tomemos, por ejemplo, B-Trees y cómo surgieron debido a limitaciones en el hardware de la computadora que hicieron que el disco sea costoso. ¿Pertenecen en teoría o en sistemas? Podría argumentarse que cualquiera de los dos puede ser el caso.
Como tal, la mayoría de los buenos ingenieros de software e informáticos generalmente tendrán una comprensión completa de los conceptos básicos de múltiples subdominios de CS. A pesar de que podrían especializarse y gravitar hacia un área, probablemente al menos estarían lo suficientemente conscientes como para conocer los conceptos básicos y los desafíos de otros subdominios.