Si desea estar preparado para el futuro, el mejor consejo que le puedo dar es no encerrarse en una tecnología.
Así que no aprendas API a ciegas. Aprende cómo se conciben. ¿Cuáles son las filosofías detrás de la escena? ¿Cuáles son sus ventajas y defectos? Piense en el software en general, no en una tecnología específica.
También puede trabajar en una buena concepción del programa, ir a OOP y AOP es una buena opción de la OMI. Pero no solo entienda el mecanismo, realmente trabaje en la filosofía detrás del mecanismo.
No descuides la informática en general, como las estructuras de datos y los algoritmos, porque son conocimientos de tecnología cruzada que siempre son útiles.
También ve por buenas prácticas. A menudo tiene docenas de formas de hacer algo, pero la mayoría son basura: propensas a errores, difíciles de mantener, difíciles de entender más tarde o de otro programador, etc. . . Por lo general, el código es más difícil de leer que de escribir. Entonces, aprenda a dedicar un poco más de esfuerzo a escribir para facilitar la lectura (porque leerá el código más de lo que escribe).
Aprenda técnicas efectivas para depurar (uso inteligente de registro y depurador) y probar (cómo escribir código que se pueda probar fácilmente en la unidad y cómo automatizar estas pruebas).
Entonces, necesitará un fondo de tecnología general. Me refiero a un conocimiento muy amplio, como el funcionamiento de un procesador (la falta de caché o la predicción de bifurcación son un buen comienzo), sobre sistemas UNIX, sobre protocolos de red como IP, TCP y Ethernet, etc. . .
Al final, aprende a aprender. Si sabes aprender, entonces puedes adaptarte.
Necesitará un conocimiento sólido en tecnologías específicas para poder encontrar un trabajo, pero estos están desactualizados muy rápidamente (piense en COBOL, por ejemplo, o en la programación web en el momento de la guerra de IE / Netscape). Así que no confíes en ellos para estar preparados para el futuro. Serán clave para ser contratados, pero definitivamente no lo que hace a un gran programador y lo que hará que sus habilidades sean duraderas en el tiempo.
EDITAR: si recién está comenzando, definitivamente debe hacer algo. Cualquier cosa en realidad. Un juego como Tetris o serpiente es un buen comienzo y divertido. Si no hace las cosas, pasará mucho tiempo aprendiendo y realmente no obtendrá la experiencia necesaria para comprender completamente lo que aprende.
Pongamos un ejemplo con patrones de diseño. Los patrones de diseño son geniales y definitivamente debes usarlos. Pero si se usa en exceso, harán que su código sea complicado y difícil de entender. Tendrá que enfrentar el problema que resuelve un patrón de diseño y perder algo de tiempo tratando de resolverlo o sus efectos secundarios para comprender completamente de qué se trata el patrón de diseño. Los patrones de diseño deben usarse como pequeñas refactorizaciones a lo largo del tiempo cuando el código crece. Y sabrá cuándo se necesita un patrón de diseño cuando el beneficio del mismo sea mayor que la complejidad del código inducida por su uso. Esto requiere experiencia.
Definitivamente, haz las cosas, aprende de tus errores. No puedo insistir más: ¡ HAZ LAS COSAS !