¿Por qué las personas deberían aprender a codificar incluso si sus profesiones no están relacionadas con la informática?

¿Por qué deberías aprender a hacer ejercicio si tu profesión no está relacionada con el entrenamiento personal? ¿Por qué debería aprender a cocinar, si su profesión no está relacionada con la nutrición o la culinaria? De hecho, ¿por qué debería aprender a hacer algo fuera de su profesión?

No tiene que ser un experto en codificación, pero ciertamente ayuda a mantener su mente fresca. La codificación implica entrenar a tu cerebro para que vea las cosas de una manera extremadamente lógica al descomponerlas en sus elementos básicos. Esta forma de pensar puede incluso ayudarlo en su profesión: analizando un problema, descubriendo la causa raíz y encontrando la solución más eficiente.

Además, si desea hacer pequeños proyectos paralelos, no tiene que pagar a nadie para que los haga. Si siempre ha querido crear una página web o una aplicación pequeña, ahora tiene los conocimientos básicos para hacerlo sin tener que depender de otra persona.

O podría afectar tu profesión diaria. Los usuarios de entrada de datos podrían beneficiarse de saber cómo codificar. Cualquier persona que haga mucha entrada en hojas de cálculo, por ejemplo, podría escribir scripts para acelerar su trabajo. ¿Qué tal poseer un negocio? Podría escribir un panel de control que le brinde análisis de su negocio y lo grabe por usted. ¿Corres un refugio de animales? Podría escribir un código que pueda ayudar a administrar los horarios de todos sus voluntarios (¡o incluso crear una aplicación que sincronice sus horarios!). Mucha de la profesión “no codificante” se puede mejorar mediante la codificación.

La respuesta de Eric Harmon es correcta. No instaría a todos a trabajar en codificación, pero para muchos trabajos es potencialmente muy útil, y su ventaja es que para una inversión inicial en el aprendizaje y la escritura de códigos, puede automatizar algunas de las tareas que realiza regularmente. Y, esencialmente, nunca hay que volver a hacerlos a mano. (Mi padre, no un programador capacitado, hizo esto en su trabajo en la oficina de la escuela primaria, y cuando se retiró, el personal se maravilló de la cantidad de trabajo que tenían que hacer para lograr lo que él hizo rápidamente con unos pocos guiones).

Pero tengo otra razón por la que la gente debería codificar, aunque no se aplica a la mayoría de los adultos: la programación, especialmente la programación funcional, ofrece un mejor enfoque para la enseñanza del álgebra, y eventualmente debería complementar o incluso reemplazar partes de nuestro currículo actual de Álgebra I / II en escuela secundaria.

En este momento, les pedimos a los estudiantes que aprendan muchos detalles sobre un lenguaje, el álgebra, que la mayoría de los adultos usan con poca frecuencia y poca o nada. Los conceptos más esenciales son:

  • Expresiones : una forma de describir cantidades basadas en cómo se calculan.
  • Ecuaciones y desigualdades : formas de describir cómo se relacionan las cantidades entre sí.
  • Sustitución : el principio de que las cosas iguales son intercambiables.
  • funciones : una forma de representar reglas que muestran cómo calcular cantidades

Los cuatro de estos son elementos esenciales de la programación funcional, también. Entonces, ¿por qué los estudiantes tratan el álgebra solo como una forma abstracta de escritura? ¿Por qué no presentar los conceptos como una forma de construir cosas limpias , en su lugar? El lenguaje parece mucho más útil desde ese punto de vista.

Me salté otro tema importante que puede recordar de la clase de álgebra: graficar . La idea de describir figuras geométricas usando coordenadas es poderosa, y agregar programación a la clase de álgebra permite a los estudiantes crear animaciones y juegos ; usar las coordenadas para hacer que los personajes se muevan en la pantalla además de los dibujos estáticos que estamos acostumbrados a graficar.

¿No suena mejor que el antiguo Álgebra I?

La mayoría de las personas deben aprender a codificar para que puedan estar listas para programar utilizando lenguajes de programación más simples dirigidos a su dominio que pueden ayudarles a administrar grandes sistemas de software que utilizan mejor su comprensión del dominio.

La mayoría de las nuevas empresas de tecnología están tratando de encontrar formas de automatizar el trabajo que hacen las personas en diferentes dominios. Puede ser minorista, medicina, derecho, política, educación o incluso industria del entretenimiento. Si cada vez más de lo que hacemos todo se puede hacer de manera eficiente utilizando software, la fuerza laboral humana puede dedicar su tiempo y energía a resolver problemas mucho mayores.

Cada año aparece una pieza revolucionaria de un software que intenta resolver uno de estos problemas. Dice mucho sobre el equipo que está detrás del software. El mayor logro en general es que, además de desarrollar software de manera eficiente, también han comprendido el dominio al que están dirigidos. Han entendido quiénes son sus usuarios. Cómo van a utilizar el software. Qué problemas encontrarán y qué tipo de interfaz de usuario se adaptará mejor a ellos y sacará lo mejor de ellos.

Sin embargo, la utilidad del software disminuye gradualmente. La brecha entre lo que exige la industria, cómo trabajan las personas y lo que proporciona el software aumenta. Si los propietarios del producto se vuelven complacientes y no renuevan su producto, otra nueva empresa verá la brecha y se lanzará con una solución completamente diferente que hace que la existente parezca obsoleta.

Así que ahora la gente tiene que aprender a usar un nuevo software. Tienen que aprender su terminología y sus convenciones. Una vez que aprenden, pueden aprovechar toda la bondad que tiene para ofrecer, pero esta es una evolución lenta. Las cosas pueden ser más rápidas si se da algún control en las manos del usuario para personalizar ciertos aspectos del trabajo, flujos de trabajo, reglas y configuraciones del software.

Esta es la parte más complicada. Si la interfaz de usuario apesta, la personalización será una tarea cuesta arriba para el usuario final. Ellos configurarán de manera incorrecta las cosas la mayor parte del tiempo o terminarán alejándose de las personalizaciones.

¿Ves un patrón aquí en las soluciones hasta ahora? Estamos considerando que el usuario del software sea un completo idiota. Tenemos miedo de darles el control del funcionamiento de un software que está en un dominio que entienden mejor que nosotros, pero tenemos miedo porque no entienden la implementación mejor que nosotros.

Hay una brecha y hasta ahora son los programadores quienes intentan cerrar la brecha desde su extremo, pero el usuario final no está tomando medidas para tratar de ser mejor que un idiota.

¿Qué sucede si los usuarios de software que tienen un mejor conocimiento de su dominio tienen una manera de expresar su lógica de manera concisa?

¿Qué pasa si les proporcionamos una interfaz para que puedan escribir código. No es el código que los programadores escriben, sino un pequeño subconjunto de él. Un subconjunto que no se ocupa de redes de distribución, servidores y sistemas operativos. En su lugar, habla en el idioma del dominio y permite que un experto en dominios escriba la lógica que controla el sistema.

Este enfoque les permite mucho más que cualquier interfaz de usuario de administración de flujo de trabajo y personalización formada por menús desplegables, casillas de verificación, latas de arrastrar y soltar.

Si solo estuvieran dispuestos a aprender un lenguaje simple que exprese la lógica de su dominio, estarían en mejor forma para administrar la lógica del sistema en comparación con un programador que no entiende el dominio.

No es un concepto nuevo. Estos lenguajes se denominan lenguajes específicos de dominio, también conocidos como DSL. Han existido por algún tiempo pero todavía están siendo utilizados solo por programadores. Todavía no hemos visto sistemas de propósito general basados ​​en DSL en el mercado que estén siendo utilizados por abogados, médicos, periodistas, diseñadores o, digamos, fotógrafos para hacerles la vida más fácil.

Ejemplo: supongamos que tenemos un DSL para la administración de feeds de Quora a cada usuario.

gotTerms = [“Jon Snow”, “Dragons”, “Khaleesi”, “Game of Thrones”]

Quora.Feed.keep (
Contenido (tipo = Respuesta),
Contenido (tipo = BlogPost)
).retirar(
Tema (nombre = “India”),
Tema (name__in = gotTerms),
Tema (name__in = [“IIT”]),
) .order_by (
decreciente (upvotes),
) .limit (20)

NOTA : Esto es algo que inventé en 15 minutos, pero estoy seguro de que si se piensa lo suficiente, se puede diseñar un DSL mucho más simple para que los usuarios avanzados puedan aprender y escribir una lógica que gobierne el aspecto de su fuente y tal vez Quora pueda permitirlo. Nosotros, una interfaz de programación en la que nos permiten escribir un código que administra nuestros feeds de la forma que queremos. Esto también podría permitir escenarios donde las personas puedan compartir código con otros, lo que funciona para ellos y la gente puede ver finalmente qué tipo de lógica hace posible una mejor alimentación.

En una nota más ligera, algo como esto podría incluso conducir a preguntas como Quora.

  • ¿Cómo se ve el código para la gestión de feeds de Quora?
  • ¿Cuáles son algunos de los mejores códigos de gestión de feeds de Quora?
  • ¿Cuál es el código que utiliza Marc Bodnick para administrar su feed personal ?
  • ¿Qué cambio debo hacer en mi código para deshacerme de todas las respuestas relacionadas con Citas y relaciones?

Espero poder arrojar algo de luz sobre cómo aprender no todo, sino la mínima codificación que lo ayuda a expresar su lógica que hace su propia vida más fácil, no solo le brinda una mejor experiencia de usuario con el sistema de software que está utilizando, sino que también ayuda a los programadores a concentrarse en el imagen más grande

Hoy las computadoras son una parte integral de la vida de todos. Apuesto a que usas una computadora casi todos los días.

El código es básicamente instrucciones que le dicen a la computadora qué hacer. Una comprensión básica de cómo funcionan estas instrucciones lo ayudará a comprender por qué su computadora hace lo que hace y lo que puede y no puede hacer con una computadora. Básicamente, le ayuda a utilizar la herramienta que es la computadora, en todo su potencial.

A veces, un poco de habilidades de codificación también puede ayudarlo a evitar tareas repetitivas. Por ejemplo, una vez me pidieron cambiar el nombre de más de 500 archivos. Encontré un pequeño script en línea y lo modifiqué. Tomó alrededor de 30 min. Sin esto, probablemente hubiera tomado días.

La habilidad de codificación también puede ayudarlo a descubrir qué falla en su computadora, o al menos comunicar el error que experimenta de una manera agradable y precisa.

En el momento en que estoy escribiendo seis personas ya han respondido; la mayoría son sensatos, pero no proporcionan las razones principales para aprender a codificar. Sólo Eric Harmon lo clavó. Dado que mi profesión, administrar barcos, no requería conocimientos de codificación y podía contratar fácilmente los codificadores que necesitaba, no tenía por qué aprender a codificar, excepto por un punto importante. Pienso como un procesador y necesitaba saber cómo darme instrucciones, “código”, para trabajar de manera más eficiente. Una vez que aprendí a hacer eso, usando macros de hoja de cálculo, aprendí cuán ineficaces eran y transferí algunas tareas de oficina a otros idiomas, como BASIC, luego FORTRAN y algunas otras basadas en el acceso y la administración de bases de datos.

Para entonces, pude administrar una LAN con un personal reducido, escribí un simulador de carga eléctrica marina y desarrollé un paquete para extraer datos sin procesar de las pruebas de manejo de barcos y generar diagramas multidimensionales complejos de cómo respondería el barco a los cambios en el eje rpm, ángulo del timón o ambos. Nada de eso hubiera sucedido si no hubiera sabido escribir un código básico para ayudarme a ser más efectivo en mi trabajo.

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

Aprenda a programar si le parece que es su pasión, o si le parece genial y necesario en su profesión. Sin un disco real, no serás un buen programador.

¡Inténtalo!
Tal vez lo encuentres más interesante que tu profesión actual. 😉
Pero no lo aprendas solo por las perspectivas profesionales.

Porque los empleos con salarios dignos están desapareciendo a un ritmo alarmante. La programación parece ser uno de los pocos trabajos que podrían seguir viendo la demanda.