Pregunta impresionante
Ir directo al grano. El camino de aprendizaje es una combinación de caminos de aprendizaje que van en paralelo. Estas rutas incluyen aprender a escribir programas simples, conocimiento de hardware y sistemas operativos, estructuras de datos y algoritmos, bases de datos, redes y compiladores. Y para fortalecer los fundamentos, siempre preferiría los libros sobre cualquier cosa.
Lógica de programación, implementaciones ad-hoc, bloques de construcción (bucles, variables, condicionales)
- Lenguaje de programación C
C te permite jugar con memoria de bajo nivel y punteros. Estas cosas pueden ser difíciles de entender al principio, pero eso no es necesario en este punto. Es más importante aprender a programar utilizando variables, bucles, sentencias condicionales, etc. al principio. C tiene una sintaxis muy peculiar en comparación con otros idiomas. Es muy fácil aprender otros idiomas después de C.
Recursos:
El lenguaje de programación C: Brian W. Kernighan, Dennis M. Ritchie - C ++
Al igual que C, C ++ también ofrece manipulación de memoria de bajo nivel. Además está orientado a objetos.
Recurso:
Principios y práctica utilizando C ++: Amazon.in: Bjarne Stroustrup: Libros
Arquitectura de Computadores
Esta es mi parte favorita, especialmente los sistemas operativos. Esta parte trata sobre el diseño de hardware informático. Conocerás cómo se construyen la RAM y los procesadores. Luego, el sistema operativo los conecta con dispositivos de E / S para ejecutar software de nivel de usuario y kernel. Este camino de aprendizaje consta de tres temas:
- ¿Cuáles son los mejores recursos para aprender el desarrollo de la minería de bitcoins?
- ¿Cuáles son los mejores recursos para aprender Node.js?
- ¿Cuáles son los mejores libros, sitios web y otros recursos para usar a diario con el fin de mejorar y dominar mi comunicación escrita en todas las facetas de la escritura?
- ¿Cuáles son los mejores recursos disponibles para el desarrollo web completo?
- ¿Cuáles son los mejores recursos en línea para la investigación y preparación de debates en escuelas secundarias?
- Electrónica digital
Números binarios, números hexadecimales, álgebra booleana, puertas lógicas, registros, lógica secuencial y combinada
Recurso:
Diseño digital: con una introducción al Verilog Hdl - Organización de la computadora
Formato de instrucciones, direccionamiento, organización de la memoria, programación de una computadora básica
Recurso:
Arquitectura del sistema informático, Morris Mano, 3e - Sistemas operativos
Procesos, subprocesos, programación, gestión de memoria, implementación de sistema de archivos
Recurso:
Sistemas Operativos: Internos y Principios de Diseño, 7e
Conceptos del sistema operativo: Silberschatz, Galvin, Gagne
Estructuras de datos y algoritmos
Cuando la gente dice ciencias de la computación, esto es lo primero que viene a la mente.
- Estructura de datos
Resumen de tipo de datos e implementación de Array, Lista enlazada, Pila, Cola, Árbol binario, Árbol de búsqueda binaria, Gráficos
Recurso:
Estructuras de datos – GeeksforGeeks - Algoritmos
Dividir y conquistar, búsqueda, clasificación, programación dinámica, algoritmos codiciosos, retroceso
Recursos:
Algoritmos – GeeksforGeeks
Introducción a los algoritmos: Cormen, Leiserson, Rivest, Stein 3ED
Red de computadoras
Arquitectura de red en capas, Mecanismos de conmutación, Protocolos, Tecnología de Internet
Recurso:
Redes Informáticas, Tanenbaum, Libro 5e
TCP / IP Protocol Suite: Forouzan
Bases de datos
Diseño de bases de datos, Tablas, SQL
Recursos:
Sistemas de gestión de bases de datos: Ramakrishnan y Gerke
SQLZOO
Teoría de la computación y diseño de compiladores.
- Teoría de la computación
Automatismo Finito, Expresiones Regulares, Gramáticas, Máquinas De Turing
Recurso:
Introducción a la teoría de los autómatas, lenguajes y computación, 3e, Ullman - Diseño del compilador
Análisis léxico, análisis de sintaxis, análisis, gramáticas, detección y recuperación de errores, generación de código
Recurso:
Principios del diseño del compilador: Aho, Ullman
Editar:
Inteligencia Artificial (sugerida por el Dr. E. Douglas Jensen en comentarios)
Recurso:
Inteligencia Artificial: Un enfoque moderno por Stuart Russell y Peter Norvig
Esta lista cubre todos los principales temas fundamentales de la informática. El siguiente objetivo es ver cómo todas estas partes se conectan entre sí para formar sistemas complejos.