Si quiere ser un ingeniero de software profesional y hacer de la programación su carrera, se supone que primero debe construir su propio sistema de conocimiento de computadoras. Con un sistema de conocimiento, no se perderá en el camino para ser un programador mejor y más razonable. Recomiendo la siguiente hoja de ruta para usted.
1, dominar un lenguaje de programación de adentro hacia afuera.
2, implementar estructuras de datos y algoritmos de uso frecuente en ese lenguaje. Las estructuras de datos utilizadas con más frecuencia incluyen listas vinculadas, listas doblemente enlazadas, mapa hash, árbol binario, árbol rojo-negro, gráfico; y los algoritmos comunes incluyen clasificación, búsqueda, análisis de expresiones regulares, ruta más corta, teorías gráficas y el resto
3, dominar las API nativas de un sistema operativo. Comencé con Linux y me familiaricé con POSIX API y las API específicas de Linux desde la gestión de procesos, la gestión de subprocesos, la sincronización de subprocesos y la exclusión mutua, la comunicación entre procesos, la programación de socket, la manipulación de bases de datos, la gestión de archivos, la gestión de privilegios y el resto. Más tarde me volví a Windows, comencé con la API de Win32 primero y cubrí las cosas como las de Linux.
- Cómo superar el nerviosismo por el ciclismo.
- Cómo mantenerse motivado durante estos dos años.
- Cómo practicar tener más confianza con mi voz.
- ¿Qué hace que el trabajo duro supere al talento?
- Cómo observar y pensar antes de expresarte.
4, maestro de protocolos de red comunes como TCP, IP, UDP, SCTP, ARP, RARP, HTTP, SMTP, SNMP, POP3, FTP, IPsec. Acabo de leer RFC con respecto a estos protocolos.
5, estudio de principios del sistema distribuido y prácticas comunes.
6, estudio seguridad cibernética.
7, estudiar matemáticas y leer papas.
Es una lista larga, y te tomaría años completarla. Cuando se pierda allí, puede consultar esta lista para ver dónde se encuentra ahora y hacia dónde se dirige. Por supuesto, no olvide aprender a usar otras herramientas como subversion, git, gradle, pip y cosas por el estilo para administrar dependencias y compilar.