arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Programar es importante. ¿Por qué?

Uriel Hernández

CTO de Código Facilito

av_timer 9 Min. de lectura

remove_red_eye 63284 visitas

calendar_today 06 Noviembre 2015

Hace tiempo estuve en una presentación de proyectos universitarios en el World Trade Center de la Cd de México, exponía qué era Código Facilito y de la importancia que tendría saber programar en el futuro... hubo gente que escuchó atenta, algunos se emocionaron, otros ya conocían el proyecto y algunos otros me dijeron frases como "De códigos yo ya tuve suficiente".

Empíricamente siento que la programación es una cuestión de te gusta mucho o no te gusta nada, no creo en blancos y negros pero si es que hay grises, están muy cerca de ambos extremos... lo que quiero decir es que o te gusta mucho, o en realidad no quieres hacerlo.

La programación es una actividad interesante, en términos de trabajo, vivimos en una burbuja donde no existe desempleo, los trabajos son bien remunerados, las oficinas son épicas, hay una esfuerzo importante (aunque quién sabe si suficiente) por construir diversidad, una cultura de trabajo agradable, inclusión y otras cosas interesantes. Es una burbuja porque muchas otras carreras no tienen las mismas facilidades, empezando por las carreras donde la oferta sobre pasa la demanda como ser maestro, contador, doctor y similares; se gradúa tanta gente que no hay suficientes trabajos para todos; están también las carreras under que simplemente no tienen demanda, o si existe te pagan muy poco (a pesar de que muy probablemente tengas una carrera universitaria). Los trabajos así están en una posición complicada porque existen tantos posibles trabajadores y tan pocos trabajos que los empleadores no se preocupan por construir un puesto de trabajo ideal, simple y sencillamente porque mucha gente está dispuesta a tomar lo que sea.. ¿cultura laboral? pfft! ¿quieres el trabajo o no?... 200 dólares al mes, tómalo o que venga otro.

Por qué tanta demanda

Ahora, todas las compañías son compañías de software escribe Forbes en un artículo. Lógicamente las empresas que solo son software son empresas de software, es decir, aquellas cuyo único valor es lo que un conjunto de archivos de código generan (Snapchat, Facebook, Instagram etc), existen otra que no necesariamente solo poseen software, poseen bienes físicos pero el core es una pieza de software (Uber, Netflix), y existen las que el core es algo que no tiene que ver con software, pero que claro, guardan y procesan información a través de sistemas que les ayudan a mejorar su negocio, en esta última categoría tenemos el uso de sistemas de inventario, de punto de ventas, de asistencia, etc.

Con el creciente surgimiento de startups que entran y cambian industrias tradicionales (Uber, Airbnb, Netflix por ejemplo), muchas empresas notan el impacto que la tecnología puede tener para mejorar la experiencia de usuario, mejorar las ventas, improvisar el rendimiento de sus empleados y sus bienes. Esto genera mayor demanda de software y claro una creciente demanda de programadores.

El problema es que los problemas que enfrenta la tecnología actual (manejo de millones de datos, procesamiento de datos, inteligencia artificial, data minning, machine learning, business intelligence, millones de visitas) son desafíos complicados que requieren de expertos en diferentes campos del desarrollo de software, no requieren gente que entienda una que otra línea, o con poca experiencia en el desarrollo de aplicaciones, requieren gente con experiencia resolviendo problemas nuevos o grandes, gente con conocimiento de cómo funciona una computadora a fin de aprovechar sus recursos al máximo, requieren gente que pueda optimizar programar y crear código mantenible... el porcentaje de gente que cuenta con ese nivel con respecto de todos aquellos que saben algo de programar es muy pequeño, es decir, existe mucha gente que sabe programar pero que no puede cubrir una vacante de desarrollador de software en una empresa importante.

La combinación de una alta demanda de software y una poca oferta de desarrolladores con las habilidades necesarias para los desafíos del presente resultan en:

  1. Muchas ofertas de trabajo
  2. Salarios altos para atraer al talento top
  3. Compensaciones extra para atraer al talento top (Lunch gratuito, gimnasios, entretenimiento en el trabajo, acciones de la empresa)
  4. Que las empresas se preocupen no solo por dar salarios altos, si no por construir espacios de trabajo en los que sea atractivo trabajar, más allá de solo el dinero (esto es épico).

Todo eso porque claro, todas las empresas quieren acceder al mejor talento.

Por qué hay tan pocos programadores preparados

Esta es una pregunta válida, ¿por qué hay tan pocas personas que puedan cubrir las vacantes si el salario es bueno y las oficinas épicas? La razón, en mi opinión, es que para poder tener el nivel necesario para uno de estos empleos, necesitas invertir un número importante de horas programando y desarrollando aplicaciones; y para invertir ese tiempo preparándote realmente tienes que sentir gusto (al menos, no digamos pasión) por lo que haces, a mucha gente programar les parece aburrido o complicado.

En todo el mundo hay un número importante de universidades que ofrecen carreras afines al desarrollo de software, hay muchos alumnos que se inscriben a esta clase de carreras, pero de esos, es casi seguro que solo 1% - 5% estarán preparados para un trabajo top, ¿por qué? porque son estos los que van a invertir el tiempo extra clase para prepararse, y es que como toda habilidad, la programación es una que se domina de la práctica; ser buen programador significa habilidad para solucionar problemas, para identificar errores y para escribir soluciones óptimas aprovechando una serie de cosas a las que llamamos algoritmos, estructuras de datos y así; estas habilidades se adquieren escribiendo mucho código, creando cosas, desarrollando productos. Uno solo invierte tiempo en lo que le gusta u apasiona (a menos que seas muy disciplinado).

De códigos ya tuve suficiente.

Tengo un problema al escuchar a mucha gente que estudia ingenierías computacionales rehuir a la programación... es como si quisieras ser doctor pero no te guste operar, puedes vivir así, pero no estás peleando por los trabajos top, no estás buscando lo mejor... (disclaimer: no soy doctor así que tal vez mi analogía no sea la mejor), es solo que los mejores trabajos son de programar, claro que están los de dirigir proyectos, CTO y similares, es decir, de jefe, donde claro que ganas más, pero ¿adivina? necesitas haber participado en proyectos para poder liderar proyectos.

Aquellos a los que nos gusta programar, equivocadamente, solemos tener la actitud de ¿qué hace aquí si no le gusta programar?, está mal, claro, pero es una idea de cierta manera realista, porque como comento antes, los mejores trabajos son para esa habilidad, la demanda es por esa habilidad.

Mi opinión es que no es solo una cuestión de si te gusta o no, si no de cómo nos enseñan a programar en la universidad (disclaimer: yo estudié una carrera, la completé y no cambiaría esa preparación), el problema es complicado porque en la universidad nos enseñan a programar con herramientas que nos enseñan a entender cómo funciona esto de programar, eso está bien, el problema es que esos lenguajes son aburridos, los primeros programas que escribes se ven así:

Ciertamente una pantalla negra con opciones en texto no suena divertido, no lo es, a algunos les gusta, y les apasiona ver a la computadora imprimiendo lo que te dicen, generalmente son estos los que se apasionan por programar... el problema es que muchos somos visuales, de la vista nace el amor.

Normalmente no es hasta la mitad de la carrera cuando empiezas a ver cosas relacionadas a páginas web (que son más visuales), para ese momento mucha gente ya hizo su opinión sobre lo que es programar, una pantalla negra aburrida que muestra texto, o peor aún, mucha gente ya ni está en la carrera para ese momento. Esta razón explica porque cursos com Mi Primera Página Web son necesarios, en ese curso no tenemos vídeos explicando qué es HTML, o qué es un ciclo, o qué es una base de datos... simplemente usamos todo eso en construir algo, BUM!, cuando terminas el curso ya puedes presumir, ¡hey miren esto, yo lo creo! y se ve bien, y la gente se asombra, y tú te motivas.

Imagina tú tratando de presumir esto:

Esta es la reacción que vas a recibir:

¿Por qué? Porque la gente no suele emocionarse con el hecho de que una computadora te está obedeciendo, no saben ni lo que hay detrás de que la computadora imprima texto, no lo saben y como dicen, lo que se ignora se desprecia, es like meeh! ¿y eso qué? ¿qué hace? ¿dónde se mueve? ¿con qué se come?

Eso no es lo mismo que ¡hey! mira esto, es la página que hice para mostrar mis pokemons favoritos o, checa esta página, tiene todos los capítulos de Dragon Ball, o ¡hey! este es mi blog sobre fútbol, sobre danza, sobre música, esta es mi página para vender hot dogs, tortas, yo qué sé, algo que te apasione.

Uno de los problemas de incluir a nuevas personas en la programación es cómo se les está motivando y cuánto están tardando en encontrarle uso a lo que se les está enseñando, entre más pronto le encuentren uso o diversión, más pronto se motivarán, más pronto comenzarán a hackear solos y más pronto se convertirán en programadores capaces de cubrir un trabajo épico.

Qué hay que hacer (si ya estoy aprendiendo a programar)

Asiste a hackathones, asiste a pláticas, asiste a eventos de programación, ve a startup weekends, convive con otros programadores, aprende lenguajes que no te enseñen en la escuela, crea proyectos de algo que te guste (vídeo juegos, futbol, basketball), no dejes tus proyectos a la mitad, terminales, súbelos y compártelos con tus amigos (presúmelos).

Hackea por gusto, sí está bien que en la escuela te pidan crear el algoritmo de un dinosaurio (neta a mí me pidieron esto en la universidad), pero no te quedes con eso, preocúpate por cosas que te motiven, piensa en cosas en donde lo que sabes podría aprovecharse y aplícalo, diviértete, piensa en que ser programador es ser inventor, es crear e inventar cosas.

Busca hacker spaces, investiva del movimiento maker, del do it yourself, compra un arduino (sigue el curso de arduino) y hackea tu cafetera, crea cosas inteligentes, controla tu puerta con el celular, o riega tus plantas con una llamada desde tu página web.

Diviértete.

Qué hay que hacer (si no sé nada de programar)

Inténtalo, hay muchos movimientos que buscan iniciar programadores en la industria, recuerda, aquí hay empleo, hay buenos salarios, hay oficinas cool, hay desayunos gratis... aquí puedes llevar a tu perro al trabajo, aquí puedes beber una cerveza mientras programas, aquí no hay horarios restringidos, aquí a veces tenemos fines de semana de 3 días, hay muchos beneficios que valen la pena como para que pruebes que es esto que llaman escribir código.

Sí, programar no es todo diversión, muchas veces programar es estar arreglando errores, detalles pequeños, programar a veces significa que en varios días trabajas en algo que ni se ve, porque simplemente algo está fallando y nadie sabe qué... programar es difícil (a alto nivel), programar requiere que sepas estadística, a veces matemáticas (pero no siempre, puedes iniciar y ser bueno sin ser un genio de las matemáticas, este es un mito), programar no es un trabajo más (si es que vives de esto) y puede generar estrés.

Programar también puede ser un hobbie, ¿no sería cool que esa cafetera vieja que tienes pudiera ser controlado con tu celular? Lo puedes hacer tú mismo... ¿no sería cool implementar una página web para tu negocio? ¡Lo puedes hacer tú mismo! No necesariamente tienes que vivir de programar, solo puede ser otra habilidad para divertirse, para mejorar tu calidad de vida.

Programar puede mejorar tu trabajo, aunque no te dediques a programar... ¿recuerdas esa horrible hoja de excel que tienes que llenar con acciones repetitivas? Iugh! Chispas de código pueden cambiar eso y ahorrarte todo ese tiempo... básicamente casi todo lo repetitivo que haces en la computadora puede ser automatizado con código... ¡inténtalo!

¿Ya te animaste? Tenemos este curso al que llamamos Nunca he programado que es perfecto para ti (Spoiler: Terminarás creando una aplicación para android).

Conclusión

Me ocupa escribir de esto, me ocupa invitar a otros a aprender a programar... porque hay buenas cosas, porque a mí me divierte, me apasiona... entiendo que no sea para todos, eso está ok, entiendo que no todos vayan a ser ingenieros, pero inténtalo.

Inténtalo porque no solo se trata de tener más ingenieros, se trata de que si quieres ser futbolista, doctor, agricultor o lo que sea, puedas mejorar tu trabajo con código como todas las empresas lo hacen, se trata de diversificar el prototipo de programador, necesitamos todo tipo de gente, de todos colores y sabores que construyan la tecnología del futuro.

Si el mismo tipo de personas programan, el mismo tipo de problemas serán resueltos... like, no necesitamos otra app para recolectar los eventos locales, necesitamos mejorar otras cosas, nuevas.

Si coincides conmigo, no dudes en compartir el artículo y compartir tu opinión en los comentarios.