¿Cuántas veces no has dicho esto joven universitario? Muchas veces cuando estamos en la universidad nos sentimos atrapados o sentimos que no nos están dando las habilidades necesarias para aprender y saber que saliendo podemos empezar a trabajar de buena forma, muchos de estos sentimientos vienen dados por materias que no están relacionados con el campo de la tecnología y que a nuestros ojos son “de relleno”, que pensamos que no las utilizaremos jamás, ¿quién en su sano juicio va a usar derivadas e integrales para programar?, ¿Estudio Socio-económia ?, quiero ser programador, no economista.
Pero déjame decirte algo, la universidad no te va a enseñar todo lo que vas a necesitar para desenvolverte en el ambiente laboral, mucho menos en la carrera de Tecnologías de la Información, donde cada mes sale algo nuevo y cada año se están cambiando las formas de crear tecnología, así que debes hacer algo si realmente quieres aprender y empezar bien en esto.
He escrito unos tips que me he aprendido en lo que llevo programando y realmente espero que les sea de ayuda, ahora que estás en la universidad es una excelente oportunidad para ir agarrando experiencia aún sin antes siquiera pisar una empresa.
Toma la educación en tus manos
Si sientes que no estás aprendiendo lo que realmente quieres, entonces es hora de que tomes la educación en tus manos. Una de las ventajas que tenemos es que ahora vivimos en una época donde la información está disponible en la internet. Prácticamente puedes aprender a programar desde cero con un montón de tutoriales, blogs, páginas, libros gratis, en fin.
Uno de los lugares que recomiendo para los que aún están empezando es Codeacademy, un sitio donde puedes aprender a programar en lenguajes como Javascript, Python, Ruby y aprender maquetación web con HTML y CSS, a parte de que hay otros sitios donde puedes tomar cursos, y aunque son de paga, valen la pena.
Cabe destacar que la mayor parte de la información más actual está en inglés, así que aprovecha tus clases y practica mucho, si, aunque tengas que hacer un video musical.
Aprende un sistema de control de versiones
Esto lo pongo, porque me he topado con personas que guardan su código de su programa en carpetas, luego hay un accidente y perdieron todo su trabajo, además de que no pueden ver qué cambios han realizado, y peor si tienen varias versiones del mismo código, ahí te vez con carpeta como version1, version2, version2_buena, version_buena_buena, version_esta_si_es_la_buena.
¿Pero qué es un sistema de control de versiones? Un control de versiones es un sistema que nos ayuda a llevar un control de nuestro código, en él podremos ver los cambios que le hemos hecho a nuestro archivo, volver a un estado anterior, crear varias versiones, y en caso de desastre, podemos tener una copia guardada en un servidor y recuperarlo.
Hay muchos sistemas de control de versiones, pero el más popular es Git, además de ser popular, es fácil de aprender y poderoso, por lo cual recomiendo que lo aprendan, también existe Mercurial que es parecido a Git aunque menos popular. Eso si, no te acerques a Subversion, es cosa del diablo, y entre menos hablemos de él, nuestra alma nos la agradecerá.
Un buen lugar para aprender Git es el libro de Pro Git, que se encuentra en internet gratis y puedes comprar el libro si deseas apoyarlo, está en inglés pero hay traducciones en español, aunque no se si está actualizado.
Crea una cuenta en Github (y Bitbucket)
Una vez que en el punto anterior hayamos aprendido Git, es hora de crear nuestra cuenta en Github. Github es como una red social para los programadores. Github y Bitbucket son servidores de repositorios donde puedes guardar tu código y mostrarlo al mundo, también sirve como copia de seguridad si algún día pierdes tus archivos de código.
La diferencia entre Github y Bitbucket es que en Bitbucket puedes crear repositorios privados, por lo cuales solo tus los verás, en Github si quieres hacerlos privados tiene un costo, pero Github es más conocido y prácticamente es el sitio de facto si quieres mostrar tu código.
Es muy importante que crees tu cuenta porque así contribuyes y das a conocer tu trabajo, muchas empresas te piden tu usuario de Github para checar cómo escribes tu código y puedan ver tu experiencia, aunque tal vez ahora no hayas hecho muchos programas grandes, es bueno que los subas y compartas, vete acostumbrando porque lo estarás haciendo durante mucho, mucho tiempo.
Crea una cuenta en Stackoverflow y aprende a usarlo
Y aquí tenemos otra red social para programadores, pero esta vez más enfocado a resolver problemas, ¿cómo funciona esto?, simplemente un usuario tiene alguna duda o está atorado en un programa, entonces escribe su situación y espera a que otros programadores puedan ayudarlo, si tu tienes un problema, lo más probable es que otro usuario también lo tuvo y preguntó aquí y obtuvo ayuda, así que puedes intentar implementarlo en tu programa.
Una cosa si quiero advertirte, este sitio está muy moderado, si hay alguna pregunta que haya sido contestado antes y tu tienes una similar, lo más probable es que te cierren el tema y te den el link de la pregunta similar, esto aunque puede sonar rudo, pues si lo es, pero ha ayudado a que se formulen mejores preguntas, y créeme, más que nada utilizarás este sitio para encontrar esas preguntas que sean similares a las dudas que tienes y ahí puedas encontrar la luz en el camino a la solución de tu problema. Así que date una vuelta por ahí y ve viendo cómo se maneja, una cosa muy buena es que si tu respondes a una pregunta y te califican como buena, ganas puntos que puedes canjear por más ego, así que si quieres tener más ego, aprende y ayuda a los que tienen duda.
Instala Linux y aprende a usarlo
¿Qué cosas dices? ¿Instalar Linux en mi maravillosa Compaq Presario? Pues si quieres aprender más acerca de programación te recomiendo que lo hagas. Aprender y usar Linux te puede enseñar más en un mes sobre computación que más de 4 años usando Windows, lo digo por experiencia. ¿Pero por qué instalar Linux? Básicamente porque, al menos que solo programes .NET o iOS, en Linux puedes utilizar prácticamente las tecnologías más modernas sobre desarrollo como NodeJS, Django, Ruby on Rails, Go, AngularJS, y aunque pueden trabajar en WIndows, la experiencia que tienes instalando todo en Linux y leyendo la documentación es invaluable.
Una de las cosas que debes aprender a usar es la terminal. Si, esa cosa negra que está en la pantalla y que solo escribe letras y no puedes ver Facebook ahí, aprender a usar la terminal te da un sin fin de oportunidades y poder, además que acostumbras a tu mente a ser más analítica y a ordenar mejor tu entorno. Con la terminal puedes hacer cosas que con la interfaz de usuario es muy difícil o a veces imposible de hacer.
No es necesario que elimines Windows si no lo deseas, puedes instalarlo en la misma computadora, y es muy fácil, y para eso tienes que leer y empezarás a descubrir un mundo nuevo.
¿Qué distribución de Linux recomiendo? Yo diría que Ubuntu o Linux Mint, son fáciles de instalar y hay mucha documentación en internet, si vas a preguntar, encontrarás muchas peleas entre fanboys de distribuciones, tu no hagas caso, usa la que quieras y te sientas más cómodo, vas a ver que probarás muchas por el gusto de aprender y te quedarás con la que más te guste.
Por cierto, si usas Mac no es necesario que instales Linux en la computadora, ya que OS X es un sistema tipo Unix por lo cual tienes el mismo poder que con Linux, aunque si te recomiendo que instales máquinas virtuales para que en caso de que uses servidores remotos no estés perdido.
Aprende una tecnología nueva y úsalo
Generalmente en la Universidad te enseñan Java o C#, a veces C o C++, si eres de los que están en esas situación, aunque aprender esos lenguajes es muy bueno y ayuda a tener un poco más de rigor cuando empiezas a programar, el mundo moderno de la programación se está enfocando a otros lenguajes.
Javascript está agarrando mucho potencial ya que se están creando Frameworks y motores que hacen que programar en Javascript ya no sea tan penoso como hace algunos años, incluso puedes programar del lado del servidor con NodeJS.
Python, un lenguaje maduro y que ahora es de los más usados en la enseñanza en las Universidades de Estados Unidos, además de que es fácil de aprender y con Frameworks como Django y Flask puedes programar un backend confiable y seguro.
Ruby es parecido a Python aunque con filosofías diferentes, Ruby on Rails es el competidor directo de Django, por lo cual depende de cual te guste más para escoger uno.
Objective-C es bueno aprender si quieres programar aplicaciones para iOS y aunque la desventaja es que es necesario una Mac, pero si la tienes o puedes comprar una Mac mini es uno de mis lenguajes favoritos.
Java para Android, no el Java Enterprise, programar para Android es diferente que hacerlo para aplicaciones de escritorio o web y es la mejor forma de usar Java, al menos para mi.
Lee acerca de las nuevas tendencias, escoge a cual te quieres enfocar más y elige y empieza a practicar.
Practica, practica y practica
Una de las cosas que debes hacer es practicar y escribir mucho código, No importa si lees un montón, si no te pones manos a la obra jamás vas a aprender. Empieza a escribir código aunque no entiendas del todo para qué funciona, has todos los ejercicios y ejemplos de los tutoriales y libros que leas, practicar es la única forma que tienes para aumentar tus habilidades.
Al escribir código vas a ir agarrando habilidad y cada vez vas a poder aprender más la sintaxis de un lenguaje y resolver los problemas más rápido, además de que puedes aprender otro lenguaje más rápido.
Según la regla, se necesitan unas 10 mil horas de práctica para ser excelente en algo, así que manos a la obra y a escribir código.
Ve a conferencias y reuniones de programación, intégrate a la comunidad
A pesar del mito de que los programadores son solitarios por naturaleza y la evolución ha hecho que seamos ermitaños está cayendo, no debes olvidar que gran parte de los avances de la tecnología se deben a que se conjugan varias personas con ideas e inspiración.
Ir a conferencias e integrarte a las comunidades de emprendedores, programadores, etc te ayuda a expandir tus horizontes, a hacer networking y compartir tu gusto por esta área. Si tienes la oportunidad de ir a una conferencia no la desaproveches, siempre hay algo nuevo que aprendas, muchas veces te pueden dar la inspiración o el empuje que estabas buscando o te dan una guía para ir por el camino que quieres.
También es bueno que aportes a la comunidad, escribe blogs, comparte links, ayuda a quien te pregunta, mucha de estas actividades complementan tu aprendizaje, no todos somos iguales, ni todos pensamos los mismo, por lo cual alguien puede sugerir algo que en tu vida pasó por tu cabeza, y ahí está otra forma de aprender.
La universidad es única, aprende a valorarla
A pesar de que el título sugiere que la Universidad no te ayuda mucho, en realidad ser parte de una Universidad es una gran forma de aprender.
Estar en la universidad te ayuda a conocer más personas a fin a tus gustos, además cuentas con maestros que te ayudan a resolver las dudas, tienes una variedad de actividades que no solo es programar, si no que te ayudan a practicar otras habilidades sociales y culturales que es bueno aprender.
Estar en la Universidad también te da muchas ventajas, tienes descuentos en productos de software, dispones de laboratorios, aprendes otros conceptos, puedes ir a conferencias que sean organizados por la universidad, incluso participar en ellas. En fin, el que no te enseñen lo que quieres no quiere decir que sea inútil, la universidad te enseña los fundamentos, está en ti construir tus conocimientos con base en lo aprendido y tus ganas de saber más.