No, todos los codificadores no son iguales. Algunas cosas que he aprendido que creo que son útiles:
- ¿Entiende cómo su sistema resuelve problemas y su negocio gana dinero? ¿Has dedicado tiempo a eso? Si no, simplemente no estás en la clase de buenos desarrolladores en tu negocio. Debe comprender cómo su código crea valor y, por lo tanto, cómo su trabajo genera dinero para la empresa.
- Comprender las solicitudes de funciones y los usuarios. ¿Actúa como un camarero en un restaurante simplemente tomando pedidos o combina las solicitudes de funciones de manera coherente para que todos los usuarios puedan obtener valor de una solicitud?
- No escribas el código más genial. Escribe un código que sea comprensible. Podría ser atropellado por un autobús y alguien más tendrá que hacerse cargo de su código.
- No incluya muchas bibliotecas en su código. ¿Por qué? No todos tienen el mismo deseo por esa linda biblioteca js que solo tiene 9 descargas que tú. Mantenga las bibliotecas externas al mínimo.
- Cuando use una biblioteca externa, use las populares, no use la quinta biblioteca más popular de una clase. A los programadores les gusta usar cosas geniales que otros no están usando. Si necesita la funcionalidad de jQuery, use jQuery, no use la cuarta herramienta más popular para la manipulación de dom html.
- Comprender cómo funciona un sistema en conjunto. Por ejemplo, no me importa que los ORM oculten una base de datos para que no tenga que entenderla. Aprenda sobre bases de datos y sobre cosas como índices, procedimientos almacenados, claves, funciones, seguridad y demás. Si no conoce las bases de datos, no es el mejor desarrollador del mundo en el que trabajo.
- Comprender los cuellos de botella y comprender cómo superarlos.
- No cedas ante las creencias ampliamente difundidas. “Windows no escalará”, “Las bases de datos relacionales no escalarán”, <>. La realidad a menudo es diferente de algo que se repite sin datos para respaldar la declaración.
- Barco, barco, barco. Escriba el código y póngalo en manos de otra persona. ¿Lo entienden? ¿Resuelve un problema? ¿Puede esta persona realmente usarlo?
- No culpes a la tecnología cuando algo sale mal. El problema probablemente sea el código que se escribió. Busque mejores formas de hacer las cosas. Hay más de una forma de pelar un gato.
- ¿Pueden empatizar con el usuario? Es posible que tenga una lista de cosas que hacer, pero ¿son realmente lo que quiere el usuario? Lo más probable es que una lista de requisitos sea solo un punto de partida para las discusiones, especialmente con las startups. ¿Puedes enfatizar con los usuarios y resolver el problema de negocios frente a ti / ellos? ¿Se puede hacer que los usuarios sean más productivos?
Estas son las cosas que encuentro que hacen que algunos desarrolladores sean mejores que otros. El problema es que no descubres estas cosas hasta que estás en un proyecto. Estoy seguro de que hay otras cosas que hacen que algunos desarrolladores sean mejores que otros. Estas son solo las fallas generales que he visto.
************************************************** **************
- ¿La programación de software integrada y la programación de software normal son lo mismo?
- ¿Cuántos años puede sobrevivir un ingeniero de software de rendimiento promedio en la industria de TI? ¿Qué hacen muchas personas después de ese período?
- ¿Qué tan crítica es la configuración de prueba en la implementación continua?
- ¿Qué patrones de diseño se usan popularmente en el desarrollo de software?
- ¿Por qué es tan difícil aprender el desarrollo web? Me encanta Java / C ++ / Obj-C, pero JavaScript y los múltiples frameworks / bibliotecas como Backbone, jQuery, etc., me están volviendo loco.
Es cierto que esta es una historia bastante cruda. Pido disculpas por ello. Escuché a alguien decir una vez: “Los programadores son como prostitutas, todos hacen lo mismo, paguen un poco, paguen mucho, obtienen lo mismo pase lo que pase”. Respondí con “Tomas $ 50 y vas a la calle XYZ esta noche. Tomaré $ 500 y compararemos las notas en la mañana para ver quién la pasó mejor”.
Otra analogía que he escuchado es “No hay cosas como los malos privados, solo los malos generales”. Claramente hay una diferencia entre las personas.
El punto de la historia no son las declaraciones argumentativas de ida y vuelta ni las analogías. El punto es que hay una diferencia entre las personas que trabajan. No es diferente con los desarrolladores. Desea personas que puedan tomar un problema y resolverlo de manera positiva, no personas a las que tenga que ayudar en todos los niveles y vigilar.