Una buena parte de ellos depende de tus objetivos reales (si quieres convertirte en un codificador científico, saber mucho sobre los modelos MVC podría no ser el primer y principal requisito …), pero diría que al menos:
- conceptos básicos básicos (variable, bucles, condicionales, recursividad vs. iteración, etc.);
- abstracción , lo que significa que puedes razonar en términos abstractos para descomponer y resolver un problema (cuando era más verde, solía pensar en Python; aprender más idiomas ayuda mucho);
- algoritmos y estructuras de datos más populares / comunes, incluso mejor si se especializa en un subcampo no tan popular / común;
- al menos 2/3 paradigma de programación diferente (OOP, funcional, etc.);
- análisis asintótico , es decir, poder estimar (aproximadamente) los rendimientos de ejecución de diferentes soluciones sin ejecutarlas;
- cómo construir, ejecutar y mantener un buen conjunto de pruebas automatizadas ;
- herramientas de versiones (git, subversión, etc.: una es suficiente, más es mejor);
- creación de prototipos , no estrictamente necesaria, pero a menudo bastante útil;
- construcción de código legible y mantenible (nombres de variables significativos, comentarios donde sea necesario, etc.);
- habilidades de comunicación (ser capaz de comprender los requisitos y presentar su trabajo, ¡ah, tanto y tan a menudo ignorado!)
Doy por sentado, por supuesto, que aprendiste a dominar al menos la sintaxis de un idioma . Haga 3 idiomas diferentes para decir que puede moverse con bastante facilidad en diferentes tareas, además será una buena práctica.
Y creo que esto debería cubrir la mayoría de las bases mínimas.
- ¿Por dónde empiezo construyendo un juguete controlado a distancia (desde una computadora) para mi mascota?
- ¿Cuáles son algunos buenos trucos de productividad para trabajar en una MacBook Pro?
- ¿Cuáles son las diversas propiedades de corrección de los modelos de software que se verifican con mayor frecuencia durante la verificación del modelo?
- ¿Cuál es, según usted, la mejor manera de pasar de la ingeniería de software a la gestión de productos?
- ¿Cuál es la diferencia entre un instalador, un código fuente y un paquete binario al instalar el software?
Espero que esto ayude, feliz codificación 🙂