viernes, 5 de mayo de 2023

Desarrolladores Boomer: 10 lecciones que aprendí de ellos, Jan Kammerath 23 de abril, MEDIUM

Esta historia de Jan la siento como mia, ahora tengo más de 50 años y soy Generación X; con todo lo que dice me siento identificado, y he estado en este mismo desarrollo y más en Ecuador...........

Los boomers construyen la tecnología que todos amamos hoy

Ahora tengo casi 30 años y comencé a aprender a codificar alrededor de los 12 años, en 1996. Mi carrera profesional como ingeniero de software despegó a principios de la década de 2000 cuando comencé a trabajar para una empresa de software local. Solo tenía 17 años cuando comencé a programar profesionalmente y en un entorno comercial, era el más joven de todos. Fui un niño. Un niño con una gran pasión por las computadoras, las redes y la programación.

Mis colegas boomers me enseñaron habilidades duras y blandas esenciales en aquellos tiempos. Los considero mis mentores hasta la fecha. Con muchos de ellos soy buenos amigos además de la diferencia de edad. Con algunos de ellos he perdido el contacto desde hace años. Todos ellos me han enseñado valiosas lecciones que quiero compartir con ustedes. Especialmente con aquellos de vosotros que no habéis tenido la oportunidad de trabajar con ellos. Cuando yo tenía 17 años, ellos tenían entre 30 y 40 años. Más o menos la edad que tengo ahora. Muchos de los desarrolladores boomer ya se han jubilado o están en la fase de jubilarse ahora y temo un poco que parte de su legado se pierda en el tiempo.

La gente cambia, los problemas permanecen. — Colega anónimo

#1 Todo se ha hecho antes

Los nuevos inventos, el nuevo software, el nuevo hardware o los nuevos lenguajes de programación no son tan nuevos como parecen o a menudo afirman ser. Muchos paradigmas, enfoques o soluciones se han intentado antes. Muchas de esas soluciones siguen reapareciendo. ¿Por qué? Porque cuando fueron probados y probados anteriormente en la historia, fallaron, porque estaban adelantados a su tiempo o eran demasiado inmaduros. Fíjate en el reconocimiento de voz: IBM lo lanzó en los años 80 . Era inmaduro, requería muchísimos recursos y era increíblemente caro. Cuando se lanzaron Siri de Apple y el asistente de Google, ambos fueron otro intento de una interfaz de usuario basada en el habla. Y lo consiguieron. Simplemente porque su tiempo había llegado.

FrontPage de Vermeer (adquirida por Microsoft): uno de los primeros creadores de sitios web en 1995

Casi todos los tipos de software que podría estar escribiendo hoy probablemente se escribieron antes. Para Unix, para DOS, para CP/M, para Windows 95, para Macintosh o para lo que sea. Los ejemplos son casi infinitos y muchos productos de software populares de hoy en día tienen antepasados.

·         FrontPage es uno de los antepasados ​​de Wix y Squarespace

·         Second Life es un antepasado de Metaverse y Roblox

·         Visual Basic (1.0 para DOS) es un antepasado de Visual Studio Code

·         CVS, SourceSafe y Subversion son ancestros de Git

·         Microsoft NetMeeting es el abuelo de Microsoft Teams

·         Oracle (lanzado en 1979) es el abuelo de todas las bases de datos relacionales

La lista podría continuar para siempre. Mire todas las aplicaciones en la pantalla de inicio de su teléfono. Todos ellos tienen antepasados ​​que van desde productos físicos hasta aplicaciones modernas. Mire Maps: primero tuvimos mapas impresos plegables físicos, luego tuvimos software de escritorio como Microsoft AutoRoute y finalmente aterrizamos en Google Maps y Apple Maps que todos usamos hoy.


Microsoft Access (1992): uno de los primeros creadores de aplicaciones "sin código"

Cuando cree nuevas aplicaciones, observe lo que se hizo antes. Evalúe la mejora en la tecnología y aprenda de lo que se hizo antes y cómo las capacidades técnicas de hoy pueden mejorarlo.

#2 Sigue la ciencia

¿Estás creando un " MVP " o un " producto mínimo viable " para probar tu idea de software? Lo que estás haciendo en realidad es escribir un prototipo. La informática tiene una investigación bastante buena sobre la creación de prototipos de software . Puede encontrar que muchas de las preguntas que tiene al intentar construir un " MVP " se resuelven de manera precisa con el conocimiento científico sobre la creación de prototipos.


Inventaron Unix y C: Ken Thompson y Dennis Ritchie

Con la creciente popularidad de la ingeniería de software y las nuevas empresas que buscan proporcionar herramientas o consultoría para ingenieros de software, habrá un número cada vez mayor de personas que intentarán venderle "ideas" vinculadas a sus productos o servicios. Los boomers me enseñaron a apegarme a la ciencia y hacer una evaluación científica de si un producto, servicio o enfoque es razonable o si alguien simplemente está tratando de venderme aceite de serpiente.

Cuando alguien, una persona o una empresa me vende una “idea” o un “enfoque diferente”, analizo los siguientes puntos que aprendí de los boomers.

·         ¿Existe evidencia científica que respalde las afirmaciones realizadas?

·         ¿Qué dicen los últimos trabajos de investigación académica sobre el tema?

·         ¿Los argumentos resisten el escrutinio científico?

Ya sea Scrum, Agile, No Code, Low Code, OOP, NoSQL, Blockchain, Metaverse o cualquier otra tendencia que esté a la vuelta de la esquina. Revalidarla con métodos científicos. De esta manera, puede diferenciar el aceite de serpiente de las innovaciones y avances tecnológicos reales.

#3 Termina de una vez

¿Haces TDD, BDD, pruebas unitarias, diseño basado en dominios, desarrollo basado en datos, programación en pares y sigues la filosofía SOLID, SSOT, GRASP o Unix? Bien por ti y si no, no te preocupes. No existe una sola forma correcta de hacer las cosas, sino múltiples enfoques para una solución. Sin embargo, debe evitar cometer errores que otros cometieron antes que usted.

El método de gestión de proyectos Waterfall, el lenguaje de modelado unificado (UML) para el software de modelado o el proceso unificado son un enfoque tan válido como las metodologías ágiles como Scrum o SAFe, que utilizan historias de usuarios para definir requisitos o dividen su trabajo de desarrollo en sprints. Puede debatir el enfoque de la programación y la ingeniería de software para siempre, especialmente a nivel filosófico.


Redacción de diagramas de flujo y diagramas UML con Microsoft Visio

Siempre es muy fácil para los programadores entrar en debates sobre cómo organizar, qué control de versiones usar, cómo diseñar, redactar y construir software. Todos tienen un enfoque diferente, preferencias diferentes y una visión diferente de las cosas. Sin embargo, hay un punto en el que debe poder pasar del debate a hacer realmente el trabajo necesario. Debe definir el enfoque y lo más probable es que sea un compromiso. Sea como sea y te guste o no. Trágalo y termínalo de una vez.

Encuentre un compromiso de trabajo para usted y sus compañeros programadores. Acepte el proceso, comience y haga el trabajo. Todavía puede ajustar más adelante cuando identifique espacio para mejorar. La planificación es importante, pero no se exceda. Encuentre un equilibrio saludable entre la planificación, el diseño, el dibujo y la construcción.

#4 Identificar la necesidad

¿Cuál es el propósito del software que está creando y por qué lo crea para quién? ¿Qué quiere lograr esa persona, tu usuario, con tu software? ¿Qué es realmente capaz de hacer su usuario y en qué entorno? — Esas son las preguntas, los boomers me enseñaron a hacerme antes de construir cualquier cosa.

Una vez respondidas estas preguntas, procederé a escribir el software más básico y simple para resolver ese problema específico y presentárselo al usuario. Posteriormente, el usuario me bombardeará con solicitudes de funciones. Predominantemente con respecto a la interfaz de usuario, porque eso es lo que el usuario percibe que es todo el software. No implementaré ninguna de estas características solicitadas, pero identificaré la necesidad real del usuario y encontraré una manera simple, fácil y conveniente de satisfacer esa necesidad.

Muy popular y elogiado por su simplicidad: WS_FTP95

“La gente no sabe lo que quiere hasta que se lo muestras. Es por eso que nunca confío en la investigación de mercado. Nuestra tarea es leer cosas que aún no están en la página”.—Steve Jobs

La persona promedio no tiene idea de qué es una computadora, cómo funciona, cómo se escribe el software o qué es una red informática. No puede esperar que sepan nada sobre el software y, por lo tanto, no puede esperar que puedan articular los requisitos de una manera tan significativa de la que podría derivar su software.

Identificar la necesidad real del usuario: ¿cómo quiere hacer el usuario qué y por qué razón? Implemente la forma más fácil y conveniente de hacerlo y presente esa solución en forma de prototipo. Luego iterar desde ese prototipo en adelante. Nunca confíe en que el usuario pueda articular sus requisitos.

#5 Obtenga las herramientas adecuadas para el trabajo

Los boomers me enseñaron a escuchar al usuario e identificar su necesidad. A partir de esa necesidad, redactaré una solución simple, confiable y conveniente. Esa solución no implica ningún lenguaje de programación, componente, software, sistema o plataforma. Es una descripción genérica de la solución, una definición de cómo me gustaría lograr qué. Una vez que haya redactado esa solución, seguiré los siguientes pasos para identificar qué herramientas, cadena de herramientas, lenguaje de programación y sistema operativo usaré.

·         ¿Qué plataformas de destino necesitará mi solución? Escritorio, web, móvil, integrado, mainframe, Unix, Windows, Linux, Solaris, Macintosh, DOS?

·         ¿Qué lenguajes de programación puedo usar para compilar para esa plataforma?

·         ¿Qué componentes necesito para construir la solución en esa plataforma?

·         ¿Qué habilidades necesito aprender para construir esa solución con esas herramientas?

·         ¿Qué obsolescencia tienen estas herramientas, de ahí mi solución? ¿Mi solución podrá sobrevivir los próximos 5 años sin reescribirla por completo?

·         ¿Cuánto me cuestan estas herramientas a mí y a mis usuarios? ¿Pueden mis usuarios pagar la solución o necesito reducirla para que se ajuste a su presupuesto?


Borland C++ 5.02: Una relación de amor y odio con muchos desarrolladores boomers

Encontrar las herramientas adecuadas nunca es fácil y, a menudo, está extremadamente sesgado. Tiene idiomas preferidos, herramientas y plataformas con las que se siente más cómodo. También tienes herramientas, lenguajes y plataformas que simplemente disfrutas mucho. Sin embargo, es posible que estas no sean las herramientas, los lenguajes y las plataformas adecuados para la solución que su usuario necesita.

Se honesto contigo mismo:

·         ¿Elegiste la cadena de herramientas, el lenguaje y la plataforma porque te gusta?

·         ¿O los elegiste porque solo quieres probarlos?

·         ¿O los eligió porque son el enfoque más económico?

No existe una solución universal para ningún problema. Identificar las herramientas que conducen a la solución más económica. Serán un compromiso. Aprenda a dominar estas herramientas e implemente la solución que sea mejor para el usuario, no la solución y no las herramientas con las que se sienta más cómodo o que sean la última tendencia.

#6 Haz los esquemas

Me encanta programar y me encanta saltar directamente a ella. Los Boomers me enseñaron a nunca hacer eso. Me enseñaron a tomar una taza de café y una hoja de papel en su lugar. Me enseñaron a redactar la solución con los componentes y la plataforma seleccionados. Querían que hiciera un plano, los esquemas, incluso antes de escribir la primera línea de código. Incluso una vez que tuve el plano frente a mí, definiré las partes técnicamente más complicadas y críticas.

Las partes más críticas las implementaré de forma aislada de antemano. De esta manera pude averiguar si realmente sería capaz de implementar estas partes críticas y complicadas. Apple proporcionó el siguiente ejemplo en su revista de desarrollo de la primavera de 1991. Muestra la complejidad de una búsqueda de DNS con MacTCP en Macintosh System 7 y posteriores.

/* Código de muestra MacTCP de Apple Develop (primavera de 1991, página 55) */
# include  <Types.h>
 # include  <MacTCPCommonTypes.h>
 # include  <AddressXLation.h>
 # include  "CvtAddr.h"

 pascal
void  DNRResultProc ( struct hostInfo *hInfoPtr, char *userDataPtr) ;

/* ConvertStringToAddr es una simple llamada para obtener el número de IP de un host,
    dado el nombre del host. */

OSErr
ConvertStringToAddr ( char *nombre, largo sin firmar  *netNum)
 {
 
struct  hostInfohInfo;
  resultado OSErr;
 
char terminado = 0x00 ;

 
if ((resultado = OpenResolver (nil)) == noErr) {
    resultado =
StrToAddr (nombre,&hInfo,DNRResultProc,&done);
   
if (resultado == cacheFault)
     
while (!hecho)
        ;
/* esperar a que la interrupción llame a la resolución de fallas de caché */
   
CloseResolver ();
   
if ((hInfo.rtnCode == noErr) || (hInfo.rtnCode == cacheFault)) {
      *netNum = hInfo.addr[
0 ];
     
strcpy (nombre, hInfo.cname);
      nombre[
strlen (nombre) -1 ] = '\0';
     
devuelve ningún error;
    }
  }
  *númneto =
0 ; resultado
 
devuelto ;
}

/* Esta es la rutina de finalización utilizada para las llamadas de resolución de nombres.
Establece el indicador userDataPtr para indicar que la llamada se ha completado. */

pascal
void  DNRResultProc ( struct hostInfo *hInfoPtr, char *userDataPtr)
 {
 
# pragma unused (hInfoPtr)
   *userDataPtr =
0xff ; /* Establecer los datos del usuario en distintos de cero significa que hemos terminado. */
 }

Solo después de que se demuestre a sí mismo que es capaz de implementar las partes complejas (como el ejemplo anterior) , puede estar seguro de que puede implementar la solución por completo. Se asegurará de haber identificado cualquier obstáculo antes y también será consciente de las limitaciones a las que se enfrentará. Especialmente aquellos que no conocía cuando redactó su solución. Es muy importante evaluar su solución antes de comenzar a implementarla.

No salte al código. Redactar una solución técnica en papel. Pruebe las partes más críticas y complicadas. Asegúrese de que la solución sea técnicamente posible y que sea técnicamente capaz de implementarla. Busque soluciones alternativas si su evaluación falla.

#7 La codificación es un oficio

Escribir software puede ser un arte y puede ser muy expresivo. La gente puede escribir código extremadamente elegante con funciones de lenguaje sofisticadas. El código se puede escribir de manera que sea complicado, estúpido, simple, hermoso o absolutamente aterrador. Si bien eso puede ser emocionante como una obra de arte, el código puede serlo, es absolutamente inútil como un producto elaborado.

Lo que debe tener en cuenta : crea un producto para que lo usen sus usuarios. En un sentido muy básico, es como una forma moderna de pala, tractor o ducha: un producto técnico para que lo usen otras personas.

Puede que no seas el mejor programando, porque nadie lo es. La codificación en sí misma no es una competencia. Sí, su producto va a competir, si es un producto de software comercial. Pero tú y tu código no están compitiendo con alguien. Estás escribiendo el código para crear la solución a un problema. Trate de hacer su mejor trabajo, pero no exagere. No intentes convertirlo en una obra de arte. Concéntrese en la solución y no tenga demasiado miedo de su propio trabajo.


No hay necesidad de avergonzarse de su código VB6 del '98.

Cuando alguien más mire su código más adelante, encontrará formas de optimizarlo. Encontrarán formas de hacerlo más limpio, más bonito, más rápido, más ligero, más delgado y más elegante. Esa es la naturaleza de cada oficio. Siempre hay formas de mejorarlo. No deberías avergonzarte de lo que construiste si te apegas a las mejores prácticas y a los cimientos del oficio.

La codificación no es magia y no es ciencia espacial. Es un oficio y necesitas dominar ese oficio. Nunca serás perfecto en ese oficio, pero debes continuar mejorando tus habilidades todos los días entrenando, aprendiendo y aplicando. No te avergüences de ti mismo ni del código que has escrito en el pasado.

#8 No necesitas eso

Escribir software de computadora en los años 90 era un ejercicio costoso. La computadora decente en 1995 tenía un precio de $ 2,500- $ 3,000 en dinero de hoy. Incluía algo así como un 486 de 100 Mhz, 8 MB de RAM y una unidad de disco de 540 MB, Windows 3.11 y posterior Windows 95. Fácilmente capaz de ejecutar un IDE como Borland C++ 4.02. Para Borland C++ 5.02 necesitaría actualizar la memoria RAM a 16 MB o más, ya que 16 MB era el requisito mínimo para Borland C++ 5.02. El precio de venta al público de Borland C++ 4 era de 499 dólares en aquellos días, lo que equivale a 988 dólares en la actualidad. Eso es la friolera de mil dólares además de esa máquina que ya es cara. Si estaba programando para computadoras Macintosh, puede agregarle fácilmente un par de miles de dólares.


Los IDE eran caros: alrededor de $ 1,000. ¡Pero venían en una bonita caja con asa!

La programación en el pasado era divertida, pero costosa e incómoda. No era inusual bloquear toda la máquina y enviarla a reiniciar con su código. Cuando invierte tanto dinero en su equipo, piensa dos veces en qué invertirá. Piensa dos veces si realmente necesita esa biblioteca adicional por otros $200.

¿Hay una base de datos de archivos planos ligeramente mejor que la incluida en su entorno de desarrollo? Son otros $1,000. No necesitas eso.

Cuando los boomers escribieron software, tuvieron que lidiar con todo tipo de restricciones: efectivo, memoria, CPU, red, disco y básicamente todo lo demás. Prácticamente todo era limitado en comparación con hoy. Siempre pensarían dos veces si realmente necesitarían algo y cuál sería el impacto en su producto final. Los sistemas de sus usuarios objetivo eran aún más limitados que las computadoras en las que programaban.

¿Realmente necesitas todas esas cosas caras? Trate de hacerlo simple y en un presupuesto. No hay necesidad de una supercomputadora y el entorno de desarrollo más costoso. Utilice las herramientas que puede permitirse o que ya tiene. Elija sabiamente sus dependencias, ya que lo seguirán durante bastante tiempo.

#9 Libéralo cuando se pueda enviar

Hoy en día, el software de envío es fácil. Los productos SaaS se pueden enviar en un instante con entrega continua. El cliente puede actualizar constantemente las aplicaciones en sus dispositivos, ya que siempre están en línea. Los boomers en el pasado tenían que enviar software en disquetes o discos compactos. Tenían una sola oportunidad de enviar. Lo que sea que pusieran en ese disquete o disco tenía que funcionar cuando llegaba a las manos del usuario. Sin segunda oportunidad.


PC-MAN en una bonita caja por $34.95

Si el software del disquete o del disco tuviera problemas, los minoristas tendrían que darle al cliente un disquete adicional con un parche o reemplazar el inventario existente por completo. Había muy poco margen de error si quería un producto de software comercialmente exitoso en los estantes. Un producto tenía que ser " envíable ", lo que significa que se probó, probó y verificó para que funcionara en la mayor cantidad de máquinas posible.

También tenga en cuenta que las plataformas de destino eran un desastre. Tenía una variedad de opciones de gráficos diferentes para admitir si su software usaba más que una simple entrada de texto (las opciones populares eran Hercules, CGA, EGA, VGA para PC IBM y compatibles) . Tenía que probar eso antes de enviar su producto al usuario. Dado que no había virtualización, eso significaba que tenía que probarla en máquinas físicas o confiar en una biblioteca de terceros que se probó y probó. No me hagas empezar con el sonido o las opciones de red.

El software que se puede enviar, como me enseñaron los boomers, significa software que se ejecutará de forma inmediata en al menos el 90 % de las máquinas de destino previstas. Crear una nueva versión fue un proceso de pensamiento muy completo. No se podía simplemente lanzar, enviar y esperar lo mejor.

Defina lo que significa envío para usted. Asegúrese de que lo que envíe funcione para el 90 % de los usuarios desde el primer momento. No tome atajos en las pruebas de caja negra y caja blanca. El proceso de lanzamiento y envío técnico es parte de su proceso de desarrollo y, por lo tanto, parte de su software. No lo delegues a nadie más.

#10 Lee los libros

Stackoverflow se lanzó en septiembre de 2008, 10 años después del lanzamiento de Windows 98 y 6 años después de Windows XP. Sí, había recursos de programación en Internet antes del año 2000. MSDN, Microsoft Developer Network, es uno de ellos. Sin embargo, la gente rara vez los usaría dado lo lento y costoso que era Internet con su módem de 56k en comparación con el acceso a Internet siempre activo de hoy. Sí, había grupos de noticias donde podías publicar preguntas y esperar días para obtener una respuesta. En la mayoría de los casos, se le dijo que solo leyera la documentación. En lugar de Github y Stackoverflow, ambos fundados en 2008, los boomers tuvieron que confiar en los libros. Libros caros, pero de alta calidad.

Y libros que necesitaban mucho : un libro de introducción a su idioma, un manual de referencia para el idioma, un manual de referencia para el sistema operativo en ese idioma y cualquier libro específico de dominio (por ejemplo, redes) que necesitaran. Un solo libro a menudo no hacía el trabajo, los boomers necesitaban un estante de libros técnicos. El libro “ Principio de programación de Macintosh C ” en 1992, como ejemplo, costaba 26,95 dólares estadounidenses, lo que sería 57,98 dólares estadounidenses en la actualidad. Si miras los libros de programación de Macintosh de la época, fácilmente subirías a $ 500 en dinero de hoy solo por libros.


Afortunados los que tenían cerca una biblioteca universitaria bien equipada

Los libros más populares e importantes que todo desarrollador, no solo los boomers, tiene en su estantería son al menos, pero no se limitan a, los siguientes.

·         El lenguaje de programación C por Brian W. Kernighan

·         El lenguaje de programación C++ de Bjarne Stroustrup

·         El entorno de programación UNIX por Brian W. Kernighan

·         UNIX para programadores y usuarios por Graham Glass

Hay toneladas de otros libros de los años 70, 80 y 90 que te animo a leer. Encontrará que muchos de los libros de esa época son de mayor calidad que la mayoría de los libros que encontrará hoy.

·         Libros de programación en Internet Archive

·         Libros de programación de Macintosh en Vintage Apple

Los libros más importantes que me dijeron que leyera eran sobre el lenguaje de programación C, el sistema operativo UNIX, SQL con bases de datos relacionales y TCP/IP. Si bien hay libros electrónicos, lectores electrónicos y otras opciones de lectura de pantalla, me enseñaron a seguir con los libros impresos y debo admitir que personalmente prefiero los libros impresos desde entonces.

Lea los libros, comprenda los contenidos y aprenda. Aplicar los conocimientos aprendidos a través de la formación. No confíe únicamente en la capacitación institucional, necesita los libros y los necesitará por el resto de su vida. Nunca dejarás de aprender y los libros son la fuente de conocimiento más importante para aprender.

Lo que lograron los boomers

Como toda generación en la historia de la humanidad, existen conflictos generacionales. De hecho, hay tanta investigación académica sobre los conflictos generacionales que no hay motivo para que escriba nada más: La psicología detrás del conflicto generacional .


Jóvenes investigadores en el VEB Elektronik Gera (Alemania del Este, febrero de 1984)

Los desarrolladores boomer no lo tuvieron fácil: se los consideraba nerds, forasteros torpes con una extraña pasión por las computadoras sentados frente a la pantalla todo el día. Hoy en día, la ingeniería de software es una profesión muy respetada. Muchos jóvenes buscan trabajo en empresas de software. Además de los avances tecnológicos, este es probablemente el mayor logro que los desarrolladores boomers han logrado para todas las siguientes generaciones. Ellos, hombres y mujeres por igual, hicieron la transición de la programación incómoda y nerd a la muy respetada profesión de la ingeniería de software. Le debemos mucho a esa generación por sus logros.

Dado que los boomers a menudo se consideraban nerds y la mayoría de la sociedad no tenía ni idea de qué era una computadora o qué software hacía, la comunidad de programación era relativamente pequeña en comparación con la actualidad. Hoy, en 2023, tenemos aprox. 28 millones de desarrolladores en todo el mundo. Representan el 0,29% de la población mundial. Apenas hay estadísticas de cuántos programadores existían en los años 80 y 90, pero puede esperar que ese número sea extremadamente pequeño. Tenían que llevarse bien entre ellos si querían que la informática y la programación progresaran.

En mis primeros años, noté personalmente que los desarrolladores boomer siempre miraban los hechos y nunca a la persona. Cuando presentaba argumentos, los evaluaban y nunca los ignoraban solo porque era joven e inexperto. Para mí personalmente ese es uno de los grandes legados de los boomers que nosotros, como las generaciones más jóvenes, debemos preservar siempre. Concéntrese en los hechos, no en las personas.

En mis últimos 25 años de programación e ingeniería de software, leyendo docenas de libros de los últimos 60 años, también tengo constantemente la impresión de que un conocimiento muy importante se pierde en el tiempo. Siento que nuestro trabajo como generación más joven es preservar el conocimiento de las generaciones anteriores, especialmente en informática.

Gracias.

Espero haber podido preservar parte del conocimiento con este artículo o al menos hacerte pensar sobre la herencia de la informática y la programación. Honrar los logros de las generaciones que nos precedieron y tener en cuenta su experiencia para todo lo que hacemos hoy. ¿Tiene algo que agregar a mi experiencia o tiene experiencia trabajando con las generaciones anteriores usted mismo?

jueves, 14 de mayo de 2020

Cómo dar clases en línea efectivas? 7 consejos

Publicado por RedesIB el 12 de Mayo de 2020

¿Dabas alguna clase presencial y ahora no tienes más que realizarla vía Internet debido a la pandemia de COVID-19?, ¿no sabes cómo o quieres mejorar en esto?

Beatriz Palacios, directora de Innovación Educativa del Tec de Monterrey, comparte a CONECTA 7 recomendaciones para tener éxito y brillar como docente al ofrecer clases en línea.

CONOCE LA PLATAFORMA Y PLANEA 

Primero debes conocer las plataformas y/o aplicaciones para realizar tus clases en línea, sus alcances, ventajas y áreas de oportunidad, para planear cómo las utilizarás.

“Estructura toda tu didáctica en los diferentes medios que vas a utilizar”, señaló la experta.

Por ejemplo, Canvas y Blackboard son dos plataformas que se utilizan en las clases online en el Tec de Monterrey y facilitan la entrega de actividades, programación de exámenes, calificaciones y los avances de los alumnos.

mesa donde alguien toma una clase en linea vista desde arriba

¿CÓMO HACER INTERACTIVA TU CLASE?

La experta recomienda pensar en actividades dinámicas que mantengan al alumno en un aprendizaje activo.

Para generar interés tienes muchas opciones, como: hacer preguntas, mostrar videos o textos que inviten a la reflexión o hacer ejercicios con vídeos o simulaciones.

Algunas de las herramientas que puedes usar son:

REFUERZA LA COMUNICACIÓN POR OTRAS VÍAS

Mantener la comunicación entre profesores y alumnos es esencial, por lo que la experta recomienda mantener un medio de comunicación extra a las videollamadas

WhatsApp, Slack y Remind son algunas de estas plataformas que puedes utilizar.

“Hay que tener un proceso de retroalimentación continua, así el alumno no se siente ansioso”, añadió Palacios.

smartphone con aplicaciones de comunicación

A REDISEÑAR LA CLASE

No se trata únicamente de vaciar el contenido previo en un formato en línea, sino volver a pensar la clase siendo consciente que ahora se hará a distancia.

“Piensa en cómo ofreces contenido, cómo vas a pedirles a los alumnos que hagan sus actividades, cómo vas a evaluar”, indicó Palacios.

Esto implica nuevas formas de evaluación y tiempo de adaptación al nuevo esquema de educación en línea.

 

LINEAMIENTOS CLAROS Y PRECISOS

Enfócate en dejar todo claro, para que no haya confusiones o malentendidos: desde las fechas de entregas, los procesos de revisión, cuándo son los exámenes y más. Al explicarle al alumno todo, mejorará su experiencia.

“No hay que obviar, hay que ser muy precisos a la hora de dar recomendaciones a los alumnos”, señaló la experta.

Esto también conlleva nuevas formas para dar retroalimentación a los estudiantes en su adaptación a las clases en línea. 


PREPARA TU EQUIPO Y TU ESPACIO

Asegúrate de tener una red estable y de preferencia conectarte por cable a Internet, utiliza audífonos, procura estar en un ambiente tranquilo y ten una buena iluminación.

También puedes practicar el uso de las plataformas para hacer videollamadas y grabar tus propios videos en caso de que se requiera.

Aquí hay unas indicaciones para grabar videos que pueden servirte: da click aquí

 

pantalla de una camara enfocando a alguien mientras se graba un video

 

NO OLVIDES LA EMPATÍA

Para asegurar la continuidad académica sigue las indicaciones y lineamientos de los programas de tu institución educativa, sin embargo recuerda que hay personas con poco o nulo acceso a algunas herramientas.

Ante esto, puedes generar contenido sincrónico, que se vea en tiempo real y en el que hay una interacción al momento o asincrónico, como videos o tutoriales que pueden revisar fuera de clase los alumnos.
 

¿QUIERES MÁS AYUDA?

miércoles, 10 de julio de 2019

3 mitos sobre Inteligencia Artificial

By 10 enero, 2019

¿Nos dominarán los robots? ¿Nos relegarán al olvido y nos llevarán al desempleo? estas, quizá, son algunas de las preguntas más recurrentes que te rondan la cabeza, ¿verdad?, si has escuchado esto frecuentemente ¡Debes seguir leyéndonos!
Antes que nada, olvida todo lo que creías saber sobre Inteligencia Artificial, ni las películas ni los libros de ciencia ficción están cerca de explicarte de manera acertada lo que en realidad significa. Mucho se ha hablado de la Inteligencia Artificial y sus repercusiones a futuro, ten en cuenta que siempre le tememos a lo que no conocemos, si hablamos de tecnología, solemos desconfiar aún más ya que la confianza de las generaciones hacia los adelantos tecnológicos depende de su interacción con ella. ¡Recuerda! ¡Los grandes cambios traerán consigo grandes beneficios!
Antes de nombrar los mitos más conocidos y populares sobre la Inteligencia Artificial y despejar tus miedos sobre el futuro que nos deparan los robots que “dominarán el mundo”, debes tener un poco más claro el concepto: Inteligencia Artificial.
La Inteligencia Artificial intenta simular los procesos o las capacidades intelectuales de los humanos, en otras palabras, la Inteligencia Artificial está sujeta a realizar tareas como entender, aprender, realizar y planificar; el núcleo o cerebro de la Inteligencia Artificial depende del aprendizaje automático, que está diseñado para no solo hacer nuestro trabajo más fácil, si no para depender de la programación humana para funcionar, el concepto de “las máquinas piensan como seres humanos”, es posible solo si los seres humanos las programan.
¿Ya puedes respirar? ¡Tranquilo! el fin del mundo será pospuesto por muchas décadas, al menos, por medio de la Inteligencia Artificial nuestro mundo no será destruido. Este artículo está justamente hecho para mostrarte lo que no hará la inteligencia artificial, en nuestra vida.

1. ¿Humanos desempleados?

¿La Inteligencia artificial acabará con los trabajos menos cualificados? ¿Nos dejará desempleados? Constantemente se dice que los humanos seremos relegados al desempleo y al olvido, es cierto que existen empleos que son absolutamente operativos y en muchas ocasiones, tan sencillos que se convierten en tareas mecánicas y dispendiosas para las personas que los desempeñan.
Tarde o temprano la Inteligencia Artificial tomará estas labores para hacerlas de manera rápida, ágil y concreta, de esta manera, los procesos se verán beneficiados y optimizados positivamente para hacer más efectivo todo dentro de las compañías; dichos puestos sí desaparecerán y será pronto, pero ¡tranquilo! este cambio dará lugar a empleos más enfocados y complejos que tendrán acciones de valor que solo podrá dar un ser humano y nunca una máquina. La misma Inteligencia Artificial a la que tanto tememos, generará más posibilidades de trabajo y llevará nuestras habilidades a espacios mucho más especializados donde no realicemos tareas repetitivas y en cambio podamos utilizar nuestro intelecto para trabajos de mayor valor.

2. Hasta la vista humanos:

Uno de los mitos más comunes sobre la Inteligencia Artificial es pensar que tomará conciencia propia y dominará el mundo sometiéndonos a una guerra entre humanos versus máquinas que durará décadas.
Gran parte de este mito se lo debemos a Hollywood y a la creación de piezas cinematográficas de ciencia ficción que nos han llevado a pensar que este futuro será posible y no será lejano. Bueno, pues en los años 70s y 80s aún se pensaba que para el año 2000 colonizaríamos Marte, que volveríamos a la luna y que tendríamos robots médicos que curarían enfermedades, hoy, ninguna de esas predicciones fueron acertadas ni se materializaron, a pesar de que nuestros avances tecnológicos son notorios y van en crecimiento, la Inteligencia Artificial está creada para realizar labores programadas y previamente pensadas por seres humanos, en este momento ni siquiera existe para cumplir funciones motoras.

3. La Inteligencia Artificial hace de todo:

Que la Inteligencia Artificial realice cualquier tarea no será tan sencillo, los software están en una base o un proceso bastante inicial donde se han logrado avances pero no cosas definitivas. Es obvio que la Inteligencia Artificial abre muchas oportunidades y que sin duda alguna será revolucionaria, pero siempre hay que tener en cuenta que no es independiente ni piensa por sí sola, por ende, no es una “solución mágica a todo”, de ser así ya la habríamos programado para solucionarnos la vida. ¿No?
Actualmente, aunque de manera prematura y un tanto básica, la Inteligencia Artificial juega una labor primordial en nuestra vida diaria, las múltiples ventajas y cambios que trajo consigo principalmente en ámbitos empresariales han sido sumamente positivos para la modernización, pero también, para la dinamización de los procesos; enviar un e-mail para solicitar el restablecimiento de tu cuenta, traducir un texto al idioma que necesites, solucionar el requerimiento de algún usuario con base a una duda no solo agiliza, también nos deslinda de actividades que solían ocupar gran parte de nuestro valioso tiempo, la Inteligencia Artificial a futuro seguirá siendo un aliado para las industrias y organizaciones que están en creciente cambio generando transformaciones y augurando decisiones acertadas y dinamización de sus labores cotidianas.
#IA #InteligenciaArtificial #Datos #DecisionesInteligentes #InteligenciaAumentada

viernes, 5 de julio de 2019

Hacia una Europa justa, impulsada por la IA

Telefónica-Richard Benjamins


Estamos inmersos en un momento muy emocionante para la estrategia tecnológica europea. Aprovechando el impresionante crecimiento que la Inteligencia Artificial (IA) está experimentando en el mundo, Europa está preparando varias iniciativas estratégicas para instalarse con fuerza en el mapa global de la IA. En este post, repasaremos estas iniciativas y veremos por qué son importantes y cómo encajan (o deberían encajar).
Estas cuatro iniciativas contribuirán sin duda a reforzar la competitividad de Europa en el campo de la IA y de los datos. La IA se alimenta de datos, necesarios para el entrenamiento de los algoritmos.  Además, al disponer de más datos y basarse en ellos, la toma de decisiones por parte de los gobiernos será mejor y más rápida. Estados Unidos y China tienen mucha presencia en el ámbito de los datos B2C, pero Europa tiene una oportunidad en el del B2B.
Las Recomendaciones de Políticas e Inversiones en materia de IA estimularán el desarrollo de esta en Europa mediante i) el fomento de la implantación de la IA en el sector privado y ii) en el sector público; iii) el apoyo a la investigación a escala mundial; iv) la creación de una infraestructura europea de datos; v) competencias y educación; vi) gobierno y regulaciones; y vii) financiación e inversiones.
El objetivo de las Directrices éticas para una IA de confianza es asegurar que el desarrollo de la IA y el big data se enmarca dentro de unos límites legales, éticos y seguros, que estén al servicio de la humanidad. También el 26 de junio, la CE puso en marcha un proyecto piloto para comprobar las preguntas concretas de evaluación incluidas en las Directrices mediante dos cuestionarios, uno para desarrolladores e instaladores y otro para otras partes interesadas. El proyecto piloto finaliza el 1 de diciembre de 2019.
La Directiva sobre Datos Abiertos e Información del Sector Público estimulará el uso de datos abiertos publicados a través de interfaces de programación de aplicaciones (API). También elaborará una lista de grupos de datos públicos de gran valor con un gran potencial comercial que estarán disponibles de forma libre y abierta en toda la UE a través de APIs.
La misión del Grupo de Expertos B2G es encontrar maneras de aumentar los datos privados que se comparten en pro del interés general, ya sea en decisiones gubernamentales, estadísticas oficiales, catástrofes humanitarias, etc. En la actualidad, este tipo de intercambio se produce a pequeña escala y, a menudo solo en entornos piloto; hay pocos sistemas en producción. El reto es hacer crecer esas actividades, ya que actualmente el interés general no está sacándole todo el partido posible a las oportunidades que brindan los datos y la Inteligencia Artificial.

Para hablar de estas últimas incorporaciones (las Recomendaciones de Políticas e Inversiones en materia de IA y el proyecto piloto para evaluar su fiabilidad), acogemos con especial satisfacción las recomendaciones relacionadas con el fomento de la adopción de la IA en los sectores público y privado; la creación de una infraestructura de datos europea; el énfasis en el uso responsable de la IA y en las competencias y la educación.
Promover la Inteligencia Artificial en los sectores público y privado
En la actualidad, las pymes no usan tanto la IA, a diferencia de las grandes empresas. Sin embargo, la gran mayoría de los europeos trabaja en pymes. Por ello, es fundamental aumentar la implantación de la IA en las empresas pequeñas. También es importante incrementar la presencia de la IA en el sector público: «La implantación de sistemas de IA puede ayudar a que los gobiernos tomen mejores decisiones políticas, basadas en los datos, a prestar mejores servicios a las personas, grupos y organizaciones mediante la reducción de costes internos, aumentando la eficacia de los programas y mejorando la calidad». Es fundamental formar asociaciones (público-privadas) en áreas clave para aprovechar al máximo la tecnología. La formación y el asesoramiento en IA son de esenciales para que esto suceda.

Hacia una infraestructura europea de datos
La mayoría de las IA que tienen éxito en la actualidad se basan en un aprendizaje supervisado de la máquina, lo que requiere una gran cantidad de datos para el entrenamiento de los algoritmos. Sin embargo, el estado actual de los datos B2B en Europa está fragmentado por organizaciones, sectores y países. Aunque habrá que superar muchos obstáculos, es importante trabajar en una infraestructura europea de datos como activo diferencial fundamental para Europa. No se trata solo de una infraestructura de hardware y conectividad, sino, sobre todo, de una infraestructura de datos. Debemos aunar los datos de organizaciones públicas y privadas, de todos los sectores y países europeos.  La Directiva sobre Datos Abiertos permite que el sector público trabaje en este sentido, y el grupo de expertos sobre intercambio de datos B2G tiene que encontrar fórmulas para ampliar la puesta en común de datos privados, teniendo en cuenta tanto los intereses públicos como los privados. Las asociaciones público-privadas relacionadas con áreas específicas son probablemente la clave para empezar a construir dicha infraestructura de datos.

Uso responsable de la IA
Aunque la IA y el big data ofrecen muchas oportunidades, también existen riesgos, que para una empresa están relacionados mayoritariamente con las consecuencias negativas no deseadas de la aplicación de la tecnología. Por lo tanto, estamos encantados de participar en el proyecto piloto para evaluar la fiabilidad de la IA y aportar nuestra experiencia en la implementación de la «IA responsable desde el diseño». La formación, la educación y la concienciación son de suma importancia, y hemos desarrollado un curso en línea para formar a nuestros empleados en temas como la IA justa, explicable, centrada en el ser humano y que salvaguarde la privacidad y la seguridad.
Sin embargo, antes de que podamos cosechar los beneficios de esas importantes iniciativas, todavía quedan varios obstáculos por superar. A este respecto, quiero mencionar solo dos de los muchos, pero menos debatidos problemas, a los que se enfrenta Europa para la creación de una Infraestructura Europea de Datos. La privacidad es, por supuesto, una cuestión muy importante, pero que ya ha sido ampliamente debatida por los expertos.
  • Un problema no resuelto es cómo incentivar a las empresas para que compartan sus datos privados a escala suficiente para crear esta infraestructura de datos. Aparte de esta escala, también el tiempo es importante, porque Europa no puede esperar 10 años. Uno de los principales instrumentos sería la creación de ecosistemas y modelos de negocio sostenibles en torno a ciertos nichos de mercado como la salud, la fabricación, la automoción... y definir modelos claros de beneficio mutuo para los sectores público y privado. Y, en ciertos casos, se puede imponer la obligación de dicho intercambio.  El grupo de expertos B2G presentará sus recomendaciones a finales de 2019.
  • Otro problema está relacionado con la forma en la que hacer interoperables los conjuntos de datos, es decir, cómo combinar conjuntos de datos procedentes de diferentes organizaciones, tanto del sector público como del privado. Es necesaria una estandarización. El valor pleno de los datos solo puede alcanzarse con la combinación de diferentes conjuntos de datos. Mientras que el intercambio de datos privados todavía no ha despegado y estamos «a tiempo» para definir un estándar, los Datos Abiertos abundan, pero están fragmentados en diferentes niveles gubernamentales (UE, Estados miembros, institutos de estadística, regiones, ciudades), y no existe un estándar sobre cómo publicarlos. La Directiva sobre Datos Abiertos debería desempeñar un papel importante en este sentido.
En definitiva, la IA ofrece muchas oportunidades, pero también hay afrontar aún muchos desafíos para que Europa pueda llegar a ser realmente competitiva en este ámbito. Telefónica espera seguir colaborando con la Comisión Europea y otros agentes clave para fomentar la competitividad de una IA de confianza.

martes, 2 de julio de 2019

Cómo las generaciones anteriores influyen en nuestras decisiones

Cómo las generaciones anteriores influyen en nuestras decisiones. Masla hernandez


Los investigadores han llegado a saber mucho sobre cómo las personas deciden comportarse con las generaciones futuras y por qué. En los últimos 18 años, los estudios han identificado las barreras psicológicas que definen los dilemas intergeneracionales , como cuando una generación actual debe renunciar a los beneficios para actuar en nombre de las generaciones futuras. Hemos descubierto que las preocupaciones de administración y legado , por ejemplo, pueden guiar la manera en que los ciudadanos expresan la generosidad hacia las generaciones futuras.

Lo que no sabemos lo suficiente es cómo las generaciones anteriores influyen en nuestras decisiones actuales.

Aquí es por qué importa: muchas historias de nuestros antepasados ​​fueron diseñadas para evitar que los nuevos oyentes repitan los errores del pasado. Pero en una era en la que lo más cercano a los cuentos populares son las charlas de TED, ¿corren el riesgo de que las organizaciones pierdan el contacto con las lecciones del pasado? En una época de grandes cambios tecnológicos, que exige reflexión y una cultura corporativa clara, así como una propulsión creativa, esta es una pregunta vital.