miércoles, 22 de febrero de 2017

10 consejos que te ayudarán a aprender a programar de una forma más productiva

El aprendizaje de un lenguaje de programación es algo que requiere un relativo alto número de horas, por lo que cuánto mayor sea la calidad de ese tiempo que dediquemos mejor serán los resultados.



A continuación, os expongo una serie de tips o consejos (como queráis llamarlos) inspirados en experiencias propias y unos cuantos posts leídos sobre el tema que rozan la temática de la auto ayuda encapsulada en recetas.

1) Pica código: picar y picar y picar…

¿Por qué situo picar código en el primer lugar de mi lista de consejos? Pues porque es lo más complicado y a la vez es el aspecto clave de la programación. Al picar código te das cuenta de los errores que cometes a la hora de diseñar, en la gestión de bugs, en la creación de hilos y luego vuelves sobre cada una de esas destrezas para mejorar. No puedes solo dedicarte al diseño de soluciones, tienes que programar para producir una aplicación, lo cual es importante dominar para tener éxito. Y ya que estás no pares después de solucionar un problema del código, siempre es mejor desechar tu primer desarrollo, que casi siempre será un prototipo, y es tu segundo desarrollo el que debe apuntalar los problemas y funcionalidades que perdiste de vista al programar dicho prototipo.

2) Lee libros de programación

Picar código es más fácil dicho que hecho, y existe una gran diferencia entre un buen código y un código pobre. Esto es obvio, pero, ¿cómo puedes distinguirlos? Hasta que no ves con tus propios ojos un buen código es difícil de entender realmente la diferencia… Y es aquí cuando los libros resultan muy útiles ya que la mayoría de la veces los autores son grandes programadores. Ofrecen toda su experiencia en forma de libro. Yo adoro los libros, pero hay uno que me ha ayudado especialmente, Clean Code de Uncle Bob. Al leer este libro he descubierto defectos en mi código y la forma de solucionarlo gracias a los consejos que ofrece. Mi consejo personal es que si puedes hacerte con libros de programación, no lo dudes. También recomiendo la lectura de libros más clásicos y usarlos como libros de consulta. Otro libro muy útil es Effective Java de Joshua Bloch, que está repleto de buenos consejos. Está en mi lista de libros imprescindibles para programadores de Java. Además, al leer, estás aprendiendo de la experiencia de otra persona, y solo hay dos formas de mejorar: o mediante tu propia experiencia (que es limitada) o mediante la experiencia de otros (que es ilimitada). Recuerda que el que mucho abarca poco aprieta, en vez de leerte 5 libros, es mejor leerse 2 que realmente te sirvan varias veces.

3) Contribuye a Código Abierto y darse de alta en listas de Mailing

Si contriubuyes a proyectos de código abierto, especialmente de Apache, Google y algunos otros es otra forma de mejorar tus destrezas como programador. El simple hecho de darse de alta a listas de mailing y seguir los debates y la actualidad te enseña mucho. Debido a que la mayoría de los debates son entre buenos programadores, al prestarles atención entiendes los problemas y el enfoque que les dan, las soluciones y puntos de vista, etc… Con el tiempo vas adquiriendo automáticamente buenos hábitos de programación. Para sacarles el máximo provecho, haz preguntas, da tu punto de vista si puedes, pero también sopesa y pondera los puntos de vista de los demás.

4) Practica la estructura de datos, Algoritmos y los problemas relacionados con el diseño

Iba a poner este punto en segundo lugar pero al final es el cuarto… En mi opinión esto es una de las cosas más críticas a la hora de llegar a ser mejor programador. La mayoría de lo buenos programadores que he visto y conocido son realmente buenos en estructura de datos, algoritmos y fundamentos. Al dominarlos, puedes sacarle el máximo provecho a todo lo que hay disponible. Debido a que la estructura de los datos es una parte fundamental de cualquier programa, su dominio es muy útil a la hora resolución de problemas. De igual forma, un conocimiento sólido de los principios de programación, y de algoritmos de búsqueda y de ordenar, y otros algoritmos típicos te ayudan a mejorar tus destrezas como programador.

5) Lee buenos blogs

Leer buenos blogs es como leer una pequeña parte de un libro. ¿Cómo puede leer blogs ayudarte a ser mejor programador? Bueno, simplemente lo hace. Debido a que la mayoría de los blogs los escriben programadores y la mayoría dan su opinión personal, su experiencia, a menudo resultan relevantes. Además, los blogs son pequeñas píldoras de información así que se digieren bien. Los blogs además ayudan a aprender sobre nuevas tecnologías y sobre las novedades de los lenguajes y APIs que ya existen. A menudo he visto cosas sútiles o cosas que he pasado por alto de algún aspecto realmente conocido en Java descrito en un pequeño post de un blog.

6) Lee código

Si leer blogs te ayuda a convertirte en mejor programador, leer código te ayuda aún más. El problema es que leer blogs resulta mucho más sencillo que leer código. ¿Se te da mal? Pues entonces tienes que insistir. Lee código de proyectos de código abierto, el código de tus compañeros programadores, tu propio código propietario, código de la SDK de Java e intenta entender por qué y cómo funcionan. Busca los patrones, desarrolla tu habilidad de ojear y buscar cosas… Al principio te resultará aburrido y difícil, pero con el tiempo desarrollarás un buen sentido del código, lo que te pondrá en guardia cuando cometas un error al picar y ayudar a otros a encontrar bugs. Tener un buen sentido del código es un signo de ser un buen programador. Ellos ven lo que otros pasan por alto.

7) Escribe pruebas de unidad

Las pruebas de unidad complementan el proceso de pensar y picar el código, y en consecuencia te ayuda a diseñar mejor tus aplicaciones. Cualquier cosa que sea difícil de probar puede ser mejorable. Además, al hacer pruebas de unidad, mejoras a la hora de hacer abstracciones, interfaces y mejora el código en general. Pero al igual que el diseño y picar código, hacer pruebas de unidad también es un trabajo árduo para el programador medio y lo más probable es que te resulte complejo. Algunos programadores hacen testeos triviales en vez de hacer pruebas pensando en el verdadero uso que el usuario va a hacer de esa aplicación. Recuerda que no hay substituto para el testeo ya que te hace pensar en la aplicación desde un punto de vista global en un escenario de usuario. Es otra oportunidad para encontrar errores y lagunas en tu código.

8) Revisa código

Al igual que las pruebas de unidad y el testeo, revisar código es otra cosa que te puede venior bien a la hora de mejorar como programador. La revisión de código es algo beneficioso tanto para el autor como para el que revisa. El que revisa coge a la larga un buen sentido del código y está en un lugar óptimo para dar consejos genuinos, mientras que el autor aprende de sus errores. A veces un código que tu piensas es está perfecto tiene bugs que solo unos ojos limpios de un tercero pueden ver. Cuatro ojos ven más que dos. Si trabajas en una empresa que hace pruebas de unidad y testeos del software, el hecho de revisar el código ya te convierte en mejor programador.

9) Habla con otros programadores y desarrolladores

La lectura es un ejercicio pasivo si se compara con hablar. Hablar sobre un desarrollo y debatir sobre el mismo con un compañero resulta muchas veces en un mejor desarrollo y en una mejor aplicación. Y es normal porque al hablar tu mente está más metida en asunto. Muchas veces encuentro bugs y lagunas al debatir mis desarrollos con otros desarrolladores. En la industria del software en la que los programadores suelen trabajar aislados en sus ordenadores, el hecho de charlar y hacer sesiones en la pizarra ayuda una barbaridad. No te sientes y piques código, también debes escuchar, pensar y pasar tiempo con tus compañeros desarrolladores.

10) Participa en foros y comentar en los blogs

Esta es otra forma de actividad que ayuda a repasar los conocimientos propios. Al compartir tus conocimientos, la primera persona que se beneficia es aquella que comparte. El mundo de la programación es enorme y tiendes a olvidarte de las cosas que no usas más allá de tres meses. Participando en, por ejemplo, StackOverflow y resolviendo dudas de otros, comentando en blogs y foros es una buena forma de repasar lo que ya sabes y a la vez corregir dudas propias.

Todo programador quiere mejorar como programador, pero no todos son capaces. Además de talento natural y ser capaz de resolver problemas, exige mucho trabajo, formación continua y constancia llegar a ser mejor.


Nota: este artículo es una traducción de un artículo del blog JavaRevisted de Javin Paul. Se centra un poco en el mundo de Java pero creemos que sus conclusiones son extrapolables a todos los desarrolladores.

0 comentarios:

Publicar un comentario