¿Te consideras un programador ‘bueno’ y efectivo, pero uno que no es natural en la programación?

TL; DR : Sí, la programación es una habilidad que se puede aprender. Estás experimentando un poco de inseguridad, que puedes superar cambiando tu mentalidad y enfoque.

He estado programando durante un tiempo, incluso escribiendo código de producción, así como trabajando con una amplia gama de programadores / desarrolladores / ingenieros (por brevedad, me referiré a este grupo en general como desarrolladores).

Muchos de los desarrolladores que diría que son naturales simplemente tienen mucha pasión por la codificación. Son realmente buenos ahora, y eso es lo que ves, pero pueden haber luchado para llegar a esa primera idea que condujo a una comprensión e iluminación más profundas.

Resumiendo este proceso, no es tan diferente de lo que sucede en la mayoría de los campos. Para una analogía deportiva, los exploradores pueden haber dudado de Rudy y Michael Jordan en sus primeros días. Por otro lado, solo porque Michael Jordan pelea en el baloncesto no significa que vaya a dominar el luge. Habrá un poco de aumento antes de que traiga a casa una medalla de oro.

Mire la excelente discusión de Costya Perepelitsa sobre su progresión de codificación La respuesta de Costya Perepelitsa a ¿Cómo ha evolucionado su preferencia por los lenguajes de programación con el tiempo?

Personalmente, lo que mejoró mi codificación a lo largo de los años es lo siguiente:

  • Pasar la sintaxis y comprender los conceptos. Esto es lo que hace que sea más fácil aprender nuevos idiomas.
  • Pero, tomarse el tiempo para entender cómo escribir código idiomático en un idioma en particular. Por ejemplo, aprender y escribir el código Python Python como un Pythonista: Idiomatic Python.
  • Aprendizaje de idiomas desde diferentes paradigmas. Si actualmente escribe en un estilo de programación imperativo, se sorprenderá de cómo se ve su Python o Java después de probar ML, Lisp, Scala, etc. Estructura e interpretación de programas de computadora (también conocido como SICP) es un libro bastante esclarecedor .
  • Lectura de libros sobre codificación a nivel meta. Por ejemplo, libros de Clean Coders como Clean Code: A Handbook of Agile Software Craftsmanship: Robert C. Martin.
  • Tener pasión por escribir un buen código. Si no está probando, comience. La comunidad de Ruby hace esto realmente bien en general. Pero hay marcos de prueba para la mayoría de los idiomas.

Entonces, quítate un poco de presión, retrocede de esta experiencia y reflexiona. Además, tenga en cuenta que se inscribió en un campo de entrenamiento de desarrollo web. Conocí a grandes desarrolladores que no quieren tener nada que ver con el lado del cliente, solo con el lado del servidor de fondo. Es posible que se encuentre en la cohorte equivocada, según sus propios intereses.

Pero también es importante darse cuenta de que, en muchos sentidos, el desarrollo de software sigue un modelo de aprendizaje. Sus habilidades de codificación mejorarán a medida que trabaje y aprenda de desarrolladores más experimentados. También encontrará que algunas personas lo inspirarán a escribir código excelente, porque se toman el tiempo para escribir código excelente.

Terminaré con un enlace a la programación Teach Yourself de Peter Norvig en diez años. Esta publicación cambió la forma en que pienso sobre el aprendizaje de idiomas y la codificación.