Esta no puede ser una lista exhaustiva. Uno, porque no soy un experto (solo lo he estado haciendo 20 años y he tenido varios niveles de interés en estos, por lo que tendrá que darme un descanso). Dos, porque es un campo en constante evolución que probablemente sea una de las cosas más complejas que la humanidad haya hecho.
Dijiste “especialmente hardware”, pero cada pieza que aprendes te ayuda a entender más acerca de cada otra pieza. Lo que aprende sobre el software lo ayuda a aprender más sobre el hardware y viceversa. Debe comprender no solo “qué” y “cómo” convertirse en un experto, sino que también debe comprender completamente “por qué”. Sé más sobre el software, pero espero que pueda comenzar a comprender el hardware a partir de algunas de las piezas de información en esta publicación.
Aprenda a construir uno usted mismo a partir de piezas (hay un subreddit para aprender cómo y qué comprar – / r / buildapc). Aprenda a instalar y mantener más de un sistema operativo (basado en Unix y Windows son dos buenas opciones). Aprenda el funcionamiento del sistema de archivos y las compensaciones entre diferentes sistemas de archivos (la página wiki del sistema de archivos podría ser un buen comienzo). Aprenda cómo configurar y mantener una red doméstica y qué hacen todas las cosas en la interfaz de usuario de administrador. Aprenda a configurar y mantener un servidor en su LAN local. Después de aprender un montón de otras cosas en otra parte de esta lista (programación, arquitectura de computadora, etc.), intente instalar Linux From Scratch (sitio web Linux From Scratch).
- ¿Qué tipos de tabletas de dibujo te permiten usarlo como un mouse?
- ¿Puedo reflejar la pantalla de mi PC en mi televisor con un cable HDMI? Funciona con mi computadora portátil, pero aparentemente no con mi PC.
- Cómo reemplazar la placa base de mi computadora portátil
- ¿Por qué existen monitores de 59.94 hz?
- ¿Funcionará una computadora portátil normal en el espacio?
Aprende automatización. Aprenda las técnicas de automatización de shell (Bash (Unix shell)) y UI (muchos marcos para el escritorio y la web, y a menudo sistemas especializados en cada sistema operativo; algunos realmente populares / básicos en Windows son autohotkey y AutoIt). Aprenda la automatización del sistema en varios sistemas operativos (Powershell, WSH, WMI y muchas tecnologías antiguas en Windows, no estoy seguro en otros sistemas operativos).
Aprenda cómo usar la web, motores de búsqueda, correo electrónico, foros web, sitios de preguntas y respuestas, etc. Aprenda cómo configurar y usar servidores web, servidores de correo, ftp, bit torrent, irc, usenet, etc. (ambos en el lado del cliente, y configuración y mantenimiento en un servidor: primero haría el lado del cliente para todo, y me sentiría realmente cómodo antes de molestarme con los servidores).
Descubra los libros que el plan de estudios del MIT usa para enseñar tanto el hardware como el software (programa MIT de Ingeniería Eléctrica y Ciencias de la Computación). Cómprelos, léalos y practique con ellos. También encuentre cursos en línea, grupos de estudio de pares y comunidades en línea para cada una de las cosas que hace. Nadie se convierte en un experto a través del estudio o la práctica. Necesitan personas e ideas conflictivas / de apoyo para lograr un progreso significativo y oportuno. A continuación se presentan algunos detalles más específicos sobre las cosas que aprenderá. También puede aprender de la información en línea, y debería, pero eventualmente debería abrir algunos libros y trabajar para comprender su contenido.
Aprenda electrónica para aficionados, aprenda arquitectura básica de computadoras y construya todas las partes de una computadora que funcione en un simulador eléctrico. Aprenda una arquitectura informática más avanzada (procesamiento de vectores, canalización, ejecución fuera de orden, etc.). Aprenda técnicas de fabricación de electrónica industrial, cómo funcionan las máquinas, cómo funciona el proceso de diseño, diversas técnicas para reducir el tamaño, etc.
Aprenda a programar y automatizar en Lisp / esquema, Python, Java, shell (en múltiples sistemas operativos), C y ensamblaje (x86 y Arm). Aprenda cómo construir un compilador, cómo construir y un sistema operativo, y cómo construir un emulador (haciendo versiones pequeñas de estas tres cosas y haciendo que ejecuten el software que ha creado). Aprenda cómo funciona la E / S en lenguajes de programación y bibliotecas para cada uno (archivo, video 2D y 3D y sonido y música, redes, dispositivos de entrada humana). Aprenda docenas de formatos de archivo comunes. Aprenda cómo funciona la compresión de archivos (tanto sin pérdida como con pérdida) y varios esquemas comunes existentes para la compresión.
Aprenda todo sobre estructuras de datos y algoritmos y teoría de grafos.
Aprende a construir códigos y sistemas de empaque. Aprenda cómo funcionan las bibliotecas. Aprenda cómo funcionan los hilos y la concurrencia. Aprenda acerca de los semáforos de todo tipo. Aprenda sobre todas las formas de base de datos (todos los sistemas de archivos, RDBMS, almacenes de documentos, almacenes de mapas de bits, etc.) y cómo funcionan de abajo hacia arriba. Conozca todas las estructuras de datos y optimizaciones que se pueden hacer en una base de datos (cientos). Aprenda acerca de la memoria transaccional / STM. Aprenda sobre las estructuras de datos sin bloqueo.
Aprenda todo sobre las versiones semánticas (sitio oficial de versiones semánticas), por qué es importante y cómo usarlo. Obtenga información sobre la compatibilidad con versiones anteriores (compatibilidad con versiones anteriores) en software y hardware y cómo hacer que funcione en la práctica. Aprenda sobre los sistemas de control de versiones de software múltiple y cómo usarlos (tanto centralizados como descentralizados). Aprenda cómo funciona diff, tanto desde el punto de vista del usuario como desde el punto de vista algorítmico.
Aprenda el modelo OSI (modelo OSI) y los fundamentos básicos de redes. Aprenda todos los protocolos básicos que usamos en Internet hoy (datagrama y tcp / ip). Aprenda todo sobre las redes modernas y el enrutamiento (tanto a nivel de hardware como a nivel de “firmware”), todo sobre conexión inalámbrica y QoS, etc. Aprenda cómo detectar tráfico de todo tipo.
Aprenda todo sobre la implementación de software y hardware y la garantía / supervisión del tiempo de actividad. (Ingeniería de confiabilidad)
Aprenda todo sobre la integración y el despliegue de software continuo (integración continua).
Aprenda acerca de la seguridad informática. Obtenga información sobre PII (información de identificación personal) y el modelado de amenazas (página wikipedia de modelo de amenaza y página wiki OWASP de modelado de amenaza de aplicación). Conozca todas las categorías de vulnerabilidad y cuáles son las fuentes más comunes de ellas. Aprenda cómo crear fallas de seguridad en su propio software y cómo solucionarlas. Aprenda a crear e implementar todas las formas de malware. Aprenda a usar depuradores de software de todo tipo (nivel de origen, nivel de memoria, sniffers de red, etc.). Aprenda a construir y usar herramientas de fuzzing (prueba de fuzz).
Aprenda todo sobre las pruebas automatizadas, tanto de hardware (equipo de prueba automático) como de software (automatización de prueba).
Aprenda todo sobre cifrado y criptografía. Aprenda cifrados, cifrado de clave pública y privada. Aprenda todo sobre la generación de números pseudoaleatorios y la entropía. Aprende sobre los certificados. Aprenda sobre las pruebas de complejidad. Aprenda acerca de las técnicas de piratería de seguridad (hardware y software y software / ingeniería social. Mitm, craqueo de fuerza bruta y exploits matemáticos).
Aprenda sobre la ofuscación de código y las técnicas para garantizar la licencia (tanto de hardware como de software). Aprenda todo sobre DRM, tanto sobre cómo construirlo como sobre cómo romperlo.
Aprende Android e iOS. Aprende el sistema operativo. Aprende a programar. Aprende a implementar. Aprenda cómo funciona el mercado, tanto desde el punto de vista de la funcionalidad (como desarrollador y consumidor) como desde el punto de vista comercial. Aprenda y comprenda el marketing en estos mercados.
Aprenda a trabajar en un equipo de desarrollo de software / hardware. Luego aprende a liderar uno. Haga esto tanto en una organización pequeña como en una grande. Aprenda cómo funciona la investigación de software y hardware.
Conozca las fuerzas comerciales. Conozca toda la historia del negocio de software. Aprende las tendencias futuras. Conozca cómo operan las grandes empresas (operaciones, asociaciones, toma de decisiones, adquisiciones y fusiones, finanzas, marketing). Aprenda cómo operan las empresas pequeñas y de nueva creación (ideación, planes de negocios, hojas de ruta, operaciones, financiación, encontrar el producto adecuado para el mercado, encontrar y ejecutar el crecimiento).
Aprenda HCI (interacción humano-computadora) y UX (diseño de experiencia del usuario) y diseño visual (diseño gráfico).
Aprenda todo sobre ciencia de datos (ciencia de datos). Aprenda todo sobre el aprendizaje automático (aprendizaje automático). Aprenda todo sobre IA (inteligencia artificial): enfoques de software y hardware (uno de ellos podría ganar la carrera de “IA fuerte”, y apuesto a que es el hardware). Aprende sobre robótica.
Aprenda toda la historia humana y cómo la tecnología ha cambiado la sociedad y cómo continúa haciéndolo. Aprenda todo sobre las matemáticas y las estadísticas y la física y el medio ambiente y la logística del transporte y la salud humana y las estructuras sociales y la psicología, y cómo las computadoras se ajustan a todas ellas, las automatizan y las mejoran.
Aprenda todo sobre finanzas y comercio y cómo encajan las computadoras.
Entonces, el punto es que sigue aprendiendo durante más de una vida, y algún día puede lograr esta omnisciencia que es la única medida verdadera de ser “un experto en informática”. Probablemente sucederá aproximadamente al mismo tiempo que la singularidad (singularidad tecnológica) que une todas nuestras conciencias en una sola máquina de inteligencia.
O bien, podría aplicar un enfoque más utilitario, determinar sus objetivos específicos (los criterios SMART son una forma de determinar que lo está haciendo bien) y aprender lo que necesita para lograr esos objetivos. Luego, si está interesado, recoja lo que pueda a un lado.
Con suerte, te doy suficientes migas de pan para ayudarte a buscar en Google, encontrar libros y grupos sociales.