Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

Aprende a programar en 10 años

Alura
Paulo Silveira
Paulo Silveira
03/08/2021

Compartir

Mira este artículo:
  1. ¿Por qué todo el mundo tiene prisa?
  2. Entonces ¡aprende a programar en 10 años!
  3. Entonces quieres trabajar con programación
  4. Pero entonces, ¡¿me voy a demorar todo esto para empezar a programar?!

Peter Norvig, informático y actual director de investigación de Google, tiene una serie de artículos asombrosos. Uno de ellos, titulado "Aprenda a programar en 10 años"(Teach yourself programming in 10 years) es uno de mis favoritos. Fue impactante en mi carrera, especialmente cuando tenía 1 año de experiencia con Java y pensé que era un programador sénior... ¯ *(ツ)/ ¯

Aquí tengo una traducción muy libre de los puntos principales del artículo. No estoy de acuerdo con todo, pero la provocación es excelente.

¿Por qué todo el mundo tiene prisa?

Si vas a cualquier librería, verás un libro "Cómo aprender Java en 24 horas", además de las variaciones que enseñan C,SQL, Ruby, Algoritmos, JavaScript y más. Si realizas una búsqueda avanzada en Amazon, encontrarás más de 500 libros de este tipo. De los 10 primeros, 9 son de programación.

La conclusión es una de dos:o todo el mundo tiene demasiada prisa o la programación es de alguna manera más fácil de aprender que cualquier otra cosa. Felleisen da una muestra de ello en su libro "Cómo diseñar programas" cuando dice "La mala programación es fácil, los idiotas pueden aprender a hacerla en 21 días.". (La opinión de Paulo aquí: la frase es exageradamente fuerte, pero es peligroso salir programando de todos modos).

Intentemos analizar el título de estos libros.

En 24 horas no tendrás tiempo para escribir varios programas significativos, ni para aprender de sus aciertos y errores con ellos.No tendrás tiempo para trabajar con alguien más experimentado y comprender cómo es vivir en un entorno C ++ o Java.

En otras palabras, obviamente no tienes tiempo para aprender mucho, por lo que el libro solo se puede estar refiriendo al entendimiento superficial, no a un entendimiento profundo.

En 24 horas o incluso 21 días, puedes aprender un poco de la sintaxis de un lenguaje de programación, pero realmente no aprendes lo más importante: cómo usar el lenguaje y principalmente, cómo de hecho solucionar problemas con él. Puedes terminar usando lo que aprendiste superficialmente con la lógica de otro lenguaje, sin saber si ese nuevo lenguaje es bueno o malo.

Entonces ¡aprende a programar en 10 años!

Muchos investigadores han demostrado que se necesitan alrededor de 10 años para desarrollar la experiencia en diferentes áreas, como el ajedrez, la música, la pintura, la natación, el tenis y otras. La clave es la práctica deliberada (intencional): no solo haciendo y rehaciendo, sino desafiandote con una tarea que es un poco más difícil de lo que te permite tu habilidad actual, salir de tu zona de confort para avanzar, analizando tu desempeño y corrigiendo errores. Y sí, repetirlo varias (¡y varias!) veces. No hay atajos: incluso Mozart, que era un prodigio a los 4 años, tardó otros 13 años en producir música a nivel profesional.

A pesar de hablar de horas y no de años, Malcolm Gladwell popularizó esta idea, que quizás hayas escuchado en algún momento, que se necesitan 10 mil horas de práctica para hacer algo con excelencia. Henri Cartier-Bresson tiene otra métrica: "Tus primeras 10 mil fotos son las peores". ¡La verdadera experiencia puede llevar toda una vida!

Por supuesto, no existe una cantidad mágica de horas o años que sea la respuesta final a lo que quieres aprender: no parece tener sentido asumir eso para dominar alguna habilidad (programación, ajedrez, música, por ejemplo) necesita exactamente la misma cantidad de tiempo para cada uno de ellos, y no que todas las personas necesitan la misma cantidad de tiempo.

Como dice el profesor Anders Ericsson, "en la mayoría de las áreas es asombroso cuánto tiempo necesitan incluso las personas más talentosas para alcanzar los niveles más altos de éxito. 10 mil horas te da una buena idea de que estamos hablando de años de práctica de 10 a 20 horas semanales para que estas personas, consideradas talentosas por naturaleza, lleguen a la cima.".

Entonces quieres trabajar con programación

La receta de Peter Norvig para el éxito en el campo:

  • Interésate por la programación y hacer con que eso sea entretenido. Asegúrate disfrutar el proceso de aprendizaje solo para poder seguir una trayectoria de 10 años / 10 mil horas.

  • Programa. La mejor forma de aprender es haciéndolo. Para ponerlo de forma técnica: "el nivel máximo de rendimiento no se alcanza automáticamente simplemente por una experiencia prolongada, sino que el nivel puede aumentar como resultado de esfuerzos intencionales para mejorar.(de Cognición en la práctica: mente, matemáticas y cultura en la vida cotidiana)

  • Conversa con desarrolladores, lee código. Es más importante que los libros y los cursos. Si quieres, dedica 4 años de tu vida a la universidad (o más a una maestría). Esto te dará acceso a algunos trabajos que necesitan estas credenciales y entenderás con profundidad del campo. Pero si no te gusta la escuela, puedes (con algo de dedicación) tener una experiencia semejante por tu cuenta o en el trabajo. En cualquier caso, aprender solo de los libros no es suficiente. "La educación en ciencia de la computación no convierte a nadie en un profesional de la programación, del mismo modo que el estudio de los pinceles y la pigmentación no convierte a nadie en un experto en pintura."dice Eric Raymond.

  • Trabaja en proyectos después de otros programadores. Trabaja en proyectos que ya han comenzado. Entiende un programa escrito por otra persona. Ve lo que se necesita para entender y corregir errores cuando las personas que crearon el sistema ya no trabajan en él. Piensa en cómo diseñar tus programas para que sean fáciles de mantener para otras personas.

  • Aprende al menos 6 lenguajes. Incluye uno que se centre en la abstracción basada en clases (como Java y C#), uno que se enfoque en la abstracción funcional (Lisp, ML o Haskell), uno que admita la abstracción sintáctica (como Lisp), uno declarativo (como Prologo o template C++) y uno que enfatice el paralelismo (Clojure y Go).

  • Recuerda que hay una computadora detrás de lo que hacemos. Sepa cuánto tiempo necesita una computadora para ejecutar una instrucción, buscar una palabra en la memoria (con y sin caché), leer datos del disco y acceder un nuevo lugar del disco.

  • Involúcrate en un proceso de estandarización de lenguaje. Puede ser algo complicado como comite de C++, o decidir si el estilo de código de tu empresa utilizará 2 o 4 espacios de sangría. De cualquier manera, aprenderás qué les gusta a otras personas en un lenguaje, cómo se sienten y cómo tú te sientes.(...)

Así que ve a comprar este libro de Java / Ruby / Javascript / PHP. Probablemente lo aproveches. Pero no cambiará tu vida ni te dará la posibilidad de programar en 24 horas o 21 días. Pero, ¿qué opinas de trabajar duro para mejorar en los próximos 24 meses? Bueno, ahora estás llegando a alguna parte ...

Más referencias. Ese fue el final del artículo de Norvig y algunos de los puntos principales que nos trae sobre por qué debemos tener paciencia (e insistencia) en aprender. Puedes consultar otros consejos y también el artículo completo aquí.

Pero entonces, ¡¿me voy a demorar todo esto para empezar a programar?!

Si estás dando tus primeros pasos, no te asustes. Por supuesto, no tardarás 10 años en empezar a programar, pero lo que quiero dejar aquí para reflexión es que el estudio de la programación es algo continuo y que, de hecho, nunca terminamos de aprender. Siempre aparecerán nuevas tecnologías, frameworks e incluso nuevos lenguajes y es necesario seguir de cerca toda esta evolución. Pero sobre todo, se necesita práctica. Así que no te preocupes, es posible empezar a trabajar en el área de programación cuando aún estás en el inicio de tus estudios, pero debes saber que esto es solo el comienzo de una carrera con mucho estudio y dedicación.

Si te interesas por temas de tecnología te invitamos a conocer los cursos de Alura Latam.

Paulo Silveira
Paulo Silveira

Paulo Silveira é CEO e cofundador da Alura. Bacharel e mestre em Ciência da Computação pela USP, teve sua carreira de formação em PHP, Java e nas maratonas de programação. Criou o Guj.com.br, o podcast do Hipsters.tech e o Like a Boss.

Artículo Anterior
Entidades Managed, Transient y Detached en Hibernate y JPA
Siguiente Artículo
Regex en Java: Validando datos con expresiones regulares

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast