Você está na página 1de 11

8 barreras que debes superar cuando

aprendes a programar

POR [N1] FRED EL 5 MAYO 2016 | AÑADIR COMENTARIO

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:

o disfrutar del proceso de aprendizaje plenamente


o avanzar de forma rápida
o mostrarse más perseverante al quedarse atascado y no rendirse a las
primeras de cambio
o ser totalmente autónomo e independiente a la hora de programar
Pero, ¿cuáles 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:

o Si quieres hacer una app nativa para iOS, empieza con Objective C
o Swift.
o Si lo que quieres es programar una app nativa para Android, aprende
Java.
o Si quieres programar software empresarial y de gestión, aprende Velneo.
o 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

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:

o Si aún no eres capaz de resolver la tarea, pues piensa en como dividirla


en partes aún más pequeñas.
o 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:

o ¿Hay algún caso extremo en el que mi código pueda fallar?


o Incluso si ahora no falla, ¿hay algún estado de la aplicación que pueda
causar que rompa?
o ¿Mi código es lo suficientemente limpio y claro?
o ¿Es fácil de entender? ¿Seré yo u otros capaz de modificarlo para arreglar
errores o adaptarlo a nuevos requisitos de producto?
o ¿Qué otra alternativa podría haber usado?
o ¿Merece la pena solucionar la tarea de forma distinta?
o ¿Cómo interactúa este módulo con otros?
o ¿Puede afectarles negativamente? ¿Puede ser usado fácilmente por otros
módulos?
De todos modos, muy a menudo te quedas atascado:

#5 No sabes cómo enfocar una tarea

¿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:


o la sintaxis del lenguaje de programación
o cómo funciona una librería o una API, o cómo funciona un método o una
clase específica
o paradigmas de programación (por ejemplo: programación asíncrona)
o 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.

2. La tarea es demasiado grande y necesita dividirse en tareas más pequeñas.


3. 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 cómo 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


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:

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

Você também pode gostar