¿Cómo alguien de un fondo de soporte de aplicaciones se convierte en un muy buen codificador?

Hay dos respuestas a su pregunta. Afortunadamente, ya has comenzado bien en uno.

He escrito más sobre esto en mis respuestas a otras preguntas, pero la versión corta es que el desarrollo de software realmente consiste en dos actividades:

  • averiguar qué codificar
  • averiguar cómo codificarlo

De los dos, descubrir qué codificar, y a veces aún más importante, qué no codificar, es al menos la mitad del trabajo. Como persona de soporte de aplicaciones, tiene una gran ventaja en esto. Hay dos grandes áreas en las que debes mejorar ahora:

  • cada vez más metódico y sistemático al respecto.
  • Comprender cómo ese espacio problemático se cruza con lo que es posible codificar

Para lo “metódico y sistemático”, recomiendo comenzar leyendo Jakob
Libro clásico de Nielsen, Ingeniería de usabilidad. Es muy legible y muy accesible a nivel de no programador, y a pesar de todos los avances en las últimas dos décadas, sigue siendo una gran base.

Jakob Nielsen: 9780125184069: Amazon.com: Libros

También echa un vistazo a El diseño de las cosas cotidianas de Don Norman.

Edición revisada y ampliada: Don Norman: 9780465050659: Amazon.com: Libros

Ambos libros pueden parecer viejos, pero luego las obras fundamentales en un campo a menudo parecen ser así. Le garantizo que revise cualquiera de las diez principales listas de usabilidad o libros de experiencia de usuario, y luego lea lo que los autores dicen sobre Jakob Nielsen y Don Norman, y quedará impresionado.

Comprender cómo el espacio problemático se cruza con lo que es posible codificar vendrá de la mano con la “determinación de cómo codificarlo”. Para ello, aprende más sobre la programación específica y realiza algunos proyectos de programación reales.

El tema de aprender a codificar puede (y tiene) llenar una biblioteca, pero en general, como he escrito en otras respuestas sobre Quora, independientemente de los libros, tutoriales, clases, academias de códigos, etc., fundamentalmente los programadores aprenden a programar 99 % por dos cosas:

  • leer el código de otros programadores
  • probando cosas usted mismo

Esto no quiere decir que los libros, las clases, etc. no sean útiles, pero pronto se dará cuenta de que la mayor parte del contenido útil en ellos está esencialmente tratando de ayudarlo a leer y comprender el código existente (ejemplos, etc.).

Mi libro de programación inicial favorito fue C by Dissection de Al Kelly e Ira Pohl, donde tomaron este principio y lo convirtieron en 11. Primero discutieron un problema, luego le mostraron la lista completa de códigos para resolver el problema. Luego revisaron la lista, línea por línea, explicando lo que estaba sucediendo. Pero ese libro probablemente esté un poco desactualizado ahora. Probablemente todavía valga la pena leerlo, pero no como un principiante absoluto.

C by Dissection: The Essentials of C Programming (4th Edition) (9780201713749): Al Kelley, Ira Pohl: Libros

Más tarde, Pohl hizo un libro similar para Java, con Charlie McDowell, Java by Dissection :

Computer Science Books @ Amazon.com

Este libro data de 2006, así que dudo en decir que deberías comenzar allí; desde entonces, ha sucedido mucho con Java. Probablemente sigue siendo un libro excelente, y francamente como principiante, el tiempo desde que se publicó no hará una diferencia real; pero aprender a codificar es algo complicado, y no te conozco ni tus necesidades.

Además, no te recomiendo que comiences con Java: no sé lo suficiente sobre ti y tu situación para hacer esa recomendación. Para saber cómo debería pensar sobre esta pregunta, ayer escribí una respuesta que debería ser su punto de partida:

Respuesta de Steven J Owens a Si no sé mucho sobre codificación, ¿con qué idioma debo comenzar?