Hay muy pocos requisitos previos, lo que hace que esta sea una pregunta sorprendentemente difícil.
Tenía unos seis años de experiencia en programación limitada, incluido un nivel A abortado, autoestudio, y un nivel AO muy limitado en ‘Computer Studies’ (por el cual obtuve una B) nuevamente autoestudio antes de estudiar matemáticas como estudiante universitario. Reemplacé la Relatividad Especial y la Mecánica Cuántica IIRC con una opción en Estándar y ML en mi primer año, y luego hubo ejercicios de programación en el segundo y tercer año que dieron algunas marcas adicionales.
El punto que estoy tratando de hacer es que no estudié Ciencias de la Computación hasta que tuve aproximadamente dos o tres mil horas de experiencia técnica (con lo que quiero decir que no juego) en Z80 y x86 y 6502, en ensamblador para todos, BASIC para algunos y Pascal para cualquier programa serio (como un descompilador parcial). Puede que esta no sea la forma en que otros lo estudiarán, pero significaba que para mí no había un orden real cuando finalmente pude estudiar Ciencias de la Computación como un Diploma (llámelo un curso de conversión; tenía efectivamente el mismo contenido que los dos año Parte II disponible en el momento para estudiantes de pregrado).
- Cómo convertirse en un experto en Java
- ¿Todos tienen que estudiar informática para ser relevantes?
- ¿Cómo es la vida más fresca con experiencia en informática en L&T Technology Services?
- Cómo aceptar el hecho de que soy el desarrollador de software más tonto de una empresa
- ¿Cómo aumentaré mi interés en la informática?
Si lo hago todo de nuevo, pero con los recursos disponibles en línea hoy en día en forma de MOOC (y he tomado bastantes, algunos parcialmente, pero algunos para completar el desafío), diría:
0) Pase de 12 a 16 horas con Python, aprendiendo los conceptos básicos de programación sin la sobrecarga de un IDE o incluso un tipeo fuerte. 1) Elija continuar en Python o elija otro idioma para cometer errores durante aproximadamente una hora al día durante un mes. ¡Más está bien! Estos se pueden combinar en una “Introducción a CS usando Python /
2) Algoritmos. Este es un tema al que puede volver una y otra vez, pero aprenda algunos algoritmos de clasificación y búsqueda, y pueda comparar su complejidad (notación Big O: hay más que eso, Theta y Omega y todo eso, pero eso es en la parte avanzada).
3) Matemáticas discretas. Álgebra booleana, obviamente, teoría de grafos pero nada demasiado avanzado todavía, y quizás alguna teoría simple de números.
4) Cálculo, si aún no lo ha tenido, pero de nuevo no a un nivel muy avanzado, lo suficiente como para que el método de Newton: Wikipedia tiene sentido, porque es el tipo de cosa que desea usar en métodos numéricos sin importar el aprendizaje automático .
En este punto, usted (o yo) tenemos todos los fundamentos para el lado teórico. Mi próximo trío sería 5) Hardware (Circuitos y Electrónica MITx Parte 1 y Parte 2 son excelentes y factibles, ¡Parte 3 es difícil!), 6) Sistemas operativos y 7) Compiladores. Ahora sabes cómo funcionan las computadoras
8) Las redes se basan en cierta comprensión del hardware y los sistemas operativos, pero el modelo OSI: Wikipedia muy bien significa que no tiene que preocuparse por ambos al mismo tiempo. Abre una comprensión más profunda de cualquier material basado en Web o Wifi
9) Gráficos por computadora, porque es divertido y también está lleno de algoritmos interesantes.
Y después de esto, el mundo es tu molusco elegido.