¿También olvidas el código después de completar la tarea? [cerrado]

13

Soy un nuevo programador y quiero preguntarle a programadores senior (programadores que tienen algo de experiencia en el mundo real).

Hago mi trabajo y después de la codificación, mi proyecto se completa pero, sinceramente, no recuerdo el código, el nombre de las clases y los marcos y sus propiedades.

¿A veces incluso dudo de mí mismo que hice esto?

¿Es esto normal con todos los programadores o soy el programador más tonto que no podía recordar el código y los nombres de clases / propiedades?

Editar:

Creo que muchos de los programadores me están equivocando aquí. Dije que olvido los nombres de marcos, los nombres de clases, los nombres de propiedades, pero empiezo a recordar mi propio código una vez que empiezo a trabajar en él nuevamente. Mi pregunta es ¿recuerda los nombres de sintaxis y clases / propiedades, etc.?

necixy
fuente

Respuestas:

24

Honestamente, no sé cómo uno podría ser un desarrollador a largo plazo sin la capacidad de "olvidar" el código en el que ha trabajado. La cantidad de proyectos y el código resultante eventualmente conducirían a una sobrecarga de información pura.

Sin embargo, veo esta situación como un argumento de apoyo para un diseño limpio y lógico. Llegará un momento en que deberá admitir su propio código. Si ha elegido convenciones de codificación fuertes y lógicas, su tiempo de familiarización se reducirá significativamente. Además, esto teóricamente reduciría el tiempo requerido para realizar el mantenimiento real.

Buscador de cosas
fuente
Conocí a dos codificadores con memoria fotográfica que pueden recordar lo que estaban pensando cuando trabajaban en algún código. Con mis habilidades de memorización por debajo del promedio, ciertamente me veo obligado a hacer el mejor trabajo posible para hacer que el código sea limpio y documentado.
Trabajo
¡Creo que tienes razón, solo porque "olvido" el código que puedo programar en 3-4 plataformas diferentes!
necixy
9

Recordar toda su sintaxis y apis para un proyecto no es tan importante como recordar los conceptos que se utilizaron para construirlo. Una vez que tenga experiencia, puede leer el código y descubrir el significado al igual que leer estas publicaciones.

Lo que encontrará con el tiempo, si está mejorando activamente, es que verá las fallas en lo que ha escrito en el pasado simplemente leyendo el código antiguo (lo cual le recomiendo que haga). A través de esa práctica se hace más fácil de hacer; como cualquier otra habilidad

Probablemente ya he escrito más de un millón de líneas de código en mi carrera y no hay forma de que pueda recordarlo todo. Sin embargo, recuerdo los proyectos y lo que intentaban resolver (y las técnicas que se utilizaron para resolverlos).

jmq
fuente
5

Olvidé muchas cosas una vez que terminé de usarlas, pero las olvido de manera diferente.

Me he observado a lo largo de los años y he llegado a la conclusión de que nuestro cerebro (bueno, mi cerebro) emplea una cierta estrategia de almacenamiento en caché:

  • Se aprenden nuevas piezas de información, se usan y luego se colocan en una cola de caducidad. En unas pocas semanas se ha ido.

  • El acceso repetido a esos datos una vez que se aprendieron a más tardar unos meses atrás los promueve de alguna manera para que puedan recordarse durante meses, solo entonces caducan.

  • El acceso repetido a los bloques de conocimiento en el transcurso de varios años, con las brechas de uso durante varios meses, los promueve a cierta memoria prioritaria donde se mantuvieron durante años.

PD: Sospecho que la primera idea de caché con aplicación en computadoras proviene de alguien observando cómo los humanos aprenden y recuerdan cosas. Así que no hemos inventado nada, solo tomamos lo que ya estaba incorporado en nosotros.


fuente
2

A menudo. Los comentarios se han convertido en passe ', pero creo que generalmente puedo reconocer mi código por mis comentarios.

EDITAR: No estoy diciendo que estoy de acuerdo con la tendencia. Solo digo que esa es la tendencia hoy. Como Dave señala, ciertamente hay un punto de quiebre. Aquí hay una discusión perfectamente maravillosa: "Los comentarios son un olor a código" . Caigo en el campo "los comentarios son para proporcionar información sobre el mundo FUERA de la base de código (requisitos, cambios comerciales, etc.)".

Michael Blackburn
fuente
Los comentarios son pasados? Simplemente no es verdad.
Steve
1
Oh, estoy de acuerdo Solo digo que parece haber una tendencia a sentir que los comentarios no deberían ser necesarios. Tengo entrevistas con personas que insistieron en que el nombre del método debería ser todo el comentario que necesita. Claramente, trabajan en un lugar mítico donde los requisitos comerciales no cambian semestralmente.
Michael Blackburn
2
Yo diría que si bien PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () es descriptivo, también genera código ilegible, ya que destruye el flujo.
Dave Wise el
1
De acuerdo x100. Si no registrara cuidadosamente lo que estaba pensando y por qué tomé las decisiones que hice a través de comentarios cuidadosamente redactados, no tendría absolutamente ninguna idea de lo que estaba sucediendo cuando volví a leer el código que había escrito hace meses. He tratado de hacer este argumento antes a los astronautas de la arquitectura que dicen que los comentarios son ruidosos o pasados ​​u obsoletos, pero nadie los escuchó. Todos asumen que soy un mal desarrollador porque tengo que escribir comentarios en mi código fuente. Aunque estoy de acuerdo con eso. Me ayuda a mí y a todos los demás después de mí.
Cody Gray
@Dave: Si bien estoy de acuerdo contigo, tienes un método con dos responsabilidades. Su penitencia es 4 Granizo Martins y 2 GangOfFours.
Michael Blackburn
1

Sintaxis Generalmente recuerdo después de un par de usos. Por ejemplo, cuando comencé a usar genéricos o linq, tuve algunas dificultades para obtener la sintaxis correcta.

IntelliSense definitivamente hace que mi trabajo sea mucho más fácil para recordar nombres de propiedades y métodos.

Michael Blackburn
fuente
1

Cuando era un probador, el desarrollador principal de la compañía me dijo una vez que el código fue escrito hace 6 meses. Ninguna de mis personas puede ser considerada responsable de ello. En ese momento me sorprendió. Ahora que he pasado a ser desarrollador, lo entiendo. No recuerdo los detalles del código. Sé que trabajé en él, pero los detalles no están allí.

Irlanda
fuente
0

Casi siempre. Mi proyecto más reciente (muy pequeño) fue una prueba de mis propias habilidades (oxidadas). Tuve que escribir un montón de código de procedimiento en un estilo C muy simple, luego refactorizarlo en código Java usando algunos patrones de diseño y manteniendo cada método en no más de ocho líneas, si pudiera.

Puse el código durante aproximadamente un mes. Cuando volví a ello, tardé lo que pareció una hora antes de reconocer que lo había escrito. Francamente, incluso si hubiera puesto mi nombre en un campo de comentarios, no estoy seguro de que me hubiera convencido.

mfe
fuente