¿Debería la mayoría de los jóvenes aprender a codificar?

Absolutamente.

El programador más efectivo del mundo no es un programador habilidoso que aplica software a problemas informáticos, sino un programador de nivel medio a pobre que aplica software a problemas ajenos a la informática tradicional, donde el software nunca se ha aplicado. El simple hecho del asunto es que una cantidad modesta de programación, incluso si se expresa en un código mal estructurado y difícil de mantener, confiere una enorme cantidad de influencia en muchos campos.

Dos casos ilustrativos. Cuando era consultor asociado en Bain, los asociados pasaban horas trabajando en hojas de cálculo de Excel, que rellenaban tediosamente a mano de los archivos de datos proporcionados por el cliente. Estos archivos a menudo serían fácilmente analizables (por ejemplo, archivos CSV) pero sin ningún conocimiento de programación, los graduados de Ivy-league pasarían horas y horas cortando y pegando valores solo para realizar tareas dolorosamente mundanas (por ejemplo, importar datos de una gran colección de archivos, transponerlos) conjuntos de datos, eliminando datos mal formados, etc.).

Pensé que esto era una locura, así que pasé un poco de tiempo aprendiendo Visual Basic (sí, no sabía cómo programar entonces, así que me enseñé) y automaticé todo el flujo de trabajo. Cada vez que recibía un nuevo archivo de datos del cliente, lo ejecutaba a través de mi código horriblemente implementado y escupía toda la hoja de cálculo de Excel. La gente siempre se preguntaba cómo podía cambiar las cosas tan rápido.

Segundo: cuando era un estudiante graduado en física aplicada, la clase más útil que tomé fue la computación numérica. No porque me enseñó algo de física, sino porque me enseñó cómo trabajar mediante programación con grandes conjuntos de datos de manera repetible. Comencé a escribir código en serio durante la escuela de posgrado para ayudarme a automatizar todo tipo de tareas rutinarias y mundanas, realizar análisis en grandes conjuntos de datos y explorar hipótesis rápidamente. Esto fue una revelación para muchos de mis colegas, en su mayoría biólogos experimentales, que trabajaban en bancos.

Cuando pienso en esa época, los estudiantes que fueron más efectivos en el laboratorio fueron los que podían escribir un script rápido de perl o python para analizar archivos, manipular datos y convertir la salida de un programa en formatos que otros programas puedan entender. En su mayor parte, sus guiones serían “triviales” para cualquier estudiante de CS, pero les ayudó a realizar las partes más tediosas de sus trabajos y a centrarse en el pensamiento.

Cada vez más, las personas de todos los campos, especialmente fuera del software y la computación tradicionales, se enfrentarán a conjuntos de datos cada vez más grandes. Las matemáticas son el lenguaje, el código es el dialecto. Para ser fluido, hablar incluso un poco de código aprovechará su pensamiento y le permitirá ser órdenes de magnitud más efectivos en lo que sea que quiera hacer.

Por supuesto, todos deberían aprender a codificar, y es ridículo que aún no lo sepan, aunque si las escuelas comienzan a enseñarlo, lo estropearán. Aprendí a escribir BASIC en unos pocos meses a principios de los años ochenta y al ensamblaje 6502 en unos pocos meses a mediados de la década de 1980 en un clon de Apple II, a partir de manuales de instrucciones chatarra xeroxed, sin internet. Fue muy fácil en comparación con otras tareas intelectualmente exigentes, como aprender a leer o hablar.

Aprender a programar te presenta de inmediato todas las ideas profundas del siglo XX, ideas que le tomaron mucho esfuerzo a grandes mentes como Leibnitz, porque no tenía una computadora. Entiende de inmediato los conceptos de:

* Una máquina universal: una computadora puede simular la naturaleza simplemente actualizando las posiciones de las partículas. Empiezas a pensar en el mundo como una simulación de computadora gigantesca, como una especie de autómata celular.
* física: desea simular sistemas naturales en la computadora, por lo que aprende algo de física. Y no me refiero a la física lejana, como la mecánica cuántica o la teoría de cuerdas, aunque eso llega eventualmente, me refiero a las bolas que rebotan en las mesas, los planetas que orbitan la física del sol.
* Una máquina pensante: ¡ya que la computadora puede simularte!
* Prueba de Turing / positivismo lógico: esto es obvio una vez que intenta pensar en simular el pensamiento en serio. Te das cuenta de todas las pequeñas cosas que hace tu cerebro que son imposibles de formalizar. No necesita leer Turing, es obvio una vez que programa durante una semana o dos.
* Las nociones tradicionales de inteligencia y dificultad cognitiva son una mierda: reconocer una cara a partir de datos de píxeles, interpretar una frase de argot con imágenes complejas, identificar un jingle comercial en una clave y timbre diferentes, dividir el discurso en palabras, se revela que son enormes poderes misteriosos del cerebro, no las cosas tradicionalmente consideradas como intelectualmente exigentes.
* Lógica formal: el razonamiento mecánico es obviamente posible, por lo que la deducción matemática puede codificarse en reglas simples. Las álgebras booleanas de la lógica están conectadas a la computadora, por lo que aprende estas cosas por ósmosis.
* Matemáticas constructivas: definió qué partes de las matemáticas son reales (las que puedes ver en una computadora) y qué partes son meramente figuras del lenguaje útiles (la metafísica de conjuntos incontables).
* Bullshit: programar una computadora te muestra toda la mierda. Si no puede hacer que una computadora lo entienda, a menudo es una mierda.

Programar una computadora hoy es una simple cuestión de instalar Linux y escribir “python” en una terminal. Prefiero comenzar con el lenguaje “if / goto”. Tiene dos comandos, “if” y “goto”, y un bloque de memoria. Luego escribe código solo con estas dos construcciones y aritmética. Esto le muestra lo poco que necesita para la universalidad de Turing.

Si.

Respondí esencialmente esta misma pregunta hace unos meses ( https://www.quora.com/Harvard-College/Is-CS50-worth-taking-at-Harvard/answer/Steven-E-Johnston ), así que aquí está mi respuesta, adaptada y ampliada a partir de eso:

1) Nunca se sabe cuándo puede necesitar codificar / programar: por suerte, mi primer trabajo fuera de la universidad me obligó a aprender a codificar, así que al no aprender a codificar en la universidad (o antes), simplemente Deje de aprender lo que eventualmente necesitaba saber de todos modos. Si hubiera aprendido esta habilidad en la escuela, hubiera estado a la vanguardia y hubiera podido tener un mayor impacto en el trabajo antes. Claro, ¿cómo iba a saber que eventualmente necesitaría aprender estas cosas? Pero esto me lleva al siguiente punto y al argumento principal que haría a favor de aprender a codificar:

2) La codificación / programación son habilidades importantes para cualquiera que quiera hacer una diferencia en el mundo: Estas habilidades son esenciales para cualquiera que quiera hacer una diferencia en el mundo, ya sea en las esferas privada, pública, política o sin fines de lucro. . Tener estas habilidades te permite …

a) Cree plataformas para promover una idea, producto o causa: al poder codificar y programar le permite crear sitios web, aplicaciones y otras plataformas que, cuando están en línea, le brindan una plataforma para comunicarse con una audiencia internacional con respecto a una campaña, un compañía, una causa, etc. Por supuesto, algunas personas podrían decir que no es necesario poder construir personalmente estas herramientas cuando se puede contratar a otra persona para que las construya, pero saber cómo construirlas te permite …

b) Construya de forma rápida y económica: dado que puede llevar tiempo publicar una solicitud de propuesta, contratar programadores / diseñadores, dar instrucciones, esperar mientras se construye el producto y luego continuar con el desarrollo del producto hasta que finalice el sitio web, la aplicación, etc. , poder construir usted mismo le permite actuar con mayor rapidez, lo que podría ser clave para capturar el potencial de un momento crítico e incluso determinar el éxito o el fracaso general de su plataforma. Del mismo modo, construir uno mismo podría ser más barato que tener que pagarle a alguien más para que lo construya. Pero incluso si sus necesidades no dependen del tiempo y puede darse el lujo de contratar a otra persona, saber cómo codificar / programar aún tiene el beneficio de permitirle …

c) Comunique lo que quiere construir de manera más efectiva: si puedo hablar el mismo lenguaje técnico básico que la persona que he contratado para ayudarme a construir una plataforma digital, puedo describir con mayor precisión lo que me gustaría construir. El constructor, a su vez, puede darme lo que quiero más rápido, lo que ahorra tiempo, dinero y estrés. En la vida, no necesito saber cómo construir un automóvil, pero si nunca manejo, ¿cómo puedo describir dónde debo ir a alguien que me conduce o conducir yo mismo cuando no hay nadie más cerca? ¿conducir?

Finalmente, también agregaría …

3) La alfabetización de programación / codificación es esencial para ser una persona educada y alfabetizada en la sociedad actual: aprender estas habilidades te enseña a pensar, y estas habilidades, en sí mismas, solo crecerán en importancia en el futuro. No todos van a ser Gates o Zuckerberg, pero ese no es el punto. Es solo cuestión de tiempo hasta que miremos hacia atrás con incredulidad en un momento en que, como sociedad, no consideramos que la informática sea un componente tan importante de una educación equilibrada en artes liberales como el inglés, la historia, las matemáticas o la ciencia. En desacuerdo conmigo Eso está bien, pero no soy el primer Steve J. en decir esto: http://www.npr.org/2011/10/06/14

TLDR : No. Le diré la verdad sincera sobre esta hipérbole de “aprender a codificar” que a muchas personas no les gustará o aceptará, pero es cierto. Es esencialmente una exageración de marketing utilizada para reducir el salario de los desarrolladores / ingenieros / etc. para ahorrar dinero a las empresas. En pocas palabras, cuantos más “codificadores” haya, menos valdrán.

No compre en los videos y anuncios elegantes que lo venden con la idea de que aprender a trabajar con el código será tan esencial como aprender a leer y escribir, solo porque todo lo usa (tecnología). La mayoría de nuestras comodidades modernas también dependen de las matemáticas y la electricidad complejas, pero ciertamente no es esencial que todos aprendan la diferenciación o las ecuaciones de Maxwell; Eso es simplemente ridículo.

También escuchará el argumento de que la codificación le enseña lógica y pensamiento crítico; es verdad. Sin embargo, si el verdadero objetivo era enseñar lógica y pensamiento crítico, ¿por qué no simplemente enfatizar la enseñanza de lógica y pensamiento crítico? Las matemáticas discretas, o más específicamente la lógica matemática, existían mucho antes que cualquier lenguaje de computadora y pueden enseñarse independientemente de la codificación, y mejorarán su proceso de pensamiento y habilidades de pensamiento crítico. Entonces, ¿por qué son tan firmes acerca de enseñar a las personas cómo “codificar”? Porque la verdadera intención no es el espejismo benevolente que te están presentando.

Si prestas mucha atención a quién está detrás de este movimiento, las cosas comenzarán a ponerse en perspectiva: casi todos los iniciadores y organismos de financiación son empresas tecnológicas y / o CEO de tecnología que simplemente quieren reducir el costo de los desarrolladores y aumentar sus ganancias .

En pocas palabras : no necesita ser un ingeniero automotriz para conducir su automóvil al trabajo, o un chef culinario para hacer un sándwich. Pero todos deben conocer los conceptos básicos sobre cómo operar un automóvil y cómo usar una estufa para prepararse la cena.

¡Oh, sería maravilloso que todos lo hicieran! Y la razón no es porque el mundo necesita más programadores y programadores. El proceso de aprender a codificar da forma a tu proceso de pensamiento de una manera que muy pocas cosas hacen. Estos son algunos de los beneficios de aprender a codificar:

1) Pensamiento sistemático: aprender a codificar estructura sistemáticamente su pensamiento lógico. El proceso de pensamiento que aprende mientras codifica puede aplicarse a la mayoría de las situaciones de la vida diaria. Empiezas a atacar los problemas de la vida diaria de manera prioritaria, segregándolos en partes, dándote cuenta de las dependencias de una parte sobre otra, tal como lo haces en la codificación.

Creo que aprender a codificar es una de las formas más elegantes (aunque no la única) de aprender a estructurar tus pensamientos.

2) Importancia en la eficiencia: los codificadores ponen énfasis en resolver problemas de manera eficiente, tratando de optimizar el tiempo, los esfuerzos y los recursos. Esto, nuevamente, tiene una aplicación directa en nuestras situaciones de la vida diaria, que podrían no involucrar a las computadoras.

3) Pensamiento algorítmico: el proceso de codificación no es más que entrenar una computadora para resolver un problema. Se ve obligado a desarrollar soluciones generales a los problemas, en lugar de resolver un solo caso. No hace falta decir que este es un hábito extremadamente beneficioso en los escenarios de la vida diaria. No solo le ayuda a ahorrar su propio tiempo, sino que también permite que otros usen sus soluciones.

4) Lo obvio: dicho y hecho, vivimos en la era de Internet. El impacto que tiene una computadora en la vida diaria de un individuo hoy en día es inmenso. No hace falta decir que el conocimiento básico de cómo entrenar una computadora es extremadamente útil y puede ahorrarnos mucho tiempo.

No, no todos no deberían aprender un lenguaje de programación.

Creo que es una distinción importante separar el aprendizaje de un lenguaje de programación versus aprender a pensar como alguien que usa lenguajes de programación, a lo que podemos referirnos como aprender a pensar como un ingeniero. Aprender a codificar abarca ambos subconjuntos.

Todos deberían aprender a pensar como un ingeniero, ya que puede proporcionar un marco analítico útil para digerir situaciones complejas. Por otro lado, todos deberían aprender a pensar lo contrario de un ingeniero, y todos los puntos intermedios, ya que ese tipo de diversidad conduce a soluciones de problemas mejor equipadas.

No todos necesitan aprender un lenguaje de programación porque es un medio para un fin, y hay muchos otros medios para ese mismo fin. La programación es una interfaz utilizada para crear conjuntos de instrucciones, y funciona para muchas personas, incluido yo mismo. ¿Pero por qué solo tiene una opción? Otra opción es usar herramientas como Parabola, que le da a cualquier persona con datos el poder del código, sin necesidad de conocer un lenguaje de programación específico. Esto elimina la barrera de entrada al trabajo con big data y abre las puertas a muchas personas capaces que simplemente no saben programar. Otro ejemplo es Webflow, que es similar, pero para construir sitios web. Elimina la barrera entre un diseñador y un sitio web en funcionamiento.

Predigo que más herramientas como esta se volverán comunes a medida que avancemos, y todo lo que será necesario es una mentalidad de ingeniería. El resto se realizará mediante interfaces intuitivas que, muchas veces, son más rápidas y fáciles de usar que el código dentro de un IDE.

Editar 06/03/2013:

Por lo que parece aquí, la gente parece estar confundiendo “scripting” con “coding”. La creación de secuencias de comandos generalmente es unir algo con un lenguaje de programación relativamente simple. La codificación, por otro lado, requiere un conocimiento profundo de la sintaxis de un lenguaje, entendiendo qué lenguaje de programación usar en qué situación y similares. Para empeorar las cosas, los lenguajes de programación son cada vez más difíciles de usar utilizando conceptos que solo los programadores pueden apreciar.

Debido a esto, puedo ver que las secuencias de comandos son útiles, pero es mejor dejar la codificación a los expertos. Tienen el tiempo, los recursos y similares para crear estos programas y, lo que es más importante, saben cómo optimizarlos. Por mi parte, sé que se necesita mucha experiencia para crear código que realmente funcione.

Si observa, la mayoría del contingente pro-codificación son ingenieros. Recuerde, el resto del mundo no es ni será nunca. Claro que hay una persona debajo que dice que es un agricultor en Australia, pero tiendo a dudar de que realmente desarrolle aplicaciones sofisticadas, ni tiene tiempo para hacerlo.

————————————————————–

Eche un vistazo a este enlace antes de responder: Lista de ejemplos de programas de Hello World

El propósito de la codificación es proporcionar instrucciones para que una computadora haga lo que desea. Es una habilidad, pero no es parte integral de la vida cotidiana de la mayoría de las personas. El problema con la codificación es que toma mucho tiempo aprender y rápidamente se vuelve obsoleto.

Es infinitamente más importante para una persona aprender a comunicarse con otro ser humano, no con una máquina, y poder hacerlo de manera clara, lógica e inteligente. Por alguna razón, parece que olvidamos que hay un mundo fuera de la tecnología y las computadoras. Quora es invadida por codificadores e ingenieros que creen que sus opiniones significan algo (algunos lo hacen, otros no).

Si hablas con alguien que no está en alta tecnología, confía en mí, a ellos no les importa por qué deberías usar Java vs C ++ o por qué Python es un mejor lenguaje de programación web que PHP. Francamente, ¿por qué deberían hacerlo?

No, como he mencionado antes en respuestas anteriores, la codificación es una técnica increíblemente especializada que solo es útil para la aplicación en computadoras. Hay usos diarios para todos los cursos requeridos en K-12:

  1. Matemáticas: calculando propinas, calculando tus finanzas, entendiendo recetas, etc.
  2. Gobierno de los EE. UU .: comprender los eventos actuales, saber cómo votar, lo ayuda a determinar a quién votar, conociendo las funciones laborales de su representante.
  3. Idioma extranjero: tiene aplicaciones más limitadas, pero sigue siendo útil. Le permite viajar, comunicarse con inmigrantes, destruir el estereotipo de un arrogante estadounidense de 1 idioma.
  4. Economía doméstica: habilidades para la vida en la casa. Esto debería ser obvio.
  5. Educación sexual: cómo no arruinar tu vida con niños y ETS.

Por otro lado, tenemos codificación.

Codificación: hacer que las cosas personalizadas se ejecuten en su computadora.

El 99,99% de las veces, puede encontrar un mejor programa en la tienda de aplicaciones o en la web. La persona promedio no necesita saber escribir, no hay cosas útiles para automatizar. No son ingenieros.

La gente promedio no necesita aprender a codificar. Casi nunca podrán aplicar sus habilidades rudimentarias, ya que nunca tendrán la oportunidad de que la codificación sea la forma más fácil de resolver un problema. En todos los otros ejemplos, las habilidades rudimentarias ayudan. No ayuda en la codificación.

Como aclaración, mi posición es que la codificación no debe ser REQUERIDA, sino que debe ofrecerse como un curso opcional para los interesados. Esto ya es cierto en muchas escuelas (ver Computer Science AP).

Es importante comprender la diferencia entre “aprender a codificar” y “ser un programador”.

  • Sé hacer algunas matemáticas. No soy matemático.
  • Yo sé como conducir. No soy un conductor profesional.
  • Sé cómo funciona un motor. No soy un mecánico profesional.
  • Puedo cocinar. No soy un chef profesional.
  • Puedo desatascar un inodoro y conectar un lavabo. No soy fontanero

En este contexto, , creo que todos deberían aprender a codificar.

Claro, puedes escaparte sin las matemáticas, pero es más probable que te estafen. Puede escapar sin saber conducir, pero limita sus opciones de transporte. Puede escapar sin entender su automóvil, pero gastará una fortuna en mecánica (y será estafado). Puedes evitar aprender a cocinar, pero gastarás más en comida, comerás peor y probablemente engordarás. Si no puede hacer plomería básica, está a merced de las personas que pueden hacerlo.

Lo repetiré nuevamente, en el contexto de la informática: si no puede hacer una codificación básica, está a merced de las personas que pueden hacerlo.

Eso no tiene sentido en un mundo donde las computadoras son cajas que se encuentran debajo de los televisores en las habitaciones y tal vez realizan algunas tareas limitadas y juegan juegos. Pero ese no es el mundo en el que vivimos. Las computadoras están en todas partes, y las estás usando cientos de veces al día sin siquiera darte cuenta. Cada vez más, las personas que diseñan esas computadoras están dictando cómo vive su vida.

No todos deberían ser codificadores profesionales. Sus habilidades son importantes y nadie sugiere que ser ingeniero sea más glorioso que ser maestro, banquero de inversiones o agricultor. ¿Pero poder doblar las máquinas a nuestro alrededor un poco más? Eso te da una ventaja. Eso te da mayor libertad.

O, digámoslo de esta manera. Conoces la demografía de los ingenieros de software; están mejorando, pero son bastante estrechos. Y también sabe cómo el diseño de software está influyendo prácticamente en cada parte de nuestras vidas. La influencia del software solo será más amplia, profunda y más integrada . ¿Realmente quieres darle a ese estrecho grupo demográfico el monopolio de colocar el andamio para el siglo XXI?

Primero, debe definir qué significa “todos aprendiendo a codificar” para evaluar la pregunta.

Lo estoy definiendo de la siguiente manera:

  • Todos expuestos a lo que es la codificación
  • Todos lo intentan ellos mismos
  • Aprender y practicar habilidades valiosas de resolución de problemas que son aplicables en muchas áreas.
  • Llegar al punto en que entiendan lo que significa codificar y puedan decidir por sí mismos si están interesados ​​en seguir adelante
  • Enseñe a los estudiantes a pensar sobre los problemas de una manera diferente.

Lo que no lo estoy definiendo es esto:

  • Obligar a los estudiantes a convertirse en programadores profesionales.
  • Enseñe a los estudiantes conceptos avanzados desde el principio
  • Anime a todos a convertirse en un desarrollador de software profesional
  • Requerir que alguien tome una clase de codificación en lugar de otra cosa que preferiría tomar o necesitar tomar

Al definirlo como tal, es absurdo no enseñar a todos a codificar. Es una de las habilidades más básicas y empoderadoras que uno puede aprender, y negar esa habilidad a cualquiera es simplemente injusto.

Cualquiera que esté preocupado por diluir el lugar de trabajo o dejar que los plebeyos escriban “código malo” es simplemente ser elitista. No hay duda de que no todos serán “buenos” en la codificación, y muchas personas escribirán un código “malo”, pero tienen derecho a aprenderlo.

Si no permitiéramos que ciertas personas aprendan a leer y escribir porque temíamos que escribieran mala literatura que nosotros (la élite) tendríamos que arreglar, estaríamos volviendo a la edad media. Es lo mismo con la codificación. Al menos dale una oportunidad a todos.

Aprender a codificar no se trata de escribir código. Se trata de resolver problemas y crear cosas. Se trata de expresarte. Es un nuevo medio de comunicación que se vuelve más importante a medida que las computadoras se vuelven más ubicuas.

Lo último que revisé es que es bueno darles a todos la misma oportunidad. Si bien no todos necesitarán saber cómo codificar su trabajo, al menos deberían exponerse a él en la escuela.

Es estrecho pensar que el hecho de que una clase de programación en una escuela esté allí con el único propósito de obligar a todos a ser desarrolladores de software.

Si se pregunta por qué se debe enseñar la codificación en la escuela, es mejor que se pregunte por qué se enseña algo en la escuela porque cada discusión que usted hace acerca de no necesitar saber cómo codificar para la vida se puede hacer sobre cualquier otra materia.

Pero la educación no se trata solo del mínimo de lo que necesita saber.

¿Todos deberían saber cómo hacer un automóvil? No.
¿Todos deberían saber cómo fabricar un termostato? No.
¿Todos deberían saber cómo hacer un trombón? No.
¿Todos deberían saber cómo crear una aplicación? Nopes

La gente no tiene que saber qué es un V4 para conducir un automóvil. Las personas no tienen que entender las leyes de la termodinámica para usar termostatos. La gente no necesita saber cómo se hace tocar un trombón en la orquesta. Y las personas definitivamente no necesitan saber cómo trabajar con Xcode para disfrutar de las aplicaciones en sus iPhones.

Pero si las personas acaban de enterarse del V4, pueden apreciar mejor el funcionamiento de un automóvil. La termodinámica lo ayuda a comprender no solo los termostatos, sino también la hermosa forma en que funciona la naturaleza. Aprender a hacer un trombón te enseña cuán intrincados son los detalles, cómo las matemáticas juegan un papel tan vital en la producción del tono perfecto.

Y aprender a codificar te enseña el hermoso mundo de la lógica, de administrar cosas, de imaginar cosas y hacerlas cobrar vida a través de unas pocas líneas de comandos inteligentes.

No es que todos DEBEN aprender a codificar. Es solo que sería increíble si incluso trataras de aprender un poco. La vida se trata de aprender cosas. Las prioridades importan. Algunos de nosotros pensamos que aprender a codificar será muy útil en la vida.

Absolutamente.

Aprender a codificar a una edad temprana ayudará de muchas maneras útiles:

  • Agudiza enormemente las habilidades de resolución de problemas y las habilidades analíticas .
  • No solo llega a soluciones o enfoques de alto nivel, sino que la codificación requiere el proceso de tratar de ” articular con precisión” los pasos de la solución y ” hacer que funcione “. Esto requiere mucha atención al detalle, paciencia, precisión y meticulosidad, todo lo cual es una gran fortaleza para construir .
  • Ayuda a estar por delante de la curva . La codificación es casi una mercancía hoy en día (casi todos los campos se benefician de ella). Abundan las oportunidades, pero también hay muchos programadores. Casi todos los ingenieros aprenden a programar en diferentes grados. Ser un ‘gran programador’ ayuda a hacer el corte entre los regulares y los mejores, y comenzar temprano definitivamente ayuda a llegar más rápido.
  • Ayuda a apreciar la complejidad y la tecnología, y genera confianza.

Si bien es posible que uno no pueda diseñar software complejo muy rápidamente, definitivamente debería poder probar muchos simples a una edad temprana. Y una vez que comienza, no hay fin a qué tan lejos y qué tan rápido se puede progresar.

Y, cualquier día, es claramente una inversión de tiempo más útil que gastarlo en videojuegos alucinantes.

ACTUALIZACIÓN: Como otros llaman aquí abajo, también es obvio que, sin embargo, no se debe ‘forzar’ esto. Además, una inversión en artes, deportes, etc. podría ser igualmente importante. Sin embargo, si el niño se inclina a aprender, seguro que lo hará.

No. El horror …

Si bien el mundo necesita más programadores debido al auge de los desarrolladores, necesitamos personas que puedan escribir código sensible y mantenible. La peor pesadilla de los programadores no es desarrollar un módulo complejo desde cero, eso es relativamente fácil y a la mayoría de los programadores les encantaría hacerlo. Está abriendo una antigua base de código que debe mantenerse. La mayoría de las veces esa no es una experiencia agradable. Todo este “todo el mundo debería codificar” o “aprender a programar en 24 horas” es aterrador y peligroso, ya que es probable que el 80% del tiempo trabaje en código antiguo. Odiaría ser la persona que tiene que abrir el código escrito por alguien que viene de la escuela de codificación las 24 horas.

La deuda técnica es un problema grave, amigos. Y no hay puntos para adivinar quién contribuye más a ello. Eso es correcto. La pandilla “todos deberían codificar”. No me malinterpreten: me encantaría que la gente quisiera aprender cómo funciona HTTP o cuáles son las entrañas de un sistema operativo y me complacería explicarles esas cosas. Pero deje la parte de codificación real fuera de ella. Eso es algo que requiere mucho tiempo y esfuerzo para ser bueno, y debes ganarlo con largas horas y letras borradas en tu teclado.


Para citar a Jeff Atwood sobre este tema:

Se supone que la codificación es el objetivo. Los desarrolladores de software tienden a ser adictos al software que piensan que su trabajo es escribir código. Pero no lo es. Su trabajo es resolver problemas. No celebre la creación de código, celebre la creación de soluciones. Tenemos demasiados codificadores adictos a hacer solo una línea más de código.

Para risas y pensamientos serios:
¿Por qué los programadores no pueden programar?
El programador no programador
Por favor, no aprenda a codificar
Los programadores necesitan aprender estadísticas o los mataré a todos

Si.

Terminando una licenciatura en Ingeniería de Software y 2 años de programación profesional, he tenido múltiples realizaciones por qué la habilidad de codificación / programación es un regalo para su cerebro y, por lo tanto, para la vida.

  • He aprendido a “odiar” la complejidad y me encanta dividir los conceptos en partes simples conectadas por reglas simples. Puede que no sea aparente, al ver a los geeks jugar con máquinas complejas que intentan comprenderlos, pero en el camino para comprender cómo y por qué las personas hicieron que las computadoras, el software y el Internet sean como son, aprendes reglas que rigen los pensamientos y las ideas. Entonces aprecia que los paradigmas y las herramientas de pensamiento cuidadosamente diseñados, incluidos conceptos como ‘funciones’, ‘rutinas’, ‘protocolos’, ‘bucles de retroalimentación’, ‘estructuras de datos’ le permitan comprender los sistemas de causa y efecto que de lo contrario será imposible de comprender. Considere: ninguna mente humana puede gobernar a 6 mil millones de personas, no 1000 mentes humanas, pero los protocolos de computadora diseñados con potentes técnicas de pensamiento son capaces de gobernar y regular miles de millones de dispositivos de red que se envían billones de mensajes entre sí todos los días. La capacidad de desglosar conceptos usando las herramientas que aprendí de la programación ha aumentado mi capacidad de comprender la economía, la biología, los negocios y los temas hasta la música.
  • Consultando Las computadoras recuerdan eventos pasados. Siempre. El uso de Google puede brindarle mucha información, pero para ciertos bancos de datos especializados en línea, conceptos como ‘consultas’, ‘filtrado’, ‘uniones’, ‘dimensiones’ aumentarán su capacidad de obtener secretos reveladores de vastos conjuntos de datos. Por ejemplo, puede estar involucrado en un negocio de venta de ropa o widgets. Si sabe qué preguntas hacer sobre las tendencias de ventas pasadas, consulte a las personas que más tuitearon sobre su producto o cuáles son las métricas de inventario en su tienda, puede tomar mejores decisiones que conduzcan a mejores productos. Para que el conocimiento pasado funcione para usted, necesita saber cómo solicitarlo usted mismo a las computadoras o pedirle a los programadores que lo hagan por usted. Pero para hacer esto último, necesita a) saber qué es posible yb) saber cómo comunicarse con los programadores, lo cual es más fácil cuando conoce algo de programación.

La respuesta fácil y rápida es SÍ … si lo desean. Sé que probablemente suena un poco obvio, pero realmente no creo que todos necesiten saber cómo codificar. La tecnología es una gran parte de los negocios y nuestra sociedad ahora, pero eso no significa que todos tengan que aprender a programar. Simplemente no es para todos.

Sin embargo, cualquier persona joven interesada en aprender programación debería aprender absolutamente cómo hacerlo. Hay demasiados recursos disponibles para NO aprender cómo. Con el advenimiento de Internet, puedes aprender casi todo lo que quieras aprender en línea por muy barato o gratis, así que lo único que los detiene es … bueno … ¡ellos!

La programación es absolutamente un camino hacia una buena carrera lucrativa. Los salarios de los ingenieros de software tienden a aproximadamente $ 116k / año en YouWorth. La programación se está convirtiendo en una parte esencial de casi todo tipo de negocios. Las oportunidades de trabajo de programación aparecen diariamente en todos los diferentes tipos de mercados, sin mencionar las oportunidades de negocios de inicio.

Salario de Ingeniería de Software en Estados Unidos

Sin embargo, aprender a codificar es difícil. Muchas personas que quieren aprenderlo fracasan. Su pregunta casi parece estar buscando alguna validación, como espera que EVEYRONE aprenda a codificar en el futuro. No estoy muy seguro. Si bien creo que será muy frecuente, habrá muchos otros tipos de trabajos que no requieren conocimientos de programación y, como dije, no todos están preparados para ello. Al igual que todos no están hechos para ser vendedores. Si los jóvenes quieren aprender a programar, deben hacerlo con confianza. Si no, entonces deberían aprovechar sus puntos fuertes y hacer lo que los haga felices.

La información salarial anterior es de YouWorth. YouWorth es una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales del programador. No solo soy un campeón del producto, sino que lo uso yo mismo. La aplicación permite a cualquier persona importar habilidades de LinkedIn y rastrear su valor de mercado laboral a lo largo del tiempo. También me notifican si hay un cambio en las habilidades que se están viendo.

Creo que esta es una pregunta casi incorrecta. Las personas se involucrarán en lo que los estimula … en lo que les resuena, y para algunas personas, lo que es más importante que lo que se les indica que aprendan es tener la oportunidad de descubrir estas cosas.

No creo que el problema real sea que el código no se enseña en las escuelas (advertencia: aquí en el Reino Unido, la calificación de TIC a nivel de escuela secundaria generalmente incluye algunos ejercicios básicos en los idiomas del lado del cliente, por ejemplo, crear una página de inicio simple). Creo que el problema es que la oportunidad para que los jóvenes se enteren de la codificación y desarrollen sus propios intereses es inherentemente limitada si no se apoya a nivel escolar.

Comience a mostrar ese video en las escuelas durante una aburrida lección de TIC y tendrá un buen comienzo. Haga que la gente venga a hablar con los niños de la escuela sobre la belleza de la programación y se relacione con sus vidas de primera mano y usted está en una buena pista. No estoy seguro de que un tipo de determinismo del mercado (sugiriendo que la gente tome la codificación debido al diseño del mercado laboral) sea algo tan bueno.

Toda persona, joven y vieja, debe conocer los fundamentos básicos de la programación. Debería enseñarse en la escuela primaria (probablemente alrededor de los grados 2-3 para comenzar).

No significa que todos necesiten ser programadores, al igual que a todos se les enseña inglés (o el idioma nacional de su país), pero no se espera que todos sean escritores profesionales.

La programación, una vez que comprende lo que realmente es, se vuelve más útil de lo que los no programadores pueden imaginar. Puede personalizar sus pantallas de gmail (o Quora), puede resolver problemas matemáticos complicados cotidianos (como hacer proyecciones simples o qué pasa con sus inversiones o un escenario hipotecario) en minutos, o escribir pequeñas funciones de ayuda para acelerar y automatizar su día en el trabajo (es decir, automatizar alguna entrada de datos en Excel).

Al igual que saber leer y escribir te ayuda a hacer listas de compras, leer un periódico o usar el 99% de Internet (¡como Quora!), Saber un poco de programación abre un mundo de hermosa eficiencia y una manera más rápida y simple y una forma más eficiente de superar problemas sencillos todos los días.

Sospecho / predigo que en solo unas pocas décadas, la importancia de la alfabetización en programación continuará creciendo hasta el punto en que las personas que no conocen declaraciones lógicas simples (es decir, “si esto hace eso”) serán consideradas analfabetas.

Una vez que superas el obstáculo psicológico de la intimidación y simplemente aceptas que hay formas simples de comenzar, CUALQUIERA puede aprender. Tu hijo, tus padres, incluso tus abuelos. Solo tienen que dejar a un lado la pompa y la mística y entender que es como aprender a leer y escribir (algo que damos por sentado hoy, pero se consideró semimágico hace 5000 años).

Aquí hay un buen artículo que cubre el tema:

¿Está codificando la nueva alfabetización?

La gente usa computadoras y programas de computadora todos los días, y es por eso que todos deberían saber algunas cosas muy básicas sobre informática y programación, de la misma manera que usted conoce los conceptos básicos de biología, historia o física.

El desafío es definir cuál es la cantidad básica de conocimiento que todos deberían tener. ¿Debería ser solo conocimiento teórico? o la capacidad de construir una aplicación “hello world”? o algo más complejo como una aplicación web de una página?

Una forma inteligente de enseñar programación sería integrarlo con cursos de matemáticas. De esa forma, las matemáticas serían mucho más interesantes para los estudiantes.

Tomemos una perspectiva diferente. ¿Cómo crees que sería el mundo y la economía en 5 a 10 años? ¿Y en qué posición estaría si supiera o no conozca la codificación en ese momento? A partir de aquí, tendrá un buen indicador de si aprender o no la codificación es algo que vale la pena considerar.

Personalmente, creo que los jóvenes deberían considerarlo debido al aumento de la demanda de programadores a medida que avanza la tecnología. Aquí está mi justificación:

Comenzando con personas de 35 años de edad o más: personalmente creo que se trata de personas que están en condiciones de elegir si desean aprender a programar o no. Estas son personas que tienen muchas probabilidades de estar a nivel gerencial en su empresa o que tienen mucha experiencia. Creo que es menos probable que los gerentes sean despedidos de las compañías, a menos, por supuesto, que la industria en sí misma no esté funcionando bien, como la industria de O&G. Si estas personas saben cómo ahorrar bien, también deberían tener balas financieras adecuadas para sobrevivir.

PD. Mi punto de vista puede estar limitado al sudeste asiático.

Los jóvenes (de 35 años o menos), por otro lado … cuando la industria de O&G comenzó a caer, los de 22-30 años fueron los primeros en irse. Cuanto más inexperto sea, más probabilidades tendrá de sufrir las caídas económicas. Si la automatización entra en juego, ¿adivina quién será el primero en ir? Esta es una “zona” muy complicada, lo llamaré el cinturón del mar en calma. Este es un lugar donde muchos veleros se atascan porque no hay viento para ayudarlos a avanzar al siguiente lugar. Si una mierda de vela se atasca, ese es el final.

Aquí es donde debe proceder a hacerse preguntas como: ¿me necesitarán en la economía en los próximos 5 años? Si su respuesta es no, es hora de buscar una solución. Puede ser cualquier cosa, desde marketing digital hasta codificación: solo debe asegurarse de estar bien equipado con herramientas para ayudarlo a sobrevivir y prosperar.

En cuanto a los nativos digitales: cualquier persona de 21 años o menos. Muchos gobiernos están presentando iniciativas para equipar a los estudiantes con conocimientos de codificación. Si no se mantiene al día con las tendencias tecnológicas, seguramente se quedará atrás. Si bien está claro que no todos los trabajos se verán afectados por ninguna forma de codificación, todavía es una pregunta que vale la pena reflexionar: ¿dónde debe apostar por soluciones a largo plazo?

“¿Todos deberían aprender a tejer o es solo una mentalidad estrecha?”

“Realmente me gusta tejer. He sido tejedora desde mi adolescencia y realmente disfruto tejer. También soy bastante buena en eso. La mayoría de mis amigos también son tejedores y están de acuerdo conmigo en que tejer es realmente útil.

Intenté convencer a mis otros amigos de que deberían aprender a tejer, pero no parecen interesados. No puedo entender esto porque encuentro que tejer es muy útil e interesante. Les señalo todas las cosas geniales que podrían hacer si aprendieran a tejer, como calcetines, sombreros y suéteres. Pero dicen que están contentos con comprar estas cosas del estante. Incluso cuando les muestro mis sombreros de punto novedosos que he hecho con mi propio diseño y la calidad de mis calcetines tejidos a mano, todavía no están muy impresionados. Esto es extraño porque tejer es genial y útil y casi todos mis amigos tejen y conseguí un trabajo como tejedora a tiempo completo en una prestigiosa empresa de tejer.

Entonces sí, todos deberían aprender a tejer. El fin.”

(PD: la respuesta real es no, no todos deberían aprender a codificar y sí, pensar que deberían tener una mente estrecha. También es posible que tengas que salir del ghetto nerd con más frecuencia. Hay un mundo grande y variado).

Editar: Y ahora aparece la obsesión de Quora por fusionar preguntas similares pero en realidad bastante diferentes y ahora mi respuesta no tiene sentido.