el lado oscuro de la programación

36
por Carlos Toxtli El lado oscuro de la programación

Upload: carlos-toxtli

Post on 16-Jan-2017

3.981 views

Category:

Software


3 download

TRANSCRIPT

por Carlos Toxtli

El lado oscuro de la programación

PresentaciónMaestro en Innovación Empresarial y Tecnológica

La mitad de mi vida programando.

CV

¿De qué vamos a hablar?De todo aquello que nadie nos dice de la programación, porque no les

conviene que lo sepamos

Del futuro de la programación

De que hay más allá de lo que se nos enseña, de lo que nadie nos enseña y seguramente nadie nos lo enseñará.

De cuánto ganan los que saben las artes ocultas de la programación.

De qué materias sirven y cuáles no tanto.

De que seguramente les dará miedo seguir los pasos que veremos, pero los que lo sigan, llegarán muy alto.

Deep programmingWeb

Mobile Desktop

Todo lo demás

Embedded

Lo que todos hacen¿Web? ¿Mobile? ¿Desktop? ¿Embedded?

Muchas veces vemos hasta donde nuestro entorno nos permite ver.

¿Para que estudiar para astronauta si en donde vivimos no se hacen viajes espaciales?

Pero en otros lados sí.

Y pocos se atreven a hacer lo que no está en su entorno.

Pero los que se atreven …. llegan más lejos que cualquier otro (incluso al espacio).

En programación pasa lo mismo.

Si programo ¿A que me voy a dedicar?Muchas veces el que programa, piensa que es un programador.

Y es normal, no se nos dice que un programador tiene super poderes.

Alguien que estudia veterinaria va a ser veterinario.

Pero alguien que estudia programación será lo que quiera, solo aprendió un idioma.

Un veterinario atenderá tantos animales puedan llegar a su consultorio.

Un programador atenderá tantos millones de usuarios lleguen por internet.

Un programador es automáticamente empresario, eres el CEO de tu desarrollo.

El entorno no importaImaginen a una persona de marketing tradicional en un pueblo chico ¿Qué va a hacer?

Ahora imaginen a un programador en Groenlandia

Si el creador de PHP lo creó en el rincón más recóndito de Groenlandia

Ahora imagine a un programador en un lugar recóndito de Ucrania que vivió toda su vida sin agua caliente.

Es la historia del creador de Whatsapp y vendió su compañía en 19 billones de dolares

Tu entorno es internet, no donde vives, tus posibilidades no es lo que ves a tu alrededor, son infinitas.

Te enseñarán lo que quieren que sepas¿Web? ¿Mobile? ¿Desktop? ¿Embedded?

Si está bien saberlo, sobreviviremos bien con los pesos que nos paguen por ello.

¿Pero ya hay muchos que lo hacen no?

Ahora se preguntarán ¿Donde aprendo todo lo que no es eso?

La respuesta es en ningún lado

Si tu no lo aprendes, nadie te lo enseñará.

¡Exageras! me dirán, ¿Crees que alguien que gana 20 veces más te va a querer enseñar lo que sabe?

¿Y lo que veo en la escuela sirve?Depende …

Sin duda la clase de “Algoritmos y estructuras de datos” es la materia más importante de cada carrera de sistemas, de hecho es lo único que te piden saber las grandes empresas. ¿Pero porqué? ¿Ellos que saben que nosotros no?. La respuesta es muy sencilla.

Lo importante es “saber justificar” un algoritmo, no hay reglas de como hacer “bien las cosas”, pero si puedes en términos técnicos justificar tu código, es lo único que demuestra que sabes lo que haces.

Pais maquiladorAsí como se mandan a ensamblar coches a nuestro país, también se manda a hacer software.

¿Qué sirve que sepamos? Lo básico: Web, Mobile, Desktop, Embedded, etc.

¿Y porqué casi no se contratan de otras áreas de programación? Porque en el país no se produce gente que sepa todo lo demás.

Los países líderes si tienen esos perfiles, y es el secreto de su desarrollo, pero volvemos al mismo punto, no está en nuestro entorno, no lo aprendemos. El mismo ejemplo del astronauta.

En este punto se preguntarán ¿Qué hay más allá?Es muy probable que no nos vengan a la mente cosas diferentes a Web, Mobile, Desktop y Embedded, y es normal, no está en nuestro entorno.

Si no sabemos que existe algo, no lo podemos ni contemplar.

Si sabemos que algo existe pero no lo podemos implementar donde vivimos, lo descartamos.

Si no sabemos que podemos ser ciudadanos del mundo de forma sencilla (Flag Theory por ejemplo), no podremos ver que tenemos esa oportunidad.

Un ejemplo, no necesitas vivir cerca de la NASA para colaborar, basta con unirse a un grupo en línea y colaborar, eso te traerá oportunidades.

Pero no nos has dicho que hay más alláComo les dije, si buscas quien te enseñe lo que deseas saber, seguramente es que no lo deseas, ya hubieras empezado.

Y yo no les voy a decir que hay, les voy a enseñar como ustedes descubrirlo.

Si ustedes aprenden a conocer lo desconocido para el resto del mundo, entonces ustedes llegarán tan lejos como lo desees.

¿Y cómo podemos conocer estas ramas ocultas de la programación?

Fácil, viendo al FUTURO

Echémos un vistazo al futuro.

Hype Cycle

Vista al futuro en los próximos 10 añosEn la Hype Cycle se muestran las tecnologías que en máximo 10 años dominarán nuestro entorno.

Los que sean expertos en esas ramas son los que dominarán el mercado.

Ya sabemos que pasará de aquí a 10 años, ¿Qué fácil es ser exitoso en estos días no?

Solo te vuelves experto en cualquiera de esas áreas y listo.

Les apuesto a que muy pocos de aquí se atreverán.

¿Porqué? A pesar de que les estoy dando la clave del éxito, si piensan que su entorno es su ciudad, no verán que cualquiera de estas oportunidades están a un click de distancia.

Igual y falta motivaciónOk ya les estoy diciendo con lo que ganarán 20 veces más que cualquiera si se emplean, o con lo que pueden fundar una empresa multimillonaria.

Supongamos que nuestra motivación principal es el dinero.

Veamos esto en números.

Senior Java DeveloperUn programador experto en Java EE que son aplicaciones tradicionales para empresas gana mensualmente en promedio $34,174

Data ScientistUn data scientist promedio bajita la mano gana mensualmente solo $195,092

Es sencillo ser Data ScientistSi quieres ganar eso solo aprende esto (que no se suele dar todo en escuelas):

Big Data

Small Data

High Quality data

Behavioral targeting

Machine Learning

Reality mining

Information Extraction

Knowledge discovery

Knowledge base

Data Mining

Ontologies

Ontology-based IE

Ontology learning

además ...

y también ...Semantic Annotation

Terminology extraction

Data Archaeology

Semantic Web

Sentiment analysis

Opinion Extraction

Opinion Mining

y luego ...Text Mining

Corpus linguistics

Computational Linguistics

Computational Psycholinguistics

Natural language processing

Automatic summarization

Coreference resolution

y sumemosle ...Discourse analysis

Questions and Answering

Machine translation

Data warehousing

Morphological segmentation

Deep Learning

Signal processing

y ya para acabar ...Pattern recognition

Data processing

Data management

Latent Dirichlet Allocation

Topic Modeling

Data visualization

etcetera ...

Parecen muchas cosas, pero ¿si o no en menos de un año de estudio por tu cuenta te vuelves experto en todas y cada una de ellas? Seguro que sí.

Y para ser experto solo ten trabajo de evidencia que mostrar aunque sea en proyectos personales.

De nuevo te estoy dando una fórmula muy sencilla del éxito.

¿Acaso alguien se atreverá?, Espero el día de mañana alguien de ustedes me contacte y me diga “Soy data scientist en XXX parte del mundo”

No es sarcasmo de verdad es fácil

Si tu motivación no es solo el dineroEntonces te tengo más noticias buenas para tí.

Si los retos son tu motivación, entonces llegarás aún más lejos, ¿Cómo?

Un reto implica hacer algo que nadie ha hecho y que no tienes en que basarte, el lograrlo depende 100% de ti.

¿Suena emocionante no?

Si tu respuesta es no, seguramente tendrás resultados antes vistos, si tu respuesta es sí, seguramente tendrás resultados nunca antes vistos.

Pero hay que saber algunas cosas antesLos humanos dejamos de evolucionar hace mucho tiempo, las computadoras evolucionan constantemente, por lo que.

Las computadora cada día nos superan más. Ya contamos con computadoras que razonan y computadoras 3 veces más poderosas que nuestro cerebro.

Nuestra labor actual “No es crear programas”, es empoderar a las computadoras para que resuelvan nuestra vida y atiendan a los demás.

Una computadora es una ayuda, si hace mejor lo que antes hacíamos, ahora tendremos más tiempo, es por eso que debemos empoderarlas.

Lo inevitableLes resonarán mis palabras en poco tiempo, pero la visión actual de los sistemas es la tendencia de dejar de hacer programas que sean herramientas para la gente, ahora serán entes que sustituirán a la gente.

El próximo gran perfil de puesto será el de asistente de bot, el cuál se encargará de entrenar y evaluar el desempeño de programas que realizan tareas humanas para que cada vez las hagan mejor.

La singularidad es inevitable y es muy probable que nos toque verlo en vida.

Bot DeveloperEl App Developer poco a poco dejará de ser atractivo para las empresas y se enfocarán en programadores de bots, porque no hacen herramientas que ayuden a la gente y la empresa siga pagando las mismas cantidades de sueldos, en vez de eso pagarán por bots que reemplacen gente y paguen menos sueldos.

Esto es hoy una realidad, mucho de mi trabajo actual es ese ….

Y seguro muchos se preguntarán ¿Y dónde aprendo eso? y mi respuesta sigue siendo NADIE te lo enseñará, no es algo estándar que se aplique 2 veces igual. Debes investigar por tu cuenta y llegar ese conocimiento, solo necesitas saber programar.

Algo más que deben saberLa inteligencia artificial tuvo muchas expectativas hace años, pero no había ni los algoritmos ni la capacidad de cómputo para demostrar su potencial.

El día de hoy son un hecho, solo que nos hemos dejado de sorprender al eventualmente irse presentando en nuestras vidas como por ejemplo las sugerencias de Google nos fueron “preparando”.

Pero hay algo que muchos no saben y por eso piensan que la inteligencia artificial es dificil, y es que “no hay reglas en la inteligencia artificial”. Si haces algun algoritmo que tenga tu inteligencia plasmada para resolver algo, eso es inteligencia artificial. No es aprender modelos que solo aplican a casos muy específicos.

El problema no se ajusta al código.

¿Qué hay más allá?¿Vieron como solo exploramos una rama del Hype Cycle y se derivaron muchas actividades que hacen programadores y que no son Mobile, Desktop, Web y Embedded?

Si exploramos cada rama descubriremos cientos o miles de habilidades que están siendo altamente demandadas (tal vez no en nuestro entorno cercano) que son muy bien pagadas y hay muy poca gente capacitada en el mundo para cubrirlas.

¿Si o no sabiendo el futuro es un atajo fácil para emprender o para posicionarnos como líderes en una rama de nuestro interés?

¿Quieren más ejemplos?

Algo de lo que hay más allá¿Porque no programar computadoras cuánticas?, ya varias instituciones tienen y no hay quien las programe.

¿Porqué no programar computadoras cognitivas? funcionan igual que nuestro cerebro y no hay quien las programe.

¿Porqué no programar entes que reemplacen actividades humanas? Los bots han dejado de ser aplicaciones que navegan y se libran de los CAPTCHAS y ya suplen labores humanas complejas.

¿Porqué no hacer asistentes que cumplan tus deseos? A los bots ya no les cuesta trabajo tener interacción con humanos.

Algo de lo que hay más alláSomos de los pocos países donde los Drones ya son legales y regulador por la ley, ¿Porqué no ser el primer gran proveedor de servicios de Drones?

Ya sabemos entender lo que dicen los animales y las plantas ¿Porqué no hacer sistemas de traducción?

Ya es posible modificar epigenéticamente el material genetico por medio de medios electromagnéticos, ¿Porqué no crear software que carge paquetería nuevo material genético en las especias de forma remota?

¿Porqué no controlar todo lo que nos rodea con nuestros pensamientos?

Algo de lo que hay más allá¿Porqué no crear entes que sientan y expresen sus sentimientos? La computación sentimental está más avanzada que núnca, es muy sencillo hacen un robot que ame.

¿Porqué no extender las capacidades de tu cuerpo con dispositivos de human augmentation? Los primeros prototipos del Human 2.0 ya son una realidad.

¿Porqué no programar un satélite que nos alerte de factores que nadie considera? Es barato mandarlo al espacio.

¿Porqué no crear una nueva especie? Ya hay lenguajes de programación de genes donde con biología sintética créas nuevos seres vivos.

Y sin duda la pregunta más importante¿Porqué seguir haciendo aplicaciones Web, Mobile, Desktop y Embedded? Si hay un mundo entero allá afuera que no está competido y que encierra grandes y emocionantes retos.

Que no le veas implementación en tu entorno físico no es una justificación para que no cambies el mundo

GraciasLa presentación la voy a subir a mis redes sociales:

http://facebook.com/

carlos.toxtlihttp://google.com/

+CarlosToxtli