He estado trabajando en bases de código compartidas (y por lo tanto, manteniendo el código de otras personas) durante veinte años, y tomando decisiones de contratación por más de diez, así que tengo algunas cosas que sugerir.
No apreciar la complejidad.
Los desarrolladores necesitan no solo comprender la complejidad, sino también permitirla. Encontré algo como esto en un sistema de producción una vez:
ITransaction _transaction; public ITransaction BeginTransaction () { // db no admite transacciones anidadas if (_transaction! = null) _transaction.Commit (); return (_transaction = _session.BeginTransaction ()); }
Sé exactamente cómo sucedió eso. Alguien intentó iniciar una nueva transacción, solo para que BeginTransaction () se quejara de que ya había una transacción abierta. “¡Sencillo!” pensaron: “Solo cometeré ese y devolveré uno nuevo”. Nunca pensaron en el contexto más amplio de la operación. ¿Cómo ves esto en, digamos, una entrevista? Supongo que podría mostrarles el código anterior y ver si se encogen.
- ¿Qué pasos debo seguir antes de aprender React.js?
- ¿Hay alguna forma de optimizar el doble bucle: for (int I = 0; I <n-1; I ++) {for (int j = I + 1, j <n, j ++) {doSomething (i, j);} }?
- ¿Por qué la mayoría de los profesores de informática no están en contacto con la industria del desarrollo de software?
- ¿Cuáles son las principales causas de retrasos en el producto (software)?
- ¿Qué placa de desarrollo de Intel es el mejor equivalente a un modelo Raspberry Pi 3?
Falta de fluidez
He visto a muchos codificadores de copiar y pegar recorrer un largo camino en su carrera, en detrimento de sus colegas y empleadores. No es raro encontrar personas que han estado en trabajos de programación durante muchos años y que no pueden escribir cómodamente incluso código relativamente simple al estándar de producción, o incluso hasta el punto que se construye, en su idioma favorito.