BLOG

8 barreras que debes superar cuando aprendes a programar

Por [N1] Fred el | Añadir comentario

saltar barreras programación

Muchas personas de mi entorno viven de la programación de alguna u otra manera. Algunos son programadores de software de gestión empresarial, otros desarrolladores web, otros hacen consultoría, otros son analistas-programadores, y otros se dedican a formar a programadores novatos. Cada uno me habla sobre los motivos de éxito y de fracaso de un programa, o de una web, o de un curso de formación.

El otro día un formador de programadores de un centro de formación, que además tiene su propia empresa de software, me comentaba que muchos alumnos empiezan el curso con muchas ganas y luego enseguida se desmotivan al darse de bruces con la realidad. Me contaba que la mayoría de los alumnos se frustraban por las mismas barreras, y que era muy importante enseñarles a superar dichos obstáculos. Me venía a decir que si un alumno de programación no superaba esas barreras jamás podría:

  • disfrutar del proceso de aprendizaje plenamente
  • avanzar de forma rápida
  • mostrarse más perseverante al quedarse atascado y no rendirse a las primeras de cambio
  • ser totalmente autónomo e independiente a la hora de programar

Pero, ¿cuales son esas barreras que debes sortear cuando estás aprendiendo a programar? ¿Cómo las superas? Aquí van 8 barreras que debes superar cuando aprendes a programar.

#1 No estás aprendiendo a programar por las razones correctas

Antes de entrar en las barreras, es importante destacar lo importante que es la motivación a la hora de aprender. No debes aprender a programar por aprender, o porque te han dicho que tiene muchas salidas y está bien remunerado.

Hazlo porque buscas resolver problemas. Automatiza y mejora la calidad de vida. Haz software que ayude a las personas.

Si lo haces simplemente porque te agrada programar y lo que quieres es vivir de la programación, quizás tengas ganas de abandonarla por el camino. Esto es lo que suele suceder cuando las cosas se ponen difíciles y el proceso de aprendizaje se vuelve arduo. En ese momento te convencerás a ti mismo de que ya no te gusta la programación, o que no naciste para ser programador.

Por eso es importante que te fijes una meta en torno a cumplir un objetivo. Si tienes un proyecto en mente, o un problema en concreto que quieras solucionar, te podrás convencer a ti mismo de que aunque la experiencia en estos momentos no sea tan grata, lo que busco es solventar un problema mayor, así que me voy a superar a mí mismo para sortear este obstáculo.

#2 No sabes con qué tecnología empezar

Muchas personas se preguntan: ¿qué lenguaje de programación debería aprender primero? Este problema se da porque no saben por qué quieren programar en primer lugar.

Una vez que fijas tu mente en proyecto concreto, es muy fácil identificar qué lenguaje de programación quieres aprender primero:

  • Si quieres hacer una app nativa para iOS, empieza con Objective C o Swift.
  • Si lo que quieres es programar una app nativa para Android, aprende Java.
  • Si quieres programar software empresarial y de gestión, aprende Velneo.
  • Si quieres programar una aplicación web, apuesta por JavaScript

Hoy en día JavaScript en realidad sirve para hacer cualquier tipo de proyecto, desde simples páginas web y apps móviles hasta proyectos avanzados con hardware. Se usa en muchas industrias diferentes: música, medicina, juegos, moda. La verdad es que JavaScript da mucho juego y es casi una obligación tenerla entre tus competencias como programador. Por otro lado hay tecnologías más especializadas, como Velneo, que te ayuda a programar software de gestión para empresas en tiempos muy cortos.

Si estás aprendiendo a programar y aún no sabes qué lenguaje escoger, puedes pedirle consejo a un programador más avanzado. Una vez que sabes qué tipo de programa quieres programar, es más fácil para otro programador aconsejarte por qué tecnología apostar.

Ten en cuenta también que muchas veces lo que los conocimientos que aprendes sobre un lenguaje de programación son transferibles a otros lenguajes, así que piensa en todo ello como un trabajo acumulativo.

#3 No puedes aplicar la teoría que aprendes a la práctica y te culpas a ti mismo por ello

culpa

Una vez que ya has elegido qué tecnología quieres  usar, es fácil empezar y aprender la teoría. A poco que uno busque por Internet se encuentra con muchos cursos gratuitos y de pago. Si quieres aprender a programar aplicaciones de gestión, Velneo también ofrece estos seminarios gratuitos (para acceder tienes que estar registrado primero).

Mi amigo, el formador, siempre me dice los alumnos se suelen saber la teoría y saben explicar cómo funciona el código, ya que en un plano teórico los conceptos se aprenden y son finitos. ¿Entonces dónde está el problema?

La mayor dificultad a la que se enfrentan los alumnos es a la hora de aplicar la teoría para solucionar problemas y crear código nuevo. La brecha es de destreza, no de conocimientos.

Una analogía perfecta sería la de nadar. Puedes leer mucho sobre la técnica perfecta y puedes explicarle a alguien con palabras al igual que lo haría un entrenador profesional de natación. Pero aplicar dicha teoría toma mucha práctica, mucha lucha y muchos errores. Se traga mucha agua 🙂

Pero lo que no puede hacer uno es culparse a sí mismo ni pensar que no es lo suficientemente inteligente, o que no tienes talento. No se trata de eso, se trata de tener disciplina y un proceso exhaustivo que seguir. ¿Cómo mejorar tus destrezas como programador?

1. Elige un proyecto complejo para trabajar en él. Lo ideal es elegir algo que realmente te emocione.

2. Divídelo en pequeñas partes, en tareas aisladas.Por ejemplo, una tarea del tipo “implementar la página de login” es demasiado grande. Cada tarea no debe superar las 20 líneas de código para quedar resuelta. He aquí algunos consejos que te ayudarán a hacer esto con éxito:

  • Si aún no eres capaz de resolver la tarea, pues piensa en como dividirla en partes aún más pequeñas.
  • Cada una de estas tareas no debe implicar el uso de muchos conceptos teóricos a la vez.

3. Focaliza tu energía en una tarea a la vez, en vez intentar solucionar múltiples tareas en paralelo. No pases a la siguiente tarea hasta que hayas probado en profundidad la que tienes entre manos y te asegures te que no da problemas.

Si no lo haces y tu programa empieza a fallar, va a ser mucho más difícil identificar el problema si estás haciendo varias tareas en paralelo.

4. Asegúrate de que tienes los mínimos conocimientos teóricos antes de ponerte con cada tarea. A veces lo normal es no saber si sabes lo suficiente, o no saber que teoría debes estudiar. Lo mejor en estos casos es tener un mentor: un amigo programador,  un usuario de un foro dispuesto a ayudar, etc…

5. En último lugar, soluciona la tarea. A la hora de solucionar la tarea, hay muchas barreras a las que te vas a tener que enfrentar. Las repasaremos a continuación.

#4 Apuras al máximo haciendo cada tarea sin pararte a reflexionar sobre las consecuencias de tu código

En el mejor de los casos, solucionas la tarea y el código funciona. Y luego ya te pasas a la siguiente tarea. Si haces esto, no estás sacando el máximo provecho del proceso de aprendizaje.

Te animo a que te retes a ti mismo con las siguientes preguntas:

  • ¿Hay algún caso extremo en el que mi código pueda fallar?
  • Incluso si ahora no falla, ¿hay algún estado de la aplicación que pueda causar que rompa?
  • ¿Mi código es lo suficientemente limpio y claro?
  • ¿Es fácil de entender? ¿Seré yo u otros capaz de modificarlo para arreglar errores o adaptarlo a nuevos requisitos de producto?
  • ¿Qué otras alternativas podría haber usado?
  • ¿Merece la pena solucionar la tarea de forma disitinta?
  • ¿Cómo interactua este módulo con otros?
  • ¿Puede afectarles negativamente?¿Puede ser usado fácilmente por otros módulos?

De todo modos, muy a menudo te quedas atascado:

#5 No sabes cómo enfocar una tarea

Foco

¿No sabes por dónde empezar? Puede que te sientas tentado a hacer cosas aleatoriamente, o a copiar código que no entiendes de otros sitios. Pero eso no sirve de nada, aunque copies código que sí funciona. ¿Por qué? Porque cuando tengas que hacer una tarea similar en el futuro tampoco serás capaz de resolverla.

Si quieres solucionar bien la tarea, primero tienes que identificar dónde y por qué estás atascado. Aquí unas posibles causas:

  1. No te sabes bien la teoría:
  • la sintaxis del lenguaje de programación
  • cómo funciona una librería o una API, o cómo funciona un método o una clase específica
  • paradigmas de programación (por ejemplo: programación asíncrona)
  • cómo funciona el sistema (por ejemplo: peticiones HTTP –HTTP requests- son algo crucial que hay que entender en desarrollo web).

Si este es el caso, repásate la teoría otra vez, o encuentra a alguien que te la explique si aún no le ves el sentido.

  1. La tarea es demasiado grande y necesita dividirse en tareas más pequeñas.
  1. No entiendes lo que se te pide en la tarea porque la has leído sin adentrarte en los conceptos pensando que ya los sabías pero que en verdad no tienes ni idea.

#6 Sabes como solucionar una tarea de programación, pero tu solución no funciona

Este es el problema más común en el mundo profesional de la programación. Incluso para programadores que cuentan con muchos años de experiencia. La razón por la cual tu solución no funciona es muy probablemente porque hay un bug o un error en tu código.

¿Cómo lo arreglas? Depurando el código. Esta es una de las destrezas más importante que debes aprender como programador. No es algo que puedas hacer aleatoriamente, o jugando a las adivinanzas. Hay pasos específicos que puedes tomar de cara a encontrar errores en tu código. Existen libros enteros dedicados a la enseñanza de esta habilidad.

Por desgracia, aquí es donde muchos de los nuevos programadores pierden la motivación y se rinden. Muy pocos cursos explican la importancia de la depuración del código. Si no sabes hacerlo bien, puede resultar abrumador.

Muchos programadores se preocupan porque piensan que les toma demasiado tiempo depurar código. Lo normal es que tome mucho tiempo y tienes que estar preparado para esto en tus primeros años de programación.

Incluso mejor, tienes que aprender a “amar” la depuración de errores, el afamado debugging. Piensa en ello como una oportunidad de mejora, de aclarar conceptos y mejorar tus destrezas de programador. Cada vez que soluciones un bug, hazte la siguiente pregunta: ¿Por qué cometí este error? ¿Cómo puedo evitar cometerlo en el futuro?

Es una buena idea tener un diario de programación donde anotar todos los bugs que encuentras. Rápidamente identificarás patrones y aprenderás de ellos.

#7 No sabes cómo recibir ayuda

mentor

Mientras aprendes a programar y a depurar tu código, consultarás muchos recursos: libros, cursos, manuales, mentores,  comunidades de desarrolladores, etc…

El problema más común que aprenderás de todos estos recursos es que no te obligas a entender completamente lo que está pasando detrás de las escenas y cómo el concepto encaja en la película completa.

Por ejemplo: tras pasarte 10 horas resolviendo un problema, y de repente un tercero te da la solución, pues aceptas dicha solución, lo celebras, y hala, a la siguiente tarea. No hagas eso. Tienes que hacer un ejercicio de meta-cognición:

  • piensa en tu linea de pensamiento del proceso anterior: pregúntate a ti mismo qué has hecho mal y qué podías haber mejorado para llegar a esa solución en concreto.
  • pregúntale a la persona que te ofreció la solución que te explique su proceso mental. ¿Cómo logró llegar a la solución? Aprende de eso y aplícatelo a ti mismo la próxima vez.

Este es el gran inconveniente de StackOverflow, o de leer respuestas en Google: no puedes averiguar cómo las personas llegaron a esas conclusiones. Solo puedes tomar las soluciones y con suerte comprenderlas. Pero nunca conocerás el proceso mental detrás de esas soluciones.

#8 No puedes aplicar la teoría que aprendes

¿Este punto otra vez? (ver punto 3)

Solo quiero subrayar que este artículo es pura teoría y que no sirve de nada a no ser que apliques esta teoría, no una vez, sino varias hasta que se convierta en hábito.

La programación, como casi todo, versa sobre desarrollar buenos hábitos para ayudarte a saltar obstáculos y sortear los problemas.

práctica

Nota: este artículo está basado en este post.

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies