Mejoras principalmente haciéndolo . La mayoría de los libros están dirigidos a principiantes, eso no es del todo malo, ya que tenderá a ser un principiante en muchas nuevas tecnologías (y técnicas) a medida que comience a usarlas. Entonces, si decides que Java es algo que quieres aprender, un libro sobre Java es una buena idea. Si ya conoces Java modestamente bien, el 99% de los libros de Java no valdrán nada para ti.
Recuerdo algunos libros aquí y allá que se destacan como útiles, los que recuerdo:
- Brian W. Kernighan, PJ Plauger: Los elementos del estilo de programación: muestra algunos programas del mundo real que tuvieron problemas y, en general, por qué lo hicieron y, a veces, qué se hizo para solucionarlo. NOTA: este libro es realmente muy antiguo (como en anteriores a cualquier lenguaje que pueda usar, excepto quizás C), pero creo que aún tiene valor.
- Software práctico reutilizable por Balachander Krishnamurthy: esto no solo cubrió cosas como “por qué no deberíamos dar por sentado la interfaz de malloc” que me abrieron los ojos en ese momento, sino que tiene una muy buena sección sobre depuración.
- Descubrí que leer sobre Modula-3 era muy interesante, solo en parte porque Modula-3 era interesante, pero más aún porque no era un lenguaje muy popular, pero muchas de sus ideas aparecieron más tarde en Java y otros lenguajes. Haberlos visto antes hace que sea más fácil verlos en un nuevo contexto. Sin embargo, no estoy seguro de que valga la pena leer esto 😉
- Amazon.com: The C ++ Standard Template Library por PJ Plauger, Alexander A. Stepanov, Meng Lee, David R. Musser: esto no solo cubre cómo usar varias partes del STL, sino cómo escribirlas . Esto es útil no porque espero que todos quieran salir corriendo y escribir su propio STL, sino porque te ayuda a aprender habilidades para escribir cosas similares al STL.
- Algunos de los libros “Swift avanzado” e “implementación de un árbol B * en Swift” parecen buenos, pero aún no han pasado la prueba del tiempo, por lo que no creo que sea justo incluirlos aquí.
Para ser honesto, el resto de los libros que recuerdo estaban dirigidos a alguien nuevo en un idioma en particular (por lo que puedo recomendar un buen libro de ObjC / Cocoa para alguien que quiera aprender ObjC, pero realmente no lo ayudará una vez que sepa algunos ObjC).
… a veces los blogs pueden darte ideas interesantes. Cosas para replicar o utilizar como punto de partida para su propio código.
Pero aún lo más útil es escribir código. Principalmente escribir código que es algo similar al código que realmente podría usar mientras trabaja, por lo que no creo que las competencias de código sean súper útiles (lo entrenan para escribir código compacto , en la vida real desea escribir código legible y correcto , y a veces código que funciona rápido , pero casi nunca das un higo volador si es compacto ; también te entrenan para escribir código rápidamente, lo cual está bien, siempre que no te entrenen para escribir código rápidamente que no funciona muy bien, o es difícil de mantener).
Una buena combinación podría ser algo así como 90% o 95% escribiendo código para leer de 5% a 10% sobre escribir código.
Ah, también útil: hacer que la gente revise tu código. Puede obtenerlo enviando código a proyectos de código abierto donde los encargados de la revisión realmente revisan parches. También puede obtenerlo haciendo amigos con otros programadores que quieran revisar el código (tal vez a cambio de revisar el suyo). Lo obtendrá si trabaja en una empresa grande porque la mayoría de ellos hacen revisiones de código.