Consejos Para Aprender a Programar

Existen cientos de lenguajes de programación, algunos famosos, otros no tanto. pero al final del día los lenguajes de programación son simplemente, una herramienta de tecnología para poder crear tecnología y el objetivo de tal herramienta es poder resolver problemas reales.

Y es por eso que te daré algunos consejos para que puedas aprender a Programar. Existen una gran cantidad de desarrolladores y debido a eso existen una gran variedad de formas de aprender y enseñar a programar, así que no tienes que estar de acuerdo con estos consejos, pero si los aceptas con la mente abierta, pueden que alguno te sirva y te ahorre mucho tiempo si lo que lo que planeas es aprender un lenguaje de programación.

Existen muchos programadores, entre profesionales asombrosos como también novatos, y script kiddies. pero hoy te daré unos consejos si eres un iniciante. Así es, porque este es solo eso, el Inicio y todos empezamos de la misma manera y es que no seras un iniciante siempre ¿verdad?.

Foto desde http://coderdojola.com/blog/

Y es que estoy seguro que la mayoría de nosotros, al inicio, nos hacemos la pregunta:

¿QUE LENGUAJE DE PROGRAMACIÓN DEBO APRENDER?

y la respuesta simplemente es, depende de que es lo que quieres hacer, ¿que tipo de problemas te gustaría resolver?. No es lo mismo desarrollar un vídeo juego online, un aplicación móvil, una aplicación web o el sistema que controla una Planta Nuclear.
Existen lenguajes que fueron diseñados para resolver tareas especificas y otros diseñados para resolver tareas más generales, y es que el asunto no es aprender un lenguaje de programación, el asunto es aprender a programar, ya que todos los lenguajes trabajan con la memoria del computador, procesan datos, realizan operaciones matemáticas, realizan cálculos, y otras características que los hace similares, no te enfoques en aprender solo la sintaxis del lenguaje más popular de Hoy en día, ni de tu lenguaje favorito, porque la tecnología evoluciona y lo que se usa hoy quizás ya no se use mañana.
Steve Jobs y iTunes, cambio la forma de comprar Música
¿Alguien recuerda las tiendas de ventas de discos?, probablemente no, ahora disfrutas de tu música favorita gratis a través de servicios de Streamming como Spotify, Soundcloud, Jamendo, y muchas otras más. y ¿que fue lo paso con las tiendas de discos?, pues ya no existen muchas. Simplemente por la evolución constante de las tecnologías.
Ademas aprender los conceptos generales de la programación, como pueden ser los tipos de datos, ¿que son lenguajes interpretados o compilados?, patrones de diseños, ¿que es un Linked List?, como crear Algoritmos, y muchas otras cosas más. te permitirá aplicarlos en cualquier lenguaje de programación que te interese no solo en el lenguaje que te gusta o te apasiona.
Así que no importa que lenguaje de programación escojas para aprender a programar, lo que importa es que aprendas los conceptos que luego te serán fácil aplicarlos en cualquier lenguaje de programación y en cualquier situación, pero a pesar de esto la principal recomendación es, conocer que lenguajes son los más importantes en este momento, y decidirte por el que más te influya ya sea por gusto o interés

Una vez tengas el lenguaje de programación que te interesa, te encontraras con conceptos como programación orientada a objetos, programación funcional, patrones de diseños, buenas y malas practicas o partes del lenguaje, y muchas otras cosas más. y aquí la pregunta más común entre los que empezamos es:

¿COMO PUEDO RECORDAR TODO?

El Primer Consejo que te daré es No Memorices, Entiéndelo. la mayoría de las personas estamos acostumbrados a aprender memorizando las cosas, pero lo cierto es, de que es un método que tienen un limite. Parafraseando a Albert Einstein:

"No memorices Algo que puedes Consultar"
y es que el código de los lenguajes de programación y la programación misma cambia constantemente, debido, de nuevo, a que la tecnología evoluciona y siempre estamos buscando resolver problemas de la manera más optima posible, Ademas puedes encontrar infinidad de recursos, como vídeos, explicaciones y por supuesto la documentación oficial del lenguaje, en Internet,  que se actualiza constantemente y que todos los programadores usan como referencia, ¿así que porque memorizar algo que puedes consultar en Internet?, Además esta demostrado que a más practiques a través de ensayo y error te sera mucho más fácil memorizar lo esencial en la labor de programar. Por otro lado si entiendes lo que programas, te sera muy fácil cambiar de lenguaje de programación, y siempre que olvides una sintaxis solo tienes que revisar la documentación o los miles de posts y artículos en Internet. pero cuidado porque: 

TODO EL CÓDIGO ES DIFERENTE

Si bien te he dicho que los conceptos son similares, todas las personas pensamos diferente, y debido a eso tenemos métodos de resolver problemas de manera diferente, es por eso que puede que encuentres lenguajes de programación que siguen otro paradigma o modelo de crear programas, simplemente porque un cierto grupo de personas, llamados comunidad de desarrolladores decidieron que es la forma más optima de resolver un problema, así que el segundo consejo es no trates de comparar el código que ya aprendiste de un lenguaje con otro, porque puede que estén hecho para objetivos distintos y sigan paradigmas distintos, esto ultimo solo lo entenderás si ya has pasado un tiempo programando. 

entonces quizás ya te has dado cuenta de que esto esta muy relacionado a la manera y la actitud que tomamos al aprender algo nuevo,  Así que Aprende Activamente, No pasivamente.

Pero ninguna de estos consejos te servirá si no haces caso a la cual es quizás la más importante recomendación:

¡PRACTICA!

Como ya te mencione memorizar no solo es difícil, si no que puede incluso llegar a ser una tarea aburrida y tediosa, y es que muchos prefieren el método de ensayo y error, es mucho más practico y divertido. Así que enlazando esto al arte de escribir código, te menciono lo siguiente:
  • Ejecuta el Código Original, si encuentra código en Internet, que es muy probable gracias al open source o plataformas de programación como Github o tutoriales y post en toda la red, pues ejecútalo, observa y analiza que es lo que hace tal código, para que luego puedas replicarlo como medio de practicar en tu lenguaje de programación favorito, ya que es aquí donde te darás cuenta de que hay cosas que no estén claras para ti y gracias a eso viene.
  • Entiende Cada Línea de Código, es muy natural conformarse conque funcione el código, pero el ignorar una linea de código al inicio del aprendizaje solo porque no parece importante, puede convertirse en un problema en el futuro, que pasa si luego ya no ignoras una, sino dos o tres, hasta el punto que un día analizas un código que esta hecho con puras expresiones o lineas de código que no entiendes. Es mejor tomarse el tiempo en entender que hace cada parte del código y así evitar dolores de cabeza en el futuro, pero para eso es recomendable lo siguiente.
  • Toma el Código y Realiza pequeños Cambios, la mejor manera de ver que tan importante es el código es probando, a ensayo y error la carencia o el intentar agregar una linea de código. Agrega o cambio el código, y analiza, ¿La salida es la misma? ¿El Programa sigue dando el mismo resultado? ¿A cambiado su comportamiento?, esto y muchas otras cosas más te dejara claro que es importante en tal código ademas que estarás programando.
  • Recrea una situación Similar, una vez entendido y hallas practicado con el código que ya has visto, es recomendable Recrear el Programa, ya que de esta manera te pruebas a ti mismo si te quedaron los conceptos Claros, si no entiendes una pequeña parte, vuelve a estudiarla y así hasta que lo puedas lograr, esto también es conocido como la Técnica de Feynnan para el estudio, en honor a Richard Feynman, un Físico asombroso, y famoso por ser uno de los mejores profesores, gracias a que explicaba términos físicos complicados con la explicación más simple, que personas no relacionadas podían entenderlo.
  • Realizar y Repara Errores, no todo el código que encuentres en Internet es perfecto, ya que esta hecho por humanos y somos capaces de cometer errores, así que puedes repararlos, además cuando aprendas intenta cometer errores, de esta manera no solo NO te frustraras cuando cometas alguno en un programa importante, sino que sabrás que hacer, es decir Ya lo Experimentaste, ¿que podría ser nuevo? 
Aprender A programar Hoy en día no se compara a los hackers de antaño, ellos tenían que comprar un libro, revisar revistas, buscar en foros, ir a los IRC y cosas parecidas, hoy en día la programación es muy fácil de aprender porque hay muchos recursos, y es por eso que el otro consejo es:

BUSCA REFERENCIAS

  • En Pequeños Fragmentos de Código que ya hallas escrito, puede que en tus primeros programas hallas usado algún fragmento de código útil, y luego de un tiempo lo hayas olvidado, pues examinalo y mira como programabas por aquel entonces.
  • Snippets - GitsBox, Csnip, SnipLeaf, hay muchas guías en Internet que te muestran pequeñas referencias de código para que puedas tener un rápido acceso a expresiones y temas relacionados a la sintaxis.
  • Documentación, obviamente siempre es necesario tener al alcance la documentación oficial en la web de tu lenguaje favorito, porque que pasa si las expresiones que estas usando ya no se usan las nuevas versiones o hay una mejor manera de hacerlas, o simplemente una nueva funcioalidad.
  • Posts de Blogs, existen blogs buenísimos para aprender a programar, tenlos a la mano cuando quieras aprender algo nuevo, porque es probable que tales blogs, publiquen cosas actualizadas del lenguaje que estés aprendiendo.

NO PARES DE ESCRIBIR CÓDIGO

  • Escribe código de manera diaria, es mejor practicar todos los días aunque sea unas horas, que solo practicarlos unas veces a la semana, tenlo presente y escribe código, en lo personal lo que yo tiendo a hacer es escribir un poco de código en muchos lenguajes distintos, para no aburrirme y de esa manera mantenerme motivado. 
  • Aprende Algo Nuevo Todos Los días, todos los días hay personas trabajando en como mejorar la manera de escribir código, como hacerlo más legible, más rápido, mas profesional, es por eso que existen conferencias, metups, y cosas similares, te recomiendo ver tales conferencias para que puedas tener presente lo nuevo de tu lenguaje, y como la comunidad esta desarrollándose con el mismo.
  • Mantente Al día con la Tecnología, la programación va de la mano con las tendencias de tecnología. cuando surgieron los Smartphones, no solo fue una revolución en las comunicaciones sino también en el desarrollo, las paginas de Internet se tuvieron que adaptar al pequeño tamaño de pantalla, las aplicaciones tuvieron que solicitar datos desde servidores remotos, ya que los móviles no tienen tanta capacidad de procesamiento, ni memoria, y lo mismo volverá a pasar con el Internet de Las Cosas. 
Ahora, si bien el escribir código en lenguajes distintos puede ser diferente, existen cosas que todos los buenos programadores tienen en cuenta y son los siguientes

PRINCIPIOS

  • KISS( Keep it simple stupid ), mantén tu código simple, legible, entendible, ya que le facilitara la vida a los otros programadores, y evitaras gastar recursos de más ya que el escribir código complejo requiere mantenimiento y eso requiere consumir recursos y esfuerzos, tanto de dinero tiempo, y humano.
  • DRY (Don't Repeat Yourself ), No reescribas código, No te repitas a ti mismo. Las computadoras están hechas para hacer tareas repetitivas de una manera veloz, ¿porque tu tendrías que hacer tal trabajo?
  • YAGNI (You're Gonna Need it), Solo usa lo que necesitas, Las computadoras si bien son muy potentes, no quiere decir que malgastes los recursos de la mismas, utiliza solo las cosas que necesitas, no solo te facilitará a mantener tu código, sino tu programa sera optimo, y no malgastara recursos del sistema, haciendo tu aplicación veloz, que consuma muy poco del computador  haciéndola posible ejecutarse en computadoras poco potentes y muchas otras ventajas.

HAZ LO QUE PUEDAS CON LO QUE TENGAS

no necesitas ser un programador con 10 años de experiencia para escribir un programa que le facilite solucionar o hacer un trabajo a otra persona, ni tener un computador extremadamente potente para aprender a programar. Investiga y Adapta lo que necesites a tus necesidades, Solo trata de solucionar el problema de la mejor manera que conozcas hasta el momento, y luego sigue investigando de que manera mejorarla, ademas:
  • Ten confianza, No dudes de Ti mismo, si ya escribiste tu hola mundo entonces, ya eres un programador, lee e investiga que otras cosas puedes hacer con lo que ya sabes, nadie nació sabiendo, tu también puedes aprenderlo.
  • Si Fallaste, vuelve a intentarlo. El cometer errores es parte del proceso y es mejor, pues a más errores cometas en tu aprendizaje, menos cometerás en el momento de la verdad.
  • Haz lo que Amas, de nada te servirá aprender las cosas porque sí, solo aprende lo que te gusta, pero no por esto ignores lo que es diferente de lo que gustes, mantén una mente abierta a aprender lo que te quieran enseñar, esto no solo te hará mejor programador sino mejor persona. 

HERRAMIENTAS

Estas herramientas quizás sean las más populares, pero no te preocupes seguiré agregando muchas más, y si tienes las tuyas pues te agradecería la compartas conmigo. 
  • Google, no tengo que decirte que es esto :P
  • StackOverflow, es la comunidad de programación más activa, recomendable tener una cuenta, de hecho el ranking numero 1 de tal comunidad, es considerado uno de los mejores programadores del mundo.
  • Quora, esta es una comunidad de preguntas y respuestas al estilo Yahoo respuestas, solo que más serio y profesional. puedes encontrar cualquier tema, no solo de programación, además que es una de las redes que más frecuento. 
  • Github, necesario si quieres demostrar tus proyectos o quieres crear el próximo proyecto abierto, o simplemente para almacenar y ver código. 
Muy Bien, hasta aquí he llegado con el Post, espero que hallas podido aprender algo, cualquier recomendación, comentario o sugerencia no olvides que puedes hacerla Aquí en el blog, Facebook, Youtube, Twitter o en cualquiera de mis redes. me encantara conocer tu opinión o simplemente saber ¿Que Lenguaje escogiste y Porque? o ¿Cuales son tus Consejos?, con eso dicho mantente aprendiendo y  ¡Happy Coding!

Comentarios

  1. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
    Respuestas
    1. Muchas gracias por tus consejos los voy a tomar, borre mi comentario pensando que se borraría, ya que lo deje incompleta, el lenguaje que escogí fue JavaScript ya que este me comenzo a llamar la atención para el desarrollo web y podría usarlo para back-end y front-end, pero me genero dudas si aprender PHP7 antes que NodeJs, aun que le doy mas tiros para Node.

      Borrar
    2. Actualmente estoy practicando HTML y CSS ya que me gustaría trabajar como freelancer, debido a que ayudo en el negocio de mi madre y ultima mente ha ido mal y bueno he optado por este debido a que son fáciles de aprender y practicar, obviamente tendría que experimentar y ver muchos recursos para el diseño. Que por cierto, quiero ser freelancer por medio por Internet, es decir quiero ofrecer mis servicios futuramente por este medio.

      Borrar
  2. Apenas estoy en proceso de aprendizaje en el mundo del desarrollo, pero con tus videos y blogs me han ayudado y motivado para continuar gracias

    ResponderBorrar

Publicar un comentario