Hay más cosas no técnicas que son importantes que técnicas, pero dado que expresaste específicamente tu pregunta a cosas técnicas, me enfocaré en eso.
Lo primero y más importante que separa el trigo de la paja es esto: ¿Te gusta programar lo suficiente como para divertirte a tu propio ritmo? Si lo hace, el tiempo que pase haciendo eso valdrá más que cualquier lista de elementos para aprender.
Aquí hay algunas cosas técnicas que debes entender:
- ¿Qué extrañé al no estudiar CS o CE como desarrollador de software? Estudié química y física, aprendí programación en el trabajo (C ++, Phython, un poco C #). Soy bueno en el procesamiento de imágenes y estoy trabajando a tiempo completo con sistemas HMI. ¿Qué me perdí?
- ¿Cuáles son las cosas en el desarrollo de software que solo puedo aprender trabajando en empresas y no solo?
- ¿Qué tecnologías (lenguaje de programación, framework y bibliotecas) se utilizan en productos y juegos de software comúnmente conocidos?
- ¿Por qué trabajas como desarrollador de software en lugar de construir tu startup?
- ¿Cuántos programadores se necesitan para este tipo de proyecto?
- Lógica. Tomar una clase formal de lógica no es necesario, pero no duele.
- Conceptos básicos de las redes TCP / IP.
- Algoritmos En la escuela aprenderás sobre la notación Big-O. Presta atención a eso porque aparecerá con frecuencia en las entrevistas, lo que significa que es algo que debes saber.
- Estructuras de datos.
- Bases de datos
- Herramientas de desarrollo. Si no ha instalado un entorno de desarrollo, hay muchos gratuitos. Sugeriría Eclipse ya que tiene el soporte más amplio para idiomas y entornos.
- HTML y XML.
- Microsoft Excel no es necesario per se, pero es una herramienta casi indispensable tanto para la programación como para los negocios.
- Buenas habilidades para resolver problemas.
- Un poco de comprensión de la seguridad informática va a ayudar.