“Divide y vencerás” puede funcionar increíblemente bien. También puede funcionar muy mal. Los problemas más insolubles son a menudo los que atraviesan las divisiones: abstracciones con fugas, malas interfaces, expectativas no coincidentes sobre cosas como el bloqueo o el uso de memoria, estructuras de datos ineficientes (que no se mostrarán en un generador de perfiles), bloat de código (ídem) , y así sucesivamente hasta el infinito . El verdadero arte de la “programación en general” consiste principalmente en aprender dónde hacer las divisiones, cómo reconocer cuándo se hicieron las equivocadas y cómo solucionar ese tipo de problemas con una interrupción mínima del código que ya funciona. Esta “sabiduría” es lo que hace la diferencia entre el código que funciona sin problemas y el código que constantemente parece afectado por la “mala suerte”, incluso cuando ambos fueron escritos por personas muy inteligentes.
¿Cuáles son algunas cosas que aprendiste trabajando en software a gran escala que los cursos de pregrado no pudieron enseñarte?
Related Content
¿Cuál es la diferencia entre un ingeniero de software y un codificador?
¿Cuánto conocimiento de dominio es útil para un desarrollador de software?
- ¡Los comentarios son tan importantes como el código real!
Cuando trabajas en un equipo, no tienes tiempo para explicar cada fragmento de código a los demás miembros. Si los comentarios se realizan correctamente, entenderán mejor su código.
En el código de producción, la legibilidad es mucho más importante que cualquier otra cosa, especialmente si el código está en un ciclo constante de modificaciones y adiciones de funciones. - ¡Hay una verdadera convención de codificación! El programador principal que escribe y depura el máximo inicialmente, elige las convenciones de código. Otros obedecen eso al máximo nivel posible. Con el tiempo, el estilo se convierte en el estándar de facto para todo el código de la empresa.
- La mayoría del código del mundo real (excepto juegos y algunas aplicaciones especializadas) es 80% de llamadas API, 10% de pegamento y 8% de algoritmos triviales, el 2% restante será un algoritmo un poco más complicado (acabo de inventar esos números, pero es cierto más o menos)
- En la mayoría de los casos, la productividad del programador supera la superioridad técnica del lenguaje y los marcos desde una perspectiva empresarial. Duele mucho, pero a veces Java y PHP pueden traer más pan y mantequilla a la mesa que C ++ y Python
More Interesting
¿Qué todas las certificaciones importantes debe tener una empresa de desarrollo de software?
¿Cuáles son los objetivos típicos que cada desarrollador de software se establecería?
¿Qué habilidades y software necesito para hacer una aplicación de Android?
¿Debo elegir un contrato de desarrollador de software o un puesto de liderazgo a tiempo completo?
¿Cómo es ventajoso el outsourcing de desarrollo de software?
Quiero convertirme en desarrollador de sitios web. ¿Que necesito hacer?
¿Cuál es el día típico para un desarrollador de software senior?
Cómo medir periódicamente el crecimiento del desarrollador
¿Cuál es un nivel aceptable de costos indirectos (indirectos) en el desarrollo de software?