A menudo tengo que entrevistar universitarios, candidatos a becas como desarrollador en las mejores aceleradoras de Startups tecnológicas en España. Recientemente entrevisté a 40 aspirantes en 2 días. Ha sido agotador, pero también muy interesante y... preocupante.
Lo que me llamó la atención, fue el hecho de que los chicos salen de la Universidad, casi sin excepción, con un conocimiento de programación muy limitado y estrecho, que encima es el opuesto del que necesitan para sacar adelante los aspectos técnicos de una startup.
Carne de Cárnicas
Todos, casi sin ninguna excepción, salen conociendo única y exclusivamente Java. Me llamó la atención esta insistencia en un lenguaje en particular, hasta que entendí lo que estaba pasando: las universidades españolas están preparando a los futuros informáticos para el mercado laboral español y la peculiaridad que lo caracteriza: los principales empleadores son las grandes consultoras.

En dichas consultoras no se desarrollan productos, se presta servicio y apenas se asumen riesgos tecnológicos. Se trabaja con equipos enormes en los cuales los programadores individuales juegan un papel casi de "comodity". Java es un lenguaje diseñado precisamente para este tipo de entorno.
La Galera y la Trainera

Crear software es como mover un barco, se puede hacer principalmente de dos formas:
- Una galera con 100 galeotes remando a latigazos
- O una trainera con un líder y un grupo pequeño y motivado de excelentes remadores.
Ni qué decir tiene, que la startup encaja en el segundo grupo. Es decir, hemos dedicado años a formar galeotes y ahora necesitamos que cumplan un papel totalmente distinto, para el cual no están todavía capacitados.
No hay un lenguaje de programación mejor que otro (aunque los que trabajan con Cobol, tal vez sean de otra opinión). Cada uno ha sido diseñado para una tarea u otra, y el error está en empeñarse en usar uno para una tarea para la cual no es óptimo.
Aunque el mago es lo más importante, la "varita" (sea del tamaño que sea) también es vital, especialmente en entorno de vida o muerte, como son las etapas iniciales de cualquier startup.
Hay que "superar los promedios" para desarrollar para Startups
Si aun no lo conocéis, recomiendo leer un clásico sobre este tema escrito por Paul Graham, co-fundador de YCombinator y uno de los más renombrados inversores de Startups en Silicon Valley: "Beating the Averages, por Paul Graham". Lo podéis leer también en español "Superando los Promedios".
Paul relata su experiencia con ViaWeb, su primera startup que le llevó al éxito y describe de manera brillante el porqué la elección de la tecnología adecuada es clave para el éxito de una startup.
Apisonadora versus "Mountain Bike"
Java es como una apisonadora y, para apisonar, hay pocas cosas mejores. Sin embargo, las startups en las que se van a integrar estos conductores de apisonadoras, si son realmente innovadoras, necesitan una "mountain bike": tienen que ser ágiles, cambiar de dirección en segundos y sortear todos los obstáculos. Y si no son innovadoras y usan las mismas herramientas que las grandes empresas, obtendrán un resultado promedio; y el resultado promedio de una startup es la muerte.
Estos chicos tendrían que estar listos para manejar las herramientas de software que son óptimas para la carrera de obstáculos a vida o muerte que es el día a día de una startup. Actualmente entre estas están, por ejemplo, Python, Django, Ruby o Node.js para los backend web, y sobre todo iOS y Android para los productos que de verdad tienen demanda hoy. Estas son las tecnologías que se enseñan en Stanford y Coursera en cursos como Startup Engineering.
Para competir en tecnología, tanto las startups como sus desarrolladores tienen que tener las mejores herramientas posibles. Los nuevos desarrolladores que forman las Universidades, pueden ser (o no) clave como materia prima que ha de impulsar (o no) el ecosistema de startups en España.
Las herramientas y la habilidad con ellas importa: dale un rodillo a Velázquez, y pintará paredes. Dale un pincel y óleos, y creará Las Meninas.

No considero que las Universidades tengan que enseñar siempre las últimas tecnologías. Este es un mercado muy dinámico y no se puede esperar que las Universidades, con toda sus estructuras burocráticas y gigantescas, sean capaces de moverse como una "mountain bike". Sin embargo, entiendo que es función primordial de la enseñanza universitaria, abrir las mentes y preparar la élite intelectual de cada sector.
No creo que eso se consiga enseñando en 2013 tan solo Java y C++ en la casi totalidad de los centros del país. Ni tampoco creo que con esa base única de conocimiento, estamos creando los futuros "Lead Developers" que necesitamos para crear en España un ecosistema de emprendimiento tecnológico competitivo y exitoso para startups de base tecnológica.
Así que si estás en la universidad, encárgate por tu cuenta de aprender nuevos lenguajes que te enseñen otros enfoques y metodologías de programación: Aprende un lenguaje funcional, como Haskell, Clojure o incluso Javascript. Aprende un lenguaje que soporte concurrencia de forma nativa, como Erlang, Scala o Go. Aprende un lenguaje con orientación a objetos prototípica como Javascript o iO. Aprende un lenguaje de script, como Python o Ruby. Aprende un lenguaje multiparadigma, como Oz. Todos dejarán su poso y ampliarán no sólo tu visión del desarrollo de software, sino tus miras como programador. Por si fuera poco, algunos de estos son tecnologías muy demandadas y muy bien pagadas, tanto dentro como fuera de España.
En última instancia, hará tu CV muchísimo más interesante que el de los demás "one trick poneys" del mercado.
Por que desarrollo "mobile"
En EEUU, ya casi no se habla de "mobile first", sino ya de "mobile only" en el entorno de startups. AirBNB, con los que he hablado personalmente en San Francisco, además de estar formando a todo su equipo en desarrollo móvil, me aseguraban que si empezasen hoy, no tendría un sitio web, ¡mas que para descargar la App móvil!
Tanto desarrolladores como emprendedores tenemos que enfocarnos siempre hacía donde se dirige el mercado y NO donde estuvieron en el pasado. Ya interactuamos un promedio de 100 veces al día con nuestro teléfono móvil y dentro de nada la casi totalidad del consumo de Internet se hará desde un dispositivo móvil. Creo que es fundamental concienciar a todo el tejido emprendedor que tenga su proyecto de base tecnológica, que es vital enfocarse en productos móviles y en las tecnologías adecuadas para startups potentes.
Es descorazonador ver a tantos emprendedores españoles creando productos web y subiéndose a la revolución de internet, cuando dicha revolución terminó hace 10 años. La de hoy es la de las Apps. Para competir en estas circunstancias, los chicos que salen de las Universidades aquí, pese su gran capacidad individual, no están preparados, y son la materia prima que ha de impulsar (o no) el ecosistema de startups en España.
Es clave actualizarse como desarrollador
En Agbo, nos hemos especializado en crear esta alternativa y formar desarrolladores precisamente en este tipo de herramientas, y llevamos más de 1000 alumnos formados dentro y fuera de España. Tenemos un foco muy claro: ofrecer formación de máxima calidad a nivel mundial en tecnologías de punta para programación y desarrollo. Hemos creado nuestra propia metodología y nos alegramos en poder decir que lo sabemos hacer, y muy bien. Os invito a que miréis lo que dicen estos casi 1000 alumnos de nosotros en LinkedIn o en Udemy (donde tenemos un curso online) o en nuestro sitio.

Nuestro curso online de desarrollo iOS, lo lanzamos hace tan solo 3 meses, y a pesar de estar en Español, llevamos 3 meses entre los 20 bestsellers de toda la plataforma Udemy. En septiembre ocupamos la tercera posición global (donde la mayoría de los cursos y estudiantes son de habla inglesa) y el éxito del curso ha sido mencionado en el Financial Times, Venture Beat e Information Week.
Pozos de petróleo en España
Recuerdo una entrevista con el director del Technion de Haifa, donde afirmaba que el porvenir de Israel estaba asegurado porque acababan de descubrir una infinidad de petróleo. Ante el asombro del entrevistador, apuntó a un grupo de estudiantes y dijo: éstos son los pozos de petróleo de Israel.
Creemos que es posible crear esos pozos en España también y en AGBO ponemos nuestro granito para hacerlo realidad. Si tienes un espirito inquieto y quieres estar en una trainera en vez de una galera sudorosa al lado de Ben Hur, ¡contáctanos!
En Aprende iOS Online | Hazte desarrollador iOS, ahora con 30% de descuento
Ver 2 comentarios
2 comentarios
antoniomeh
Hola Fernando, aunque te lo he puesto por twitter, también te contesto por aquí. No estoy de acuerdo contigo, no creo que la función de la Universidad sea formar a desarrolladores, si no dotar a los alumnos de grandes capacidades técnicas para que sean capaces de adaptarse al cambio.
Es nuestra responsabilidad formarnos en las nuevas tecnologías y estar al día de lo que se esta "cociendo" fuera. Es donde creo que entras tu en juego, tal y como dices en el artículo "Es clave actualizarse como desarrollador".
Sin embargo si estoy de acuerdo en que en la universidad se deben de ver varios lenguajes de desarrollo (Yo en mi caso aprendí C, Visual Basic, Java, Prolog, Lisp y Cobol).
Por ultimo, estoy totalmente de acuerdo con lo que dices de las "Cárnicas", no veas cuantos compañeros de trabajo tengo que no se molestan en "actualizarse".
Un Saludo.
blingbling
Ya que no se menciona, lo haré yo. La raíz de todo mal es la corrupción al otorgar proyectos. Que los contratos para realizar servicios esenciales en el país lo acaparen 4 grandes consultoras no obedece a su competencia sino al tráfico de influencias.
En ese contexto, dado que tienes asegurada la concesión de proyectos futuros, lo que queda es terminar los presentes cuanto antes y de modo que más o menos funcione, ya se encargaran luego de contratar soporte. Telefónica es un ejemplo de empresa que ha espabilado a base de bofetadas. Su I+D tiene poco que ver hoy con lo que era hace 10 años.
La corrupción no solo pone dinero en manos de quien no lo merece, también perjudica la competitividad y eficiencia.
La universidad es otro tema más. Las mejores universidades se cuestionan constantemente su forma de enseñanza, pero en la pública no existe esa motivación. ¿Porque no se entregan todos los temarios de todas las asignaturas en forma digital? ¿porque algunas clases son tan mediocres? Introducción a la programación debería enseñar paradigmas de programación, no Java.
Yo si creo que debería enseñarse programación pura y dura en la universidad porque NO ES TRIVIAL. Y porque programar no se aprende con teoría sino con práctica. Y porque hacer horas extras intentando entregar una chapuza a tiempo, no es fuente de motivación para mejorar. Y porque si trabajas con algún extranjero salido de una universidad de la Ivy League o similares, lo flipan cuando les dices que los universitarios españoles no saben programar. Son 5 putos años estudiando la carrera, y el objetivo es programar, no enviar correos a Marte. ¿Se supone que los conocimientos útiles son triviales y los vamos a aprender por nuestra cuenta? wow! just wow!