Esto me ha estado preocupando por algún tiempo, y realmente agradecería el aporte de otros profesionales.
Breve descripción: comencé a programar cuando mis padres me compraron mi primera computadora en 1988 (a los 14 años, ahora tengo 39). Seguí un par de otras carreras antes de convertirme finalmente en un programador profesional en 1997. Florecimiento tardío, tal vez, pero así fue. Todavía estoy contento con mi elección, me encanta la programación y me considero bueno en lo que hago.
Últimamente, he notado que mientras más experiencia obtengo, más tiempo me lleva completar proyectos o ciertas tareas en un proyecto. Todavía no me voy senil. Es solo que he visto tantas formas diferentes en que las cosas pueden salir mal. Y las posibles trampas y problemas que conozco y recuerdo son cada vez más.
Ejemplo trivial: solía ser simplemente "está bien, escriba un archivo aquí". Ahora me preocupan los permisos, el bloqueo, la concurrencia, las operaciones atómicas, la indirección / marcos, los diferentes sistemas de archivos, la cantidad de archivos en un directorio, los nombres de archivos temporales predecibles, la calidad de la aleatoriedad en mi PRNG, la escasez de energía en el medio de cualquier operación, una API comprensible para lo que estoy haciendo, documentación adecuada, etc., etc.
En resumen, los problemas han pasado de "cómo hago esto" a "cuál es la mejor / más segura forma de hacerlo".
El resultado es que me lleva más tiempo terminar un proyecto que un novato. Mi versión puede ser sólida como una roca y tan impenetrable como sé cómo hacerlo, pero lleva más tiempo.
El ejemplo de "crear archivo" anterior fue solo eso, un ejemplo. Las tareas reales son obviamente más complejas, pero menos adecuadas para una pregunta genérica como esta. Espero que entiendas a dónde voy con esto. No tengo problemas para crear algoritmos eficientes, me encantan las matemáticas, disfruto de temas complejos, no tengo dificultades para concentrarme. Creo que tengo un problema con la experiencia y, en consecuencia, con el miedo a los errores (intrínsecos o extrínsecos).
Paso casi dos horas al día leyendo sobre nuevos desarrollos, nuevas técnicas, lenguajes, plataformas, vulnerabilidades de seguridad, etc. El enigma es que cuanto más conocimiento obtengo, más lento soy para completar proyectos.
Como tratas con esto?
fuente