“En teoría, cualquiera puede aprender a programar”. Veo esto mucho. Lo escucho mucho. ¿Puede esto ser respaldado por algún tipo de estudio? ¿Es incluso cierto?

Bueno , no reconociste una parte muy importante de tu cita: “En teoría”

Echemos un vistazo a lo que se necesita para aprender a programar:

  1. Necesita recursos con los que programar, ya sea Computeers en países bien desarrollados o papel de desecho en áreas más pobres
  2. Es necesario comprender los algoritmos básicos, no tiene nada que ver con los sistemas de información. Debe identificar que el siguiente conjunto de instrucciones, como cualquier conjunto de instrucciones dado, es un algoritmo
    1. Recogiendo una pelota
    2. Identificando el color de la bola.
      1. Si la pelota es verde, patéala.
    3. Si no, tenlo contigo
  3. Debe poder escribir un algoritmo, de modo que Básicamente analice un conjunto de instrucciones, divídalo en tareas y escríbalas en Papel o en su computadora.

Teóricamente, eso es toda la programación, escribir un conjunto de instrucciones interpretable. A menos que tenga una discapacidad extraordinaria o que viva en un país donde la programación sea el menor de sus problemas (por ejemplo, Somalia, Corea del Norte, etc.), cualquier persona puede aprender cómo transmitir ese conjunto de instrucciones.

Sin embargo :

El “en teoría” de la declaración implica claramente su ‘falacia.

Programar como usted y yo sabemos que no implica necesariamente una maquinaria sofisticada y, de hecho, se puede aprender a través de la escritura a mano, lo que no significa que se pueda escribir en cualquier idioma.

Para aprender a programar, necesita aprender al menos uno de los múltiples lenguajes de programación, estos lenguajes requieren que comprenda conceptos mucho más abstractos que una bola de color, y su sintaxis inusual y oscura puede ser, a primera vista.

Pero el propósito de la programación es comunicarse con una máquina o una base de datos, por lo que deberá aprender y comprender cómo se comportan estos elementos por sí mismos y en relación con los demás, lo que también incluye cierto nivel de abstracción.

Para continuar aprendiendo programación, también es necesario que haya estudiado matemáticas en un nivel superior.

Así que no, en la Práctica no “Cualquiera” puede aprender programación, se necesita abstracción y dedicación para llegar allí.

Habiendo dicho eso

Soy la prueba viviente de que la mayoría de las personas pueden aprender programación, a través de la pasión y la piratería, me obligué a comprender cómo se comportan las bases de datos, a comprender la sintaxis de los lenguajes de programación como C ++ y Ruby, y todo esto sin tener experiencia en matemáticas de nivel superior. (aún así, eso es). No soy un genio, aunque me gustaría pensar que lo soy, y si pudiera hacerlo, la mayoría de las personas que estén dispuestas a interesarse en Informática y Programación podrían hacerlo.

Parecería ser cierto, porque parecería que casi cualquier habilidad puede aprenderse, y no hay razón para pensar que la programación sea diferente.

¿Alguien puede aprender a jugar al golf? ¿Alguien puede aprender francés? ¿Alguien puede aprender a reparar autos? Probablemente, y no hay razón para pensar que la programación sea especial o diferente.

Sin embargo, no todo el mundo puede ser un gran golfista, un francés fluido o un experto mecánico de automóviles. Al igual que con cualquier otra habilidad, está el pequeño problema de lo bueno que eres, de lo duro que estás dispuesto a trabajar.

Creo que casi cualquier persona que tenga al menos una inteligencia promedio puede convertirse en programador. Muy pocos van a ser muy buenos en eso, al igual que muy pocos van a competir en el US Open, o incluso en los niveles más altos de su club de golf.

No todos los programadores son grandes programadores, ni todos ellos necesitan ser grandes programadores. No necesito un gran mecánico de automóviles para reemplazar mis limpiaparabrisas, pero sí necesito un gran mecánico para hacer otras cosas. La programación es la misma, hay mucho trabajo en todos los niveles de habilidad.

Un poco de prueba: hay un libro famoso, con el nombre de Programas = Algoritmos + Estructuras de datos.

Eso significa que cualquier persona que sepa Algoritmos y estructuras de datos puede programar.

No solo programa, sino que puede programar muy bien.

En otras palabras, aquellos que no se preocupan por DS & A hoy, algún día los aprenderán a programar mejor.

Pero, tiene que haber un buen plan para aprender todo esto.

“Puedo ser quien quiero” es tan vago como “Cualquiera puede aprender a programar”, excepto en teoría.

Sin embargo, con el plan correcto, puedes estar en algún lugar cerca de lo que deseas convertirte.

Aquí hay un plan claro para programar mejor: recursos todo en uno para CS y PC por Manohar Reddy Poreddy en ProblemSolvingAndMore

La programación, como muchos otros oficios, es una habilidad adquirida, por lo que la frase es precisa.

La diferencia está en lo bueno que puedes ser de un programador.

Piense en ello como conducir un coche. En teoría, cualquiera puede aprender a conducir un coche. Eso no significa que seas un conductor profesional o que no choques el auto.

No hay necesidad de estudios sobre esto. Google un tutorial e intenta aprender el oficio. Probablemente encontrarás un programa de “hola mundo”. ¡Felicidades, aprendiste a programar!

¿Eso te hace un programador? 🙂

Salvo discapacidades mentales severas, sí, cualquiera puede aprender a programar. No hay nada excepcionalmente difícil en ejecutar un programa llamado ‘ghci’, escribir ‘putStrLn “hola mundo” y presionar Intro. En ese sentido, sí, cualquiera puede aprender a programar.

Pero, por supuesto, este es el mismo argumento que puedes hacer para que “cualquiera puede aprender a dibujar”, o “cualquiera puede aprender a tocar un instrumento” o “cualquiera puede cocinar”.

Pero solo porque cualquiera puede hacerlo no significa que todos puedan hacerlo. Necesitas invertir mucho tiempo en eso para obtener algo bueno, lo cual simplemente no es algo que harás si no te gusta hacerlo.

Pero si es algo que realmente quieres hacer, entonces probablemente puedas encontrar una manera.

Vale la pena señalar: muchas personas pobres pueden no tener acceso a una computadora. Estas personas probablemente no podrán aprender a programar con un lenguaje de programación de computadora. Todavía podrían aprender a programar en un sentido, pero no es una habilidad muy útil para tener algo sin ejecutar sus programas.

Creo que cualquiera con un cerebro completamente funcional puede aprender a codificar y hay muchos trabajos para programadores. encontrar uno no debería ser un problema en absoluto.

Sin embargo, la creatividad es una de esas cosas que realmente no se pueden enseñar, pero la práctica parece mejorarla. Si quieres ser un buen programador. Si desea ser un activo para su equipo, debe practicar la creatividad con cualquier lenguaje de programación que aprenda. La programación es mucho más creativa de lo que la gente piensa. La resolución de problemas requiere algo más que habilidades de pensamiento crítico. Debes ser imaginativo en relevancia para la programación. Cualquiera puede aprenderlo, pero no todos lo amarán. Pero muchas personas tienen carreras a largo plazo en ocupaciones que no disfrutan particularmente.

Es en el mismo sentido que “cualquiera puede aprender a nadar”. ¡Eso no significa que todos podamos convertirnos en estilos libres olímpicos!

Al igual que los deportes, la práctica te mejorará, pero el talento te llevará más lejos. Diferentes personas tienen diferentes aptitudes, tan simples como eso.

Cuando decimos “todos”, nos referimos a todos los que tienen la capacidad física y mental dentro de las normas estándar: un bebé de 2 semanas de edad es parte del grupo “todos”.

¿Cuáles serían tus criterios para el estudio? ¿Sacar de la calle a 100 personas al azar y hacer que aprendan durante algunos años, independientemente de si quieren o no, y hacer un seguimiento de los resultados? ¿Cómo incentiva a las personas a trabajar en algo que no quieren hacer? Este estudio podría volverse ridículo o inhumano muy rápidamente.

Mientras agregue a la definición, “quién quiere”, estaría de acuerdo con la teoría.

Desafortunadamente, tan pronto como agrega “quién quiere” a la definición, no necesita un estudio. Todos los programadores en el mundo son las personas que quieren aprender. Se necesita trabajo para aprender a programar y, si no desea hacer el trabajo, por lo general no se hará. Estoy seguro de que algunos aprenden a quién no le gusta el trabajo, pero lo hizo por alguna otra razón. Espero no tener que trabajar con ellos.

Hay personas a quienes les gusta la idea de programación pero no les gusta la realidad de hacer el trabajo asociado con el aprendizaje y el abandono. Eso está bien, pero no significa que no pudieran hacerlo si quisieran.

Con el esfuerzo suficiente, me imagino que la mayoría de las personas podrían desarrollar algún tipo de capacidad de codificación.

Dicho esto, parece ser mucho más fácil para algunas personas que para otras. Sospecho que algunas personas simplemente nunca van a ser buenos programadores, de manera realista. Esas personas probablemente deberían encontrar algo más que hacer.