Si te has planteado alguna vez aprender a programar desde cero es probable que hayas pasado por estas etapas:

  • Euforia inicial.
    • Estás supermotivado, te encanta la idea de saber programar y la de trabajar en un sector innovador y que prácticamente no conoce el desempleo.
  • Primeros progresos
    • Suele ocurrir los primeros días o semanas.
    • Empiezas a buscar cursos online e información. En internet siempre hay muchos recursos, aunque te da la sensación de estar inconexo o poco práctico.
    • Has ido haciendo progresos. Has realizado correctamente tus primeros ejercicios, has encontrado algún tutorial que está bien aunque demasiado teórico.Primeros progresos.
    • Llegas incluso a hacer algún pequeño programita del que te sientes super orgulloso.
  • Desánimo.
    • Pasadas las primeras semanas, te empiezas a desmotivas.
    • La información en castellano es casi siempre de poca calidad y prácticamente lo que hacen es repetir en todos los sitios lo mismo.
    • Para colmo casi nunca encuentras ejercicios prácticos. De ejercicios resueltos y con explicación mejor ni hablar.
    • Los libros, PDFs de 400 páginas, los has dejado de lado y vas a haciendote una idea en la cabeza: aprender a programar desde cero no era tan fácil.
  • Lo dejas.
    • Tu rutina del día a día cada vez te deja menos tiempo (o eso te dices).
    • Vas dedicándole cada vez menos tiempo.
    • Terminas dejándolo.

¿Te suena? Tranquilo, no estás solo. A todo el mundo le ocurre. Internet es un vasto océano de información y hay que saber discernir el polvo de la paja.

Aprender programación es práctica y práctica. No hay duda. Por muchos tutoriales que leas, por muchos vídeos que veas, si no programas no aprenderás.

Es por eso que la motivación es fundamental y por eso en nuestros cursos tratamos de fomentarla: gamificando ejercicios, proponiendote retos.

Hemos preparado esta guía para aprender a programar 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.

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

Programación desde cero: Los comienzos

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.

¿Todo el mundo está capacitado para aprender a programar? 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?

Seguramente si cualquier otra web te dirán frases del tipo: “A programar no se termina de aprender nunca”, “Siempre se están aprendiendo cosas nuevas”, etc. Ok, esto es cierto, pero es un información poco útil para tí. Como a nosotros nos gusta mojarnos vamos a daros una respuesta más precisa.

Hay mucha discusión acerca de dar una estimación, ya que depende de muchos factores. Nosotros vamos a mojarnos y a decir que 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 el proceso de aprendizaje de la programación en varias fases:

  • Acercamiento a la programación y conocimiento de la sintáxis del lenguaje.
  • Conocimiento profundo de la sintáxis 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 tí 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á. Asi 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 sintáxis 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 comúnes:

  • 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 academico. 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?

Vale, 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 en 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.

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.

Tutorial 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.

Cursos 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.

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.

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.

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.