it-swarm-es.com

¿Soy un mal programador o todos tienen este sentimiento?

Tiendo a entender las cosas bastante rápido, pero después de 2 años de programación en Python todavía me encuentro con cosas (como Flask hoy) que me sorprenden. en el código, no tengo idea de lo que está pasando, y luego me siento muy humilde. Me siento como un experto absoluto cada vez que esto sucede, hasta el momento en que sucede. Luego, durante un período de aproximadamente 2 semanas me siento como un principiante absoluto.

¿Esto sucede a menudo o indica que tengo mucho más que aprender antes de que pueda ser considerado un "buen" programador?

77
orokusaki

Yo lo llamo el "sentimiento de primer año". Cuando parece que todos los demás lo tienen juntos, va más rápido, conoce todos los edificios del campus, no tiene problemas, etc. En la programación, estoy desorientado, incómodo, inseguro de si cumpliré o no con la fecha límite. Es miedo.

La sensación desaparece cuando reconozco el miedo por lo que es, luego lo ignoro, me sumerjo y empiezo a aprender, luchando por cada problema uno por uno.

La cuestión es que ahora lo uso como indicador para saber cuándo estoy realmente aprendiendo. Si no lo siento de vez en cuando, sé que no estoy avanzando, estoy estancado.

Uno de los programadores en el trabajo tiene este lema: "La comodidad es el enemigo".

Ese sentimiento del que hablas puede ser tu mejor amigo si quieres mejorar.

67
codeyoung

Nunca, nunca, nunca, nunca, en la totalidad de su carrera, estará en una posición en la que entienda de inmediato cada tecnología de programación con solo mirarla. Hay demasiado allí. Es la acumulación de investigación y conocimiento de millones de personas durante muchas décadas. Si alguna vez te encuentras pensando que estás en ese punto, busca un terapeuta para discutir tus delirios.

El rasgo que más necesita es la capacidad y la voluntad de aprender. Si tienes eso, nada estará más allá de ti.

73
GrandmasterB

No, este no es el signo de un mal programador. Siempre debe estar aprendiendo, y generalmente debe suponer que hay algo más que aprender sobre un tema determinado.

El mal programador es el que cree que ya sabe la mejor manera de hacer todo, y no está abierto a la posibilidad de que tenga algo que aprender.

32
Kirk Broadhurst

La única constante en mi camino como programador ha sido que siempre tengo más que aprender. Suena cliché, pero es verdad.

Eso no quiere decir que no sentir en todo momento, incluso ahora, como si hubiera aprendido la mayor parte de lo que aprenderé en mi vida. La cuestión es que sentí que el año pasado, mirando hacia atrás en ese momento ahora, claramente todavía tenía mucho que aprender entonces. Lo mismo para el año anterior y el año anterior.

Siempre está aprendiendo: exponerse a un código realmente bueno y a los desarrolladores es una excelente manera de recordarlo.

10
Fishtoaster

Hay un modelo de aprendizaje en el que te mueves a través de cuatro etapas:

  1. Inconscientemente incompetente: no sabes que no sabes.
  2. Conscientemente incompetente: sabes que no sabes.
  3. Conscientemente competente: sabes que sabes.
  4. Inconscientemente competente: no sabes que sabes.

Claramente, el nivel 1 es un problema, pero es donde todos comienzan, pero rápidamente se movieron. A medida que aprende hasta llegar al punto en el que acaba de hacerlo en el nivel 4. Con algo como otro módulo o biblioteca en una plataforma existente, inevitablemente regresará a 1 o 2 (con suerte 2). Esto es normal.

(Por cierto, la etapa 4 puede ser un problema, demasiado fácil para no poder mantenerse al día con las últimas técnicas).

9
Richard

Da un paseo por una biblioteca. Si no te hace sentir muy, muy pequeño, no lo estás entendiendo. Si lo quieres en nerd-speak, se trata de la derivada, no de la cantidad real de tu conocimiento. Está bien sentirse mejor con lo que está aprendiendo que con lo que sabe, aunque tampoco debe exagerar. Habiendo aprendido algo es un logro, es solo que nunca puedes considerarlo completo.

Por cierto, dos años no es mucha experiencia. Tenía más de esa experiencia antes de salir de la universidad (sin contar las clases), aunque tuve la suerte de obtener esas oportunidades.

7
Randall Schulz

He estado escribiendo código por más de 20 años, ha habido ocasiones en las que me consideraba inexpugnable por su habilidad y experiencia, pero descubrí que siempre hay alguien mejor. Lo que debes tener en cuenta es que hay una multitud que también es peor, mucho peor que tú. La ingeniería de software no es un campo estático, se están desarrollando nuevos enfoques, técnicas e incluso lenguajes todo el tiempo y sería imposible mantenerse al día con todo.

Lo que generalmente me tiene sentado, mirando estupefacto un nuevo código que acabo de abrir es el estilo de codificación. Esa suele ser una función de lo cómodo que estaba el programador con el espacio del problema; en mi experiencia, más comodidad tiende a un código más abstracto. Si abre un fragmento de código y no se entiende, entonces no se golpee, siéntese, léalo cuidadosamente, tome notas (sí, en papel) y revise el código manualmente (si tiene tiempo) . ¡Entenderá y es necesario que lo entiendas lo que te hace un buen programador! :)

4
Lazarus

Esto me pasa a mí. Entonces se detuvo. No porque dejé de progresar y no miré el código difícil, sino porque finalmente me volví muy bueno. Esto para usar sucede en C++ para mí. Boost (código fuente) no me asusta.

1
user2528

No sé si eres un mal programador o no, pero me considero un buen programador: D, incluso yo no lo sé todo. Para mí, la diferencia entre un programador bueno y uno malo es la capacidad y la metodología para hacer el trabajo. Si tuviera un programador BASICA, que pueda construir la aplicación que necesito a tiempo y que funcione bien, y pueda mantener su código base para hacer cambios razonables de acuerdo con la solicitud, por lo que lo consideraría como un buen programador incluso él/ella solo conoce BASICA y nada más.

Sin embargo, sentirse humilde también es algo bueno para los programadores: la carrera que necesita un aprendizaje constante todo el tiempo.

1
tia