Si te has planteado alguna vez aprender a programar desde cero es muy probable que te hayas frustrado por no saber por d√≥nde empezar.

En este art√≠culo te daremos las claves de c√≥mo empezar, desde cero, con todas las preguntas que siempre te has hecho, con los recursos m√°s adecuados para aprender y con todos los consejos que hemos detectado como imprescindibles despu√©s de ense√Īar a decenas de alumnos a programar.

Se trata de una guía para aprender programación con el objetivo de trabajar como programador.

¬ŅPor d√≥nde empezar?

Vale, ya tenemos claro que queremos aprender a programar, pero ¬Ņpor d√≥nde empiezo? ¬ŅQu√© lenguaje aprendo? ¬ŅSigo un curso online o presencial? Todas estas preguntas que son las que se realiza toda persona antes de decidirse a entrar en el mundo de la programaci√≥n. Vamos a tratar de resolver las dudas que teng√°is.

Requisitos mínimos

Aprender a programar está al alcance de la mayoría de personas que cumplan un mínimo de requisitos. ¡Ojo! Esto no significa que sea fácil, simplemente significa que si te esfuerzas y practicas mucho puedes llegar a ser un gran programador, no hay barreras de entrada.

Como requisitos mínimos tan sólo necesitarás conocimientos básicos de las siguientes materias:

  • Matem√°ticas. Nada que no hayas aprendido en el instituto: operaciones matem√°ticas b√°sicas, conocer el concepto de funci√≥n matem√°tica, algo de teor√≠a de conjuntos. No te asustes por esto.
  • L√≥gica. Con igual o mayor importancia que las operaciones matem√°ticas est√°n las operaciones l√≥gicas. La l√≥gica suele impartirse en el Instituto integrado en alguna materia como matem√°ticas o filosof√≠a. En nuestros cursos de programaci√≥n solemos dedicar un espacio a repasar las operaciones l√≥gicas b√°sicas, ya que las usar√°s constantemente a lo largo de tus ejercicios de programaci√≥n y muchas personas no recuerdan c√≥mo funcionan las reglas de l√≥gica. Es f√°cil, no te preocupes.
  • Ingl√©s. Los lenguajes de programaci√≥n est√°n escritos en ingl√©s y aunque no se trata de conocer la lengua de Shakespeare, s√≠ que te ser√° de gran utilidad conocer el significado de las (pocas) palabras que componen un lenguaje de programaci√≥n. Tan s√≥lo eso ser√° necesario aunque te vendr√° muy bien tener soltura leyendo textos en ingl√©s porque hay mucha m√°s documentaci√≥n en dicho idioma.

Esto es todo en cuanto a conocimientos técnicos, pero lo más importante es que tengas ganas de aprender, y dediques tiempo y esfuerzo. Si pones todos estos ingredientes te aseguramos que aprenderás a programar sin problema.

¬ŅCu√°nto tiempo toma aprender a programar?

Hay mucha discusi√≥n acerca de dar una estimaci√≥n, ya que depende de muchos factores. Bajo nuestra experiencia, a una persona sin ning√ļn conocimiento previo le llevar√° unas 500 horas llegar a una posici√≥n donde podr√° sentirse c√≥moda realizando tareas de programaci√≥n y estar trabajando en una empresa bajo la supervisi√≥n de un programador m√°s experimentado.

Para que te hagas una idea de cu√°nto tiempo es esto, deber√≠as dedicar algo menos de 10 horas semanales durante un a√Īo para llegar a esas 500 horas.

Podemos dividir las etapas del proceso de aprendizaje de la programación suelen dividirse de la siguiente manera:

  • Acercamiento a la programaci√≥n y conocimiento de la sintaxis del lenguaje.
  • Conocimiento profundo de la sintaxis y caracter√≠sticas del lenguaje.
  • En pr√°cticas.
  • De becario o Junior.
  • De Junior a Senior.

Nuestros cursos tienen una estimaci√≥n de 100 horas de estudio y trabajo. Creemos que es la duraci√≥n √≥ptima para que tengan un precio asequible para ti y a la vez puedas acelerar el proceso de aprendizaje. Tenemos comprobado que si un alumno intenta asimilar demasiado r√°pido todos los conceptos, se perder√°. As√≠ mismo tampoco hay que dejar pasar muchos d√≠as. Hay que mantener un ritmo de aprendizaje adecuado y constante.

¬ŅQu√© lenguaje de programaci√≥n aprender?

Cuestión muy importante esta. Realmente, cuando se habla de aprender a programar no debemos pensar que vamos a ser capaces de programar sólo en ese lenguaje. Cuando nos convertimos en programadores realmente lo que debemos aprender es a cómo usar un lenguaje de programación para resolver los problemas que nos propongan.

Aprender lenguajes de programación no funciona de la misma manera que aprender un idioma extranjero. Es decir, al aprender un idioma, como pudiera ser el inglés, yo seré capaz de comunicarme en ese idioma pero no seré capaz de comunicarme en ruso, francés o chino mandarín. Con los lenguajes de programación esto no es así. Si he aprendido a programar en Java, debería aprender con muy poco esfuerzo a programar en Python o en Ruby, por ejemplo.

Aquí es importante diferenciar el saber programar a conocer la sintaxis de un lenguaje o cómo funciona un determinado lenguaje. Las estructuras y las sentencías son muy parecidas de un lenguaje de programación a otro.

Dicho esto, sí es cierto que hay lenguajes más fáciles de aprender parar un novato que otros. Vamos a hacer un repaso de los más comunes:

  • PHP. Es un lenguaje muy popular debido especialemente a su antig√ľedad, a que es el lenguaje por defecto ofrecido por las empresas de Hosting y a, sobretodo, a que WordPress est√° escrito en √©l. No obstante fuera del √°mbito de WordPress es un lenguaje muy poco usado (ninguna startup o tecnologica usa hoy en d√≠a PHP para desarrollar sus productos) y no es el lenguaje m√°s recomendable para aprender. Nosotros no lo recomendamos como primera opci√≥n.
  • JavaScript. Es el lenguaje web por excelencia y cada vez hay m√°s frameworks que lo usan. Que sea un lenguaje que pueda ser usado tanto en la parte cliente como en la parte servidora han hecho de este lenguaje muy popular en ciertos campus, bootcamps y cursos. No obstante, por nuestra experiencia hamos notado que no es el mejor lenguaje para iniciarse en la programaci√≥n desde cero.
  • Python. Es, seguramente, el lenguaje m√°s recomendado para empezar a programar. Es sencillo, moderno, f√°cil de usar y muy orientado al mundo acad√©mico. Tiene grandes aplicaciones hoy en d√≠a, usado en muchos √°mbitos. Muy recomendable para aprender programaci√≥n.
  • Java. Es el lenguaje m√°s usado de la actualidad y hay gran cantidad de ofertas de trabajo en torno a √©l. ‚ÄúA quien sabe Java no le faltar√° el trabajo nunca‚ÄĚ, se suele decir. Es cierto que no es el m√°s indicado para aprender a programar desde cero como pueda ser Python, pero dada la gran demanda de trabajo que hay y la versatilidad del lenguaje hemos de recomendar Java como una de las opciones a tener en cuenta.
  • Resto de lenguajes. Aqu√≠ entrar√≠an el resto de lenguajes, como puedan ser los lenguajes funcionales (Scala, por ejemplo), lenguajes de bajo nivel (C o C++) u otros lenguajes orientados a objetos, como C# o Ruby. Podr√≠amos extendernos con los pros y contras de cada uno de estos lenguajes, pero creemos que no merece la pena entrar en detalle. No los recomendar√≠amos como primer lenguaje.

Conclusión: De todos los lenguajes nombramos consideramos Java y Python como más óptimos para aprender a programar.

  • Si tu objetivo es aprender programaci√≥n para encontrar un trabajo como programador te recomendamos Java.
  • Si tu objetivo es saber programar por motivos acad√©micos o simple curiosidad, te recomendamos Python.

¬ŅPor d√≥nde empiezo?

Ya hemos repasado los requisitos m√≠nimos para aprender a programar, nos hemos mentalizado de cu√°nto tiempo nos llevar√° y hemos decidido qu√© lenguaje aprender. Ahora viene el siguiente paso: ¬ŅC√≥mo empezar a programar? ¬ŅSigo un curso? ¬ŅUn libro?

Nuestro primer consejo es que no empieces ning√ļn tutorial relacionado con crear aplicaciones para Android, un robot con Arduino o un videojuego con Unity. Muchas webs te van a recomendar estos recursos pero nosotros no los aconsejamos por los siguientes motivos:

  • No est√°n dise√Īados para aprender a programar. Crear una aplicaci√≥n de Android o un juego de Unity no debe ser tu primer paso. En esos cursos no te van a ense√Īar c√≥mo piensa un programador.
  • Muchas de los art√≠culos donde ver√°s recomendados estos recursos no est√°n escritos por gente especializa en la ense√Īanza de la programaci√≥n. Est√°n normalmente escritos por redactores y se limitan a darte una lista de recursos, pero sin entrar en detalle ni decirte por qu√© usar unos y no otros. Sigue recomendaciones de gente que se haya ‚Äúmanchado las manos‚ÄĚ, que sepa lo que es aprender y ense√Īar a programar.

Dicho esto, vamos a analizar las distintas posibilidades que tenemos:

Tutorial por Internet: Aqu√≠ es por donde casi todo el mundo comienza, buscar alg√ļn tutorial por internet y seguirlo. El problema de estos tutoriales en nuestra opini√≥n son:

  • En espa√Īol vas a encontrar poco material o de escasa calidad.
  • Poco pr√°cticos. Hay pocos ejercicios y si los hay, no suelen propocionar ni la soluci√≥n ni explicaci√≥n alguna sobre la soluci√≥n.

Seguir un libro: Buscar un libro o un PDF por Internet suele ser el siguiente paso de los que realizan un tutorial por Internet. Buscan información más completa, detallada, pero el problema es que de golpe y porrazo se encuentra con textos densísimos. Hay muchísimos libros o PDFs por Internet y cuesta distinguir cuáles son de referencia o consulta, cuáles son para novatos, cuáles para usuarios más avanzados, etc.

El otro gran problema es que cuentan con pocos ejercicios y este punto es fundamental. Adem√°s las soluciones suelen no estar disponibles, no est√°n explicadas. etc.

Videotutoriales de YouTube: Seguir alg√ļn tutorial a trav√©s de YouTube te permite poder escuchar explicaciones m√°s detalladas. El problema suele ser que la mayor√≠a de tutoriales existentes suelen ser en torno a conocer un lenguaje, no a c√≥mo aprender a programar. No obstante, la opci√≥n del tutorial de YouTube puede ser interesante si encuentras alg√ļn tutorial de este tipo y que contenga una gran cantidad de ejercicios. En la secci√≥n de recursos te daremos nuestras recomendaciones.

Apuntarse a un curso online: Este suele ser el siguiente salto de quien sigue un curso de YouTube y quiere realizar algo más completo. En inglés hay obviamente mayor variedad que en castellano.

Los cursos online están muy bien para conocer nuevos lenguajes, nuevos frameworks o tecnologías más avanzadas. Es decir, para alumnos ya iniciados en el mundo de la programación. Como ventajas obviamente tiene que el precio suele ser menor que los cursos presenciales.

El problema es que para empezar a aprender programación no tienes el apoyo o las explicaciones concretas que te puede dar un profesor en un curso presencial. En un curso online sueles tener la opción de preguntar dudas en un foro, por email o por otro medio pero no es lo mismo. En todo caso es una opción a tener en cuenta.

Apuntarse a un curso presencial: Como alternativa a los cursos online tenemos los cursos presenciales. Tienen la ventaja obvia de tener un profesor que va a poder explicarte de diferentes maneras alg√ļn concepto, explicarte las dudas o ese ejercicio concreto que no entiendes o no sabes resolver.

Creemos que es la mejor opción si eres totalmente nuevo en el mundo de la programación. Es la opción que mejor combina precio, calidad de aprendizaje y recursos disponibles.

A la hora de elegir un curso presencial de programación, recomendamos uno en el que el ratio de profesor/alumnos no supere 1/9, donde haya gran cantidad de ejercicios prácticos explicados y corregidos y donde tengas material disponible para consultar en casa.

Nosotros en CodingHub ofrecemos un curso de programación en Java y otro en Python.

Apuntarse a un Bootcamp o curso intensivo: Los bootcamps, o cursos intensivos, son cursos que te ofrecen la posibilidad de ser programador en 6 o 7 semanas. El problema de estos bootcamps (adem√°s de que obviamente su precio no es barato, de media unos 5.000‚ā¨) es que te ofrecen en su temario conocer aprender muchas cosas: HTML, JavaScript, alg√ļn lenguaje de servidor y un framework web. Aprender muchas cosas de manera superficial no te va a convertir en mejor programador ni te van a contratar antes. Saber programar bien es mucho m√°s importante. Lo de que ‚Äúel que mucho abarca, poco aprieta‚ÄĚ es aplicable a la programaci√≥n. Empieza por lo b√°sico, asegurate que sabes C√ďMO programar y s√≥lo entonces especializate en lo que quieras.

Estos bootcamps en su mayoría hacen un buen trabajo pero debes tener en cuenta una cosa: convertirte en programador en 7 semanas es una etiqueta de Marketing. Si decides seguir uno de estos bootcamps adelante, pero manten eso en tu cabeza. Vas a repasar muchos conceptos variados sin entrar en detalle en muchos de ellos. Nuestro consejo es: céntrate en aprender a programar bien.

 

Mejores recursos para aprender a programar

Una vez que hayas resuelto todas esas dudas que surgen al empezar a programar, te mostramos nuestra selecci√≥n de los mejores recursos para aprender a programar. Hemos excluido de nuestra lista todo aquello que no sea pr√°ctico, bien estructurado, claro y √ļtil. Estos son los resultados:

Tutoriales y Sitios Web

Respecto a los tutoriales y sitios web en castellano nos gusta recomendar echar un ojo a las webs de las principales universidades espa√Īolas. Muchas de ellas publican el contenido de sus asignaturas de programaci√≥n y suelen ser una buena fuente de recursos.

Aquí os ponemos una lista de las más interesantes:

Cursos online y Videotutoriales

Aquí también tenemos multitud de posibilidades, como CodeAcademy, Udemy u otros. Estamos realizando un artículo completo comparando los distintos cursos online y videotutoriales que tenemos disponibles.

Libros

Existen multitud de libros de programaci√≥n. Cientos y para todos los p√ļblicos. Muchos de ellos son libros de referencias y pueden abrumar a alguien novato que se aproxime a ellos. Dentro de la multitud de libros existentes, para una persona novata en programaci√≥n te recomendamos 2 libros, uno en ingl√©s y otro en espa√Īol:

  • Head First Java. Nos gusta recomendar este libro porque, a pesar de estar escrito en ingl√©s, es ideal para personas que se aproximan por primera vez a un lenguaje de programaci√≥n. No es un libro de consulta, sino que es mucho m√°s ameno, ya que va siguiendo un enfoque super pr√°ctico, con multitud de ejercicios, esquemas e ilustraciones.
  • Hear First Python. Se trata del mismo libro pero en versi√≥n Python.

Aquí puedes encontrar una lista completa de los libros de programación más recomendados.

Foros de consulta

Cuando tengas alguna duda y te encuentres con un error que no eres capaz de solucionar, el sitio n√ļmero 1 para consultar es StackOverflow. Aunque tiene versi√≥n en espa√Īol, te recomendamos que te habitues a consultar la versi√≥n inglesa, mucho m√°s completa.

Cursos Presenciales

Obviamente para terminar te quer√≠amos recomendar nuestros cursos presenciales. En ellos hemos puesto en pr√°ctica todo aquello que durante los a√Īos hemos aprendido en la ense√Īanza de la programaci√≥n.