La programación está de moda. En la prensa, en las oficinas de empleo y las empresas de contratación, en las charlas entre emprendedores... Ser un programador competente te convierte en un oscuro objeto de deseo por parte de muchos empleadores y empresas.
Ante este furor, hay muchas personas jóvenes que quieren orientar sus estudios y su carrera profesional hacia el desarrollo de software. Por otro lado, existen muchos profesionales experimentados en otros campos que quieren reorientar su carrera hacia la programación puesto que han visto que por esa vía pueden tener un futuro más próspero y seguro.
Dado que siempre he trabajado en empresas de software, muchos de mis amigos y conocidos me preguntan si es indispensable tener una licenciatura en Ingeniería Informática o similar para poder acceder a un puesto de programación. Siempre les contesto lo mismo. Indispensable no es. Sin embargo sí creo que una licenciatura puede aportar muchas cosas.
Fotografía por Sharon McCutcheon en Unsplash
Un aviso importante. Ser programador no es fácil. Requiere mucho esfuerzo, mucho aprendizaje, paciencia, constancia y muchas otras habilidades nuevas cada "x" años que no voy a entrar a detallar aquí.
En muchas empresas prefieren de hecho contratar a personas que tengan experiencia trabajando como programador y eso tiene más importancia que tener o no una licenciatura. Por poner un ejemplo, si tienes 25 años de edad y 5 años de experiencia y no tienes un título universitario, tienes más opciones en un proceso de selección que si tienes una licenciatura y un año de experiencia con la misma edad.
Por otro lado, muchas personas suelen creer que solo los programadores con licenciaturas dominan los fundamentos de programación. Sin embargo, tras muchos años trabajando en empresas de software he visto de todo: desde licenciados que flojeaban en fundamentos y no aplicaban los principios básicos de programación hasta programadores autodidactas que se lo sabían todo.
Con esto no quiero decir que ir a la universidad no sirva para nada (aunque por momentos en algunos casos pienso que es una pérdida de tiempo) ya que, en una ingeniería, el conocimiento que adquieres y las líneas maestras que te dictan los profesores para ayudarte a orientarte profesionalmente es un verdadero activo. Cuando estás en la universidad, tienes tiempo para aprender muchas cosas nuevas e investigar si te gustan o no, y además tienes mucho tiempo libre para meditar sobre los diferentes campos y especializaciones. Si optas por trabajar desde esa misma edad, no te puedes permitir ese lujo y es el propio mercado el que te determina lo que tienes que hacer.
Pero, por otro lado, en las universidades también he visto mucho alumno con la habilidad de embaucar a los profesores, y mucho profesor que por no hacer bien su trabajo se dejaba llevar: exámenes que no varían en años, otros en los que estudiando los apuntes de memoria apruebas y que no te exigen pensar, asignaturas clave impartidas por personal no cualificado para el puesto, y un largo número de calamidades que hacen que las personas no salgan bien formadas. Si haces una formación técnica y saltas al mercado laboral, la exigencia en esos primeros años es mucho mayor.
Lo que sí te aporta la universidad, y no solo en licenciaturas técnicas, son estructuras mentales, ya que el tipo de materias y la forma de estudiar hacen que la mente se te configure de una determinada manera que te permite sistematizar pensamientos, ideas, conceptos y canalizarlos de una manera concreta, estándar, por así decirlo. Para la mayoría de las personas que no somos genios, este poso mental es de gran valor.
El programador a ojos de un empleador
Hoy en día cualquier empresa de desarrollo de software te dirá que le importa muy poco si un candidato a un puesto de programación tiene o no una licenciatura en el 99% de los casos. Lo que realmente valoran es lo que sabes hacer. Si vas avanzando en un proceso de selección eso quiere decir que a la empresa le importa un pimiento, así que no es motivo para ponerse nervioso ni para perder confianza. Las empresas de desarrollo software buscan perfiles que sepan escribir buen código y que tengan conocimiento de todo lo que va desde la arquitectura informática hasta el desarrollo de software. Ir a la universidad ayuda porque se te imparten estos conocimientos de una manera estructurada, pero... ¿es indispensable?: No.
Hay un 1% de casos (y menguando), especialmente en España, en los que no tener una licenciatura te descarta automáticamente para un puesto, pero cada vez se da menos en la industria del software (que tampoco está para escoger demasiado). Personalmente jamás he visto ni un caso pero sí me enterado de oídas. Los motivos pueden ser varios, pero yo lo achaco a la cultura de la "titulitis".
Una vez que has adquirido la experiencia suficiente, en la mayoría de las empresas ni tan siquiera se fijan si tienes el título o no.
Otra cosa es que a igualdad de condiciones en la lucha por un puesto, misma experiencia, mismos conocimientos, mismo nivel de inglés, etc... al final el factor decisivo sea el hecho de tener o no un título universitario.
Si no has ido a la universidad o si, siendo joven, ya has decidido que no quieres o no te puedes permitir ir a la universidad por el motivo que sea, tienes que fijarte un "temario", un plan de aprendizaje concreto a seguir para llegar a ser un profesional del software competente. Tienes la suerte de poder atajar e ir directamente al grano, centrándote solo en asignaturas y materias de ingeniería informática.
Recomendaciones finales
Aunque parezca una obviedad lo que voy a decir, por lo que he visto por ahí es necesario recordárselo a alguna gente: dominar un oficio implica mucho más esfuerzo que leer mucho sobre el tema. No se trata de solo leer, sino de estudiar, practicar mucho e interiorizar.
En el caso concreto de la programación, existen infinidad de caminos para llegar al mismo resultado, pero eso no quiere decir que todos ellos sean igual de válidos. Esto implica que, además de evaluarte a ti mismo, es casi indispensable disponer de la ayuda de un mentor con el que contrastar tus conocimientos (pueden ser una o varias personas). Lleva mucho tiempo, no es cuestión de meses, sino de años hasta adquirir la pericia necesaria para ser considerado un gran programador.
Fórmate, busca un trabajo adecuado a tu nivel de formación y sigue avanzando hasta que el puesto se te quede pequeño. La mejor forma de aprender a programar es programando. Haz ejercicios, crea aplicaciones sencillas que funcionen y vete añadiendo funcionalidad a medida que vayas aprendiendo más cosas. Contrasta esto con alguien, o analiza código de otros para ver cómo se hace (en este sentido los proyectos Open Source son una fuente inagotable).
En el mundo real la programación te pondrá a veces ante problemas muy complejos que necesitan de mucha audacia y creatividad, además de conocimiento. Acostumbra a tu mente para salir airosa de este tipo de desafíos.
Si no eres capaz de encontrar un puesto de trabajo mientras te estás formando, únete a algún proyecto de código abierto o empieza uno. Y aunque fracases o te despidan, no te rindas. Al final todo el esfuerzo se verá compensado.
Cada caso es diferente, por supuesto, y cada uno sabe sus limitaciones económicas, pero si puedes permitírtelo, cuando empieces el salario no debería ser lo más importante. Lo único que importa es la experiencia que vayas adquiriendo. Recuerda que cualquier programador con 5 años de experiencia vale más que un recién licenciado sin experiencia alguna en el mercado laboral hoy en día.
Y recuerda también que no es lo mismo 5 años de experiencia que 1 año de experiencia repetido 5 veces 😉