Bueno, no hay daño en intentarlo, pero reconozca que todo es un gran cuerpo de conocimiento. Puede comenzar haciendo un resumen de lo que constituye “todo sobre las computadoras”. Un comienzo decente en el nivel superior es decir que hay temas de hardware y temas de software. No estoy seguro de si las aplicaciones de las computadoras pertenecen al nivel superior de la jerarquía del esquema, o si se ubican mejor como un subtema de software. Podría decirse que las interfaces de usuario son uno de sus principales temas que obviamente no es hardware o software. El establecimiento de una red tal vez pertenece en el nivel superior de su esquema.
En el lado del hardware, tiene un diseño lógico (por ejemplo, dadas y o-puertas, cómo hacer un medio adidor o un sumador completo o un flip-flop), y diseño de componentes (cómo se hace un and-gate o una o-puerta). Y luego está la física: ¿Cómo almacenan la información los discos duros? ¿Por qué el calor es un gran problema?
¿Cuáles son los factores que influyen en los tiempos? ¿Demoras en la propagación? Quizás en el tema de hardware, debería tener representaciones de datos (punto flotante, complemento a 2, complemento a 1, signo + valor, valores decimales), estructuras de memoria (bytes, palabras, páginas, segmentos, cachés), conjuntos de instrucciones (Risc, Cisc , microcódigo). Dejo los sistemas operativos y los lenguajes de programación como subtemas en “software”. El multiprocesamiento y la sincronización entre procesadores tal vez sea un tema de hardware. Estoy indeciso sobre dónde colocar gráficos de computadora. Un montón de hardware especializado para controlar pantallas de alta resolución, pero tal vez eso sea mejor cubierto por la parte de la interfaz de usuario de la taxonomía, ya que debajo de todo esto se trata en cuestiones de percepción humana. La computación cuántica es otro subtema del hardware en este punto de su desarrollo.
En el lado del software, tiene sistemas operativos, lenguajes de programación, metodologías de desarrollo (cascada, ágil, scrum, XP), la gestión de proyectos puede ser otro subtema, pero interprete de manera tan amplia como sea necesario para cubrir temas como mantener a las personas motivadas y coordinadas El uno con el otro, así como el presupuesto y el calendario. Odio decirles cuán poblados serán los lenguajes de programación que forman parte del subárbol de software. Puede iniciar directamente en una enumeración de lenguajes de programación en el siguiente nivel en la jerarquía, o puede intentar ajustar una capa más en el diseño del esquema aquí. Lenguas imperativas, lenguajes funcionales. Mi problema aquí es que quiero romper “lenguajes orientados a objetos”, pero luego voy a tener más de un lugar en la taxonomía a la que pertenece Python, por ejemplo. Sea flexible y decida por sí mismo qué desglose mejor le ayuda a obtener la búsqueda de aprender todo organizado. Gestión de bases de datos, simulación, optimización (programación lineal, programación dinámica, …), algoritmos, análisis de complejidad de tiempo y espacio. Técnicas de implementación de lenguaje (compiladores, intérpretes, optimizadores, compilación JIT, procesamiento de macros, bibliotecas estáticas y compartidas, enlazadores), control de versiones (CVS, SVN, git, …), seguridad, pruebas, inteligencia artificial.
En lugar de balbucear con tratar de pensar en lo que pertenece a esta taxonomía de conocimiento sobre computación, le pasaré la tarea. Como consejo general, le sugiero que sepa que todo esto es conocible, pero no intente forzarlo todo en su cabeza de un solo trago. No se sorprenda si encuentra que algunos temas son más interesantes para usted que otros. Concéntrese principalmente en lo que le interesa en lugar de tratar de dominarlo todo. Mantenga buenas notas. Existen herramientas que pueden ser más útiles que el papel, el lápiz y las tarjetas de notas. Creo que Pearltrees es una forma útil de mantener organizada mi colección de enlaces a páginas web y mis notas escritas a mano, pero hay muchas de esas herramientas para elegir.
Le insto a que se involucre en proyectos, escribiendo código, construyendo cosas en lugar de simplemente acumular conocimiento del libro. Práctica práctica práctica.
Espero que esta respuesta te haya ayudado en tu aventura. He estado en esto por más de 50 años y todavía no me quedan cosas por aprender y explorar. Un campo realmente fascinante.
En un contexto académico, este artículo puede ayudarlo a comprender la amplitud del campo: la guía ilustrada para un Ph.D.