¿Cuáles son ejemplos de cosas que un buen programador desarrolla en un día laboral?

Me considero lo suficientemente calificado para responder esto. Ciertamente soy uno de los programadores más productivos que he conocido.

La respuesta a esto depende realmente de factores externos, así que primero, cubramos las estimaciones. Cuanta menos experiencia tenga (es decir, menos conocimiento práctico de un problema que tenga), más difícil será estimar algo al respecto. Esto hace que algunos proyectos sean imposibles de estimar con precisión. E incluso cuando usted maneja el tema, esto puede ser complicado, simplemente porque en la programación, incluso un pequeño detalle puede tener un impacto generalizado y severo en todo el proyecto. Una cláusula omitida en un documento de requisitos (si tiene la suerte de obtenerla) ya sea por el autor durante el diseño o por usted durante la estimación puede ser la diferencia de una semana.

En pocas palabras, tres cosas afectarán principalmente su ritmo y capacidad de estimar con precisión:

  1. Su dominio del tema (dominio del problema)
  2. Su experiencia con las tecnologías en juego.
  3. La precisión / fiabilidad de los requisitos del proyecto.

Dicho esto, si ya estoy familiarizado con el dominio del problema, las tecnologías que se utilizan, tal vez incluso hayan resuelto un problema similar en el pasado y, en general, puedo estar seguro de que los requisitos no cambiarán en el medio, entonces generalmente puedo vomitar sacar algo sustancial sin pensar mucho. En 8 horas podría hacer cualquiera de los siguientes, por ejemplo:


Cree una aplicación web simple de pila completa, junto con una aplicación móvil multiplataforma simple.
Para el sitio: AngularJS, Bootstrap, API web C #, SQL Server, OAuth2 básico
Para la aplicación: Cordova a través de Intel XDK o algo similar

Supongamos 1-5 vistas no estáticas en el sitio web, con otras 2-3 en la aplicación móvil. Puedo hacerlo mediante la reutilización en su mayor parte, porque he escrito muchas de las piezas varias veces, y la mayoría del trabajo es solo copiar / ajustar / reconfigurar / probar.


Diseñe un esquema de base de datos de mediano a grande.
Más de 20-50 tablas, incluidas las relaciones / índices obvios que deben aplicarse. Asumiendo que los requisitos de dominio están establecidos. Una vez que se decida por las decisiones ideológicas (nombrar Id vs EntityId vs EntityID, nombres de tabla plural versus singulares, etc.) el resto suele ser bastante sencillo.


Editar: Debería calificar esta respuesta diciendo que probablemente no te ayudará a entender si eres un “buen” programador o no. Es posible que solo le diga que necesita una mejor cobertura en su dominio o en alguna tecnología con la que no se siente cómodo, o que necesita aprender a prestar más atención a los detalles u obtener su PM despedido 😉

Realmente depende del sistema en el que esté trabajando. Ha habido días en los que escribí un par de miles de líneas de código. Principalmente en una parte muy bien entendida del código donde la tarea era sencilla. Acabo de pasar un día buscando el lugar correcto para una sola línea de código. La mayor parte del día se pasó en un depurador en código multiproceso. También he pasado un par de semanas buscando una sola pérdida de memoria. Tiempo dedicado con múltiples herramientas de diagnóstico.

También dependerá en gran medida de la duración de un ciclo de depuración. Si llegar al problema lleva una hora, no se realizarán muchas pruebas durante un día. Si lleva un minuto, se realizarán muchas más pruebas. La pérdida de memoria citada anteriormente tuvo un ciclo de depuración de más de la noche …

Si maneja el concepto de “programación” como una actividad privada, no puede tener ninguna mejora. Aquí está mi consejo;
No puede haber una descripción definitiva de un horario diario del programador, ya que no hay tal cosa disponible.
1-) Creo que es mejor que tenga habilidades de gestión de proyectos para tener una idea sobre el cálculo de costos y la gestión de un proyecto. (Gestión de proyectos)
2-) De acuerdo con los roles dentro de un ciclo de vida de desarrollo de software (SDLC), las actividades cambian y se realizan dentro de una colaboración. Uno podría codificar el script de hormiga para la gestión de compilación de todo el proyecto, el otro programador podría trabajar en el administrador de transacciones críticas del proyecto, por ejemplo, todo difiere según el proyecto y los roles en ese proyecto. (Ciclo de vida de desarrollo de software (SDLC))
Hay mucho que contarte al respecto, pero deberías estudiar un poco más, luego podremos profundizar.
Atentamente

Cada año, nuestra empresa realiza una DevCon (conferencia interna de desarrolladores) que incluye un hackathon. Por lo general, tenemos aproximadamente 48 horas para crear algo grandioso. Este año creamos un nuevo algoritmo de pronóstico en Clojure. La pista: ninguno de nosotros ha escrito Clojure antes. Al final pudimos crear pronósticos con datos diarios.