Mario Alberto Chávez Cárdenas

Blog personal de fotografía y desarrollo de software

desarrollo

¿Aprender a programar o desarrollar?

¿Cómo aprender a programar? quizás es una de las preguntas más frecuentes que los que nos dedicamos al desarrollo de software recibimos de personas que están interesadas en aprender o mejorar sus habilidades de desarrollo.

En términos muy prácticos creo que aprender a programar es muy sencillo, simplemente se requiere de elegir un lenguaje de programación, mientras más popular mejor, buscar un buen libro o la documentación del lenguaje y el resto es practicar, practicar y practicar.

A quien no le ha tocado o le tocó alguna vez ir a visitar una empresa en donde en contador o el encargado de almacén tiene todo un sistema autómatico escrito en macros de Excel y/o Visual Basic. Obviamente la necesidad de resolver un problema real es lo que llevó a estas personas a aprender como sacarle provecho a las herramientas con las que cuentan y automatizar procesos repetitivos.

Entonces, cualquier persona sin importar sus estudios previos puede aprender a hacerlo, quizás lo único que se requiere es la paciencia y tener un problema real que resolver.

Hoy en día es todavía más sencillo aprender a programar, ya que existen una gran cantidad de recursos en línea en forma tutoriales y cursos disponibles a un “click” de distancia.


Aprender a desarrollar es otra historia, por lo menos desde mi punto de vista, el desarrollo de software es una actividad más compleja que obviamente necesita de la habilidad de saber programar, pero que requiere que la persona posea otra serie de habilidades.

Idealmente un desarrollador ha adquirido de manera formal o informal conocimiento de Ciencias Computacionales — Computer Science — y comprende las implicaciones al tomar decisiones de como implementar una solución en software.

El compartir y aprender conocimientos con otros desarrolladores es una responsabilidad importante para mejorar las habilidades codificando y mejorar la comunicación.

Un desarrollador a través de su experiencia se vuelve una persona crítica sobre el lenguaje de programación, frameworks, herramientas y técnicas que utiliza día a día para realizar su trabajo, es alguien que buscará utilizar las herramientas correctas para el problema que tiene enfrente.

Es una obligación estar al pendiente de nuevas tecnologías, de aprender y experimentar, de salirse de su zona de confort.


¿Cómo puedo pasar de ser un programador a ser un desarrollador?

Como todas las actividades humanas, se requiere de tiempo y disciplina, no sucede de un instante a otro, inclusive no hay una métrica específica que sea indicador inequívoco de este avance, pero si hay una serie de actividades que podemos realizar para asegurarnos de que vamos en el camino correcto.

Aprende un lenguaje de programación

Depende a quien le preguntes te va a decir que si un lenguaje de programación es bueno para principantes o no. Mi recomendación, trata de elegir un lenguaje que sea popular, así vas a tener muchos recursos a la mano cuando tengas problemas.

Ten un proyecto propio

No hay nada mejor para aprender un lenguaje de programación que tener un proyecto, busca una necesidad que quieras resolver o crea el clon de Facebook, Twitter o Whatsapp. Dedícale tiempo y ponte metas reales.

Busca y únete algun grupo de desarrolladores

En casi todas las ciudades hay grupos de desarrolladores que se reunen por lo menos una vez al mes para platicar y compartir lo que saben. Un grupo de este tipo es buena opción para concer a gente que te puede responder preguntas o quizás hasta ayudar a conseguir trabajo, si es que estas buscando.

En algunas ciudades se organizan “hackatones”, participa en ellos, únete a un equipo de desconocidos, lo hackatones no son realmente para construir pero si una oprtunidad para aprender algo nuevo.

Revisa el código de otros desarrolladores

Una forma de aprender a desarrollar es ver el código de otros desarrolladores y aprender de la forma en como ellos solucionan problemas, Github puede ser una gran fuente de inspiración.

Participar en proyectos Open Source es una increíble oportunidad de aprendizaje, inicialmente la participación puede ser tan simple como ayudando en la documentación, solucionando “bugs” simples hasta tener la confianza de hacer cosas más grandes.

Abre tu blog

Un blog es una buena forma de registrar lo que has aprendido nadie es muy novato ni muy avanzado para tener un blog. Para muchas personas el poder articular lo que han aprendido es una forma de reforzar ese conocimiento.

Busca gente que te inspire

Busca en tu ciudad o en línea — a través de blogs, twitter o algún otro servicio — gente que te inspire a ser un buen desarrollador, ponlos como tu modelo a seguir.

Hay que leer

Para aprender a programar o aprender una nueva técnica hay que leer, pero los libros o artículos técnicos no es el único tipo de material sobre el que nos debemos de enfocar. Hay otro tipo de libros que nos ayudan a mejorar nuestra vida profesional, como ejemplo dejo los siguientes libros:

  • An Introduction to the Theory of Computation, Eitan Gurari, Ohio State University, 1989 http://web.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html
  • Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin, Prentice Hall, 2008 http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
  • The Pragmatic Programmer: From Journeyman to Master, Andrew Hunt/David Thomas, Addison-Wesley, 1999 http://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=pd_sim_b_2?ie=UTF8&refRID=0010JAEQGR0P8E5Z8X6Z
  • The Passionate Programmer (2nd edition): Creating a Remarkable Career in Software Development, Chad Fowler, The Pragmatic Bookshelf, 2009 https://pragprog.com/book/cfcar2/the-passionate-programmer

En México hay grupos y comunidades de desarrolladores entre ellos se encuentran: CodificadasMX (Women who code), ChelasJS, Chilango Rails, Ruby GDL, RailsMx, AngularJS México, Tijuana.NET, TijuanaJS y algunos otros que se reunen en otras ciudades.