¿Qué proyectos hago para crecer como programador/a?
Este no es el típico artículo dónde te muestran 5 proyectos (que tooodos hacen) para agregar a tu portfolio y punto. De esos ya seguro viste un montón. Este es un artículo que esperamos cambie tu forma de programar en tu tiempo libre, que te permita crecer como programador/a y te ayude a mostrarte mejor ante los recruiters IT para encontrar el trabajo que querés.
A esta altura ya debes comprender la importancia de tener que destacarse, de alguna forma, en este mercado IT que en los últimos años ha recibido a una gran cantidad de nuevos programadores y de contar con un portfolio adecuado para conseguir aspirar a los mejores trabajos en programación o, por qué no, empezar a conseguir clientes como freelance.
Todos los programadores junior se inician desarrollando las típicas aplicaciones para aprender » Una calculadora » un to-do app » un CRUD básico de stock. Puedes encontrar infinidad de repositorios en GitHub y GitLab con estos. Pero cómo diferenciarse?, aquí tienes uno de los primeros tips. Si querés acelerar tu carrera profesional, te recomendamos hacer un portfolio orientado a negocio. Tienes que hacerte la pregunta ¿En qué sector me gustaría trabajar dentro de IT? Veamos un ejemplo: si quieres trabajar en el sector de turismo, ¡no pierdas tu tiempo haciendo proyectos relacionados con cualquier otra cosa! Si te gusta el sector, ya conoces las principales aplicaciones web, sus funcionalidades, etc. y seguro que conoces cosas que se podrían mejorar. Pues ya tienes ahí una idea muy potente para tu portfolio. Haz una aplicación web que mejore funcionalidades ya existentes en el mercado. Y acabar teniendo aplicaciones web como esa en el porfolio, por supuesto, te va a facilitar mucho la posibilidad de entrar a trabajar de forma profesional en el sector.
Cuando piensas en desarrollar una web app o mobile orientada a negocio, es muy fácil creerse que vas a hacer la próxima + «insertar aquí la aplicación de moda» y la realidad es que no. No es tan fácil ahora entrar en los mercados como cuando Mark Zuckerberg creó Facebook y las grandes aplicaciones no las crea una sola persona, sino equipos. Además el mundo del emprendimiento requiere unas habilidades tremendas, tiempo y/o dinero. Por muchos otros motivos mas, no puedes pensar (en un principio) que te vas a forrar en guita porque tu aplicación web o móvil va a ser genial y Google u Oracle te van a ofrecer comprarla.
Por tanto, la pregunta no es «¿Qué web app puedo hacer orientada a negocio que me vaya a permitir ganar mucho dinero?» sino «¿Qué web app puedo hacer de forma realista que aporte valor con los recursos que tengo?«. Y vamos a poner un ejemplo. Supongamos que te encanta Despegar.com y se te ocurre que te encantaría trabajar en una empresa de ese estilo, desarrollando sus aplicaciones web y multiplataforma. Y consideras que hacer un clon de Despegar.com con sus mismas funcionalidades es buena idea. Error. Además de ser algo con muchos tutoriales en Youtube (“Como desarrollar un sistema de reservas”) nunca vas a poder competir con el equipo de programadores con presupuesto de millones de Despegar.com (si es que quieres crear tu StartUp de turismo). Por ejemplo, podrías hacer una aplicación web sencilla que permita visualizar vídeos de destinos turísticos que tengas en un servidor en la nube. Luego, podrías optimizar por ejemplo la calidad del vídeo y agregar publicidad aleatoria de agencias de turismo, en una versión 2.0. Y, en una versión 3.0, podrías por ejemplo, integrar un sistema de compra de paquetes turísticos con criptomonedas. “Y entonces no es Despegar.com”. Exacto. Es que no querés ser un programador más en el mercado. Quieres ser alguien que hace algo con sus propios recursos, original (tomaste algo ya existente en el mercado y cambiaste ligeramente su modelo de negocio o añadiste funcionalidades nuevas, o mejoraste errores que tiene la web app, etc.). Esto sí aporta valor y te va a dar mas posibilidades cuando postules. Hacer un clon de Despegar/MercadoLibre/TiendaNube de un tutorial de un canal de Youtube no (o no tantas, al menos). Y, además, esto es algo pequeño que puede ir creciendo poco a poco. Porque tu objetivo no es que salga al mercado y forrarte, sino hacer algo tan vistoso que una empresa te vea, te contrate y puedas negociar un buen sueldo.
No sólo va a aportar valor el resultado del desarrollo, sino también el proceso. Si es factible que hagas algunos desarrollos en equipo será mejor, así trabajas soft skills además. ¿Tenes un amigo/a que es UI/UX Designer? Genial, así tienes un diseño de interfaz mucho mejor. Seguramente usarán una metodología Agile. Entonces es conveniente que lo dejes reflejado en algún documento del repositorio las estimaciones, los story points, las releases, básicamente como se gestionó el proyecto.
Esto ya no demuestra sólo que sabes programar, sino que eres un auténtico profesional en desarrollo de software (o en proceso de serlo) y que estás acostumbrado a trabajar de la forma más parecida a cómo se trabajaría en un entorno real en una empresa de consultoría o de producto. Esto normalmente no lo hace ningún junior, así que vas a diferenciarte de tu competencia además de mejorar de forma tremenda unas soft skills extremadamente útiles en tu carrera profesional.
Y, por supuesto, si haces un proyecto de x temática, es porque te interesa, has investigado sobre ello, estás al día de las últimas noticias del sector… Esto es algo que te va a destacar de tu competencia a la hora de acceder a un puesto de trabajo en el sector que te interesa (por ejemplo, desarrollo web en el sector turismo).
Con esta metodología ya no te quedarás jamás sin ideas para hacer proyectos personales… ¿Qué hace un programador? Resolver problemas de la vida cotidiana mediante la tecnología, usando el lenguaje de programación que considere más óptimo para ello. Por tanto, ahí tenemos el primer paso de la metodología: Encontrar problemas y necesidades.
Además de las necesidades y caprichos de un sólo humano como conseguir mas dinero, tener nuevas experiencias, etc, hay infinitos problemas en el mundo: pobreza, falta de acceso a la educación, corrupción, cambio climático, resistencia de las bacterias a los antibióticos, enfermedades, etc. Tienes que empezar a observar en tu entorno, el mundo en que vivimos, y observar necesidades. Hay necesidades por todos lados. Incluso en el bar al que vas a tomarte unas cervezas y a divertirte con tus amigas y amigos tienen problemas: quieren ser más eficientes en el servicio, atraer más clientela, poder tener un sistema automatizado de pedidos online, etc.
Y aquí, es dónde entras tú como programador/a. Tus proyectos van a ir orientados a resolver problemas, de la forma más eficiente posible y ajustados lo máximo posible a lo que necesita cada potencial cliente. Evidentemente, si un problema no está solucionado a día de hoy es por dos posibles motivos.
El primero, es que realmente lo que tú consideras un problema no lo sea para la gran mayoría de la gente, motivo por el cual no hay mercado para tu solución tecnológica.
El segundo, es que sea un mercado incipiente, y ahí es dónde tú puedes aportar soluciones originales y creativas que te permitan llegar a un público insatisfecho y deseoso de encontrar soluciones para satisfacer sus necesidades.
Si puedes enfocarte en el segundo motivo lograras un portfolio potente y así poder acceder a esos puestos laborales que tanto deseas.
La creatividad es clave para dar soluciones tecnológicas a las infinitas necesidades del ser humano y la sociedad. La creatividad es un proceso psicológico mediante el cual puedes, a partir de conceptos, ideas… que ya existen, generar nuevas ideas.
La metodología para encontrar problemas es muy fácil, ya que vivimos rodeados de problemas. Con que veas las noticias o revises tus redes sociales, anotes en cualquier sitio los problemas que tienes en tu vida (que pueden ir de cosas tan importantes como conseguir un crédito hipotecario para tu primer dpto hasta cosas tan triviales como que te aburres esperando el bondi porque nunca llega) o preguntes a familiares o amigos los problemas que tienen en su vida ya lo tienes. Probablemente tendrás una larga lista de problemas. Y es que, los problemas son infinitos.
Sin embargo, los recursos y las soluciones son limitadas. Y aquí es dónde te vamos a explicar como sigue esta posible metodología para crear soluciones y desarrollar proyectos que te permitan crecer como programador.
El segundo paso es buscar las tendencias que están creciendo de forma sostenida, para lo cual puedes usar tu buscador favorito. Algunas ideas de tendencias que veremos que se harán realidad en el futuro es el uso generalizado de criptomonedas como medio de pago, el turismo espacial, la inteligencia artificial aplicada a la medicina, las aplicaciones gamificadas, etc.
El tercer paso es anotar las tendencias que mas te interesen en una lista y tratar de asociarlas con proyectos realizables en tu corto plazo. Por ejemplo, las tecnologías basadas en la blockchain (como las criptomonedas o los tokens no fungibles-NFTs) cada día están creciendo más y más, entonces. cualquier proyecto que hagas de cualquier sector (turismo, industria, agricultura etc.) unido a estas tecnologías será innovador por sí mismo, al ser un mercado emergente y aún no maduro. Otro ejemplo podría ser una aplicación web/app móvil basada en desafíos y recompensas para aquellos que cumplen x retos que ayudan a disminuir el aumento de temperatura derivado del cambio climático. Quizás puedas desarrollar una aplicación web/app móvil como red social especifica de turismo aventura que genere descuentos para los usuarios que recomiendan destinos, que comparten experiencias de sus aventuras, etc. O quizás una aplicación web/app móvil basada en gamification que genere recompensas para aquellos que cumplen x retos que ayudan a mejorar la forma física de las personas (caminar x distancia al día, correr x distancia al día, hacer x deporte x días a la semana etc.).
El cuarto paso es explotar esas soft skills desarrollando en equipo, algún amigo o amiga, compa de la facu o del curso de full-stack que les interese el proyecto y también les sirva como experiencia y sus propios portfolios.
El quinto paso A PROGRAMAR!!!
Autoría de El Profe Matías, revisión por @nachichuri, @jedux.