Conocimientos básicos para un Ingeniero de Software Back-End
Este artículo pretender ser un checklist rápida para responder la pregunta ¿Qué conocimientos necesita un Ingeniero de Software Backend? de manera que distintos ingenieros (en particular aquellos en búsqueda laboral) puedan asegurarse de revisar y complementar su educación.
Lectura de Inglés técnico
Sin lugar a dudas la habilidad más importante es ser capaz de ser inglés técnico, porque esta habilidad nos abrirá las puertas a poder aprender lo que sea que necesitemos en los desafíos profesionales que nos encontremos. La gran mayoría del conocimiento informático mundial está en idioma inglés.
Programación Orientada a Objetos
La programación orientada a objetos sigue siendo mayormente utilizada para los proyectos de mediana y alta complejidad y es necesario dominar los conceptos y principios básicos.
- Herencia, ¿cuales son sus pro y sus contra?
- Clases abstractas e interfaces. ¿Para qué se usa cada una?
- Patrones de diseño de software, ¿qué son y cuando se usan?
- Principio de Bajo Acoplamiento y Alta Cohesión
Paradigmas de programación
- Prácticas de Clean Code
- Principios DRY y KISS
- Principios S.O.L.I.D.
- Paradigma MVC
- ¿Porqué el código duplicado es malo?
Bases de datos relacionales
- SELECTs con GROUP BY, entendiendo funciones de agregación
- ¿Cuál es la diferencia entre un Left Join y un Inner Join?
- Transacciones (Begin Transaction; Commit Transaction)
- ¿Qué es un índice?
Seguridad
OWASP Top 10 (Especialmente SQL Injection y cómo defenderse)
Otros complementos
- GIT
- ¿Qué es testing?. Tipos de testing e integración continua
- Protocolo HTTP (GET vs POST, Headers)
- Containers Docker