Un asunto muy comun que tienen muchos desarrolladores cuando estudian algun lenguaje de programación, Framework o SDK, es luego poner en practica todo lo que han aprendido.
Y es que si bien ya puedes entender las bases de tu lenguaje, lo siguiente es crear algo usandolo, así que en este video te daré una lista de 10 proyectos que puedes considerar desarrollar para poner a prueba tus habilidades como desarrollador de software y que a su vez luego lo puedas presentar tambien en tu propia hoja de vida.
En esta lista empezaré con proyectos que son muy simples y luego iremos subiendo el nivel. empecemos.
Portafolio Web
No importa si estas estudiando para desarrollador web Frontend, Backend, Data science, ML Engineer, o cualquier otra area. Algo vital que tienen muchos profesionales es una web donde resumen sus habilidades, y los proyectos que han realizado en el pasado.
Lo interesante es que un proyecto que puede ayudarte a empezar a todo esto, es justamente el crear tu propio portafolio web, aqui colocarias tus habilidades, experiencias laborales de forma resumida y tambien los proyectos que ya has trabajado con anterioridad.
Desarrollar un portafolio desde cero, es simple, solo neceistas saber bases de HTML y CSS, e incluso un poco de Javascript, asi que es un buen proyecto para emepzar a conocer el desarrollo web y tambien lo que conlleva diseñarlo, porque primero quizas vas a querer crear un wireframe de tu sitio y despues empezar a escribir el código .
Ademas tu portafolio Web sumado a tu Linkedin y Github, ya estarias iniciando los requisitos basicos que muchas veces te van a solicitar cuando apliques a algun trabajo.
Ahora por su puesto tambien hay plantillas que te dan todo esto creado pero la idea es que lo crees tu mismo, para que puedas ir familiarizandote con el desarrollo de proyectos.
En resumen proyecto facil de empezar, toma poco tiempo terminarlo, y tiene una utilidad real al momento de buscar empleo.
Todo App
Muchos de los sistemas de software actuales, desde los más grandes a más pequeños realizan unas operaciones muy tipicas que son definidas como CRUD, que viene de Create, Read, Update y Delete.
así que una buena forma de poner en práctica si has entendido el lenguje que has estudiado, escrear alguna aplicacion que use estas operaciones, y la que siempre se usa para esto es el tipico To-do App o lista de tareas.
ESta es ua aplicación donde tienes un input donde pudes instar tareas, puedes ir viendo las tareas que ya tenias listadas, tambien eliminarlas o actualizarlas.
Y en si es com un hola mundo más avanzando del desarrollo de aplicaciones, porque puede llegar a crear esta aplicación de muchas formas:
- Puedes cear una aplicación de terminal donde usando comando guarden tareas en un archivo json
- Puedes crear un formulario web en donde puedes guardar los datos en LocalStorage
- Puedes crear una aplicacion de escritorio que guarde los datos en una base de datos
- Puedes crear una App movil que guarde los datos con una API REST
y así.
De hecho en mi otro canal, Fazt Code, muchas veces cuando creo CRUDs, hay veces quien llega a mencionar que es lo mismo, pero es porque el objetivo no es la aplicacion, sino la escritura de código, porque si bien todos los crud son lo mismo, no necesariamente estan usando las mismas herramientas o tecnicas.
Tu propio Chat Especializado
Asi como ChatGPT lo usan muchas personas para responder resuestas de todo tipo, tambien es posible puedes tus propios chats especializados que sepan mucho de un tema en particular, y desarrollar tu propia interfaz de usuario en una web por a parte usando la API de OpenAI.
Para poder lograr esto solo necesitaras crear una interfaz grafica de un chat, conectar la API de OpenAI de ChatGPT y en la propia web de OpenAI puedes subir archivos personalizados para cargar datos y que cuando le preguntes al chat pueda responder en base a esos datos.
Adicionalmente tambien puedes añadir alguna base de datos de vectores como Pinecone, Chroma, Qdrant o cualquier otra, lo que tambien te permtiria proporcionarle Memoria a largo plazo al chat.
usandolo puedes cear un chat experto en:
- Educacion, quizas puedas crear un chat que enseñe temas educativos como Historia, literatura, o idiomas, o de otro determinado topico, unido a imagenes, e interacciones
- finzanzas, un chat que sea un asesor financiero o que te enseñe estrategias con herramientas actualiadas dedicadas a finanzas
- noticias deportivas, quizas pueda resumirte de forma muy efectiva de multiples origines las noticias que pueden venir en formato de audio, texto y video.
- un psicologo por chat, ofrecer asistencia para casos comunes ofreciendo juego o algunas experiencia mas amena para personas que no se animan a ir a un especialista real
la idea es ofrecer una experiencia de usuario enfocada solo en un tema y si te apasiona tal tema a ti tambien, es probable que incluso puedas llegar a monetizarlo de algun modo debido a su utilidad.
Este es un proyecto intermedio porque ya no solo es crear un Chat sino unirlo a una otras interacciones de interfaces, base de datos y servicios externos.
Esto lo puedes desarrollar con cualquier lenguaje de programacion web como puede ser Python, Javascript con Nodejs, PHP, Go, y lo puedes unir a un framework de frontend como puede ser Nextj, Nuxtjs o el que prefieras.
Ademas en cuanto a APIs puedes usar la API de OPenAI que es el mismo modelo que usa ChatGPT o tambien estan la API de Gemini, de google o Llama 3 de meta.
Tu propio Estacion meteorologica
No todo software que se crea necesariamente tiene que ser una web, un app movil, desktop o aplicacion de consola, porque otra forma de mostrar tus habilidades en código es usando Hardware.
Y yo se quizas estes pensando que no sabes nada de electronica y quizas no sea lo tuyo, pero lo cierto es que este campo al igual que otras areas de la informatica, han avanzado tanto que ahora tambien es posible crear robots, aplicaciones de domotica, y en si muchos proyectos del mundo fisico que intereactuen con motores, sensores y pantallas, de forma fácil.
Para esto hay plataformas como Raspberry Pi o Arduino y en realidad un basto etc de otras empresas que compiten con estas, en donde comprando una placa y usando lenguajes como C, Python o incluso Javascript puedes programar hardware.
Y un proyecto que yo creo que no se te puede hacer complicado elaborar es una Estacion meteorologica. ya que aqui conbinarias temas de sensores de temperatura, humedad, escribirias el programa de la placa para que lea esos valores y tendrias que crear una API que lea esos valores, haciendo que puedas practicar tanto la programacion en hardware, y en backend, ademas que aprenderas mas en detalle acerca del protocolo HTTP y el formato de dato en que viajan, y puede ser un inicio en el area del Internet of Things, que esta más relacionado a sistema que interactuan con estos tipos de Hardware, o tambien para profesionales que vienen areas como electronica o mecatronica y quieren entrar en el desarrollo de software.
Desarrollar un proyecto de nivel intermedio como este hará que tengas que aprender algo de electronica básica, aprenderas de componentes electronicos, protocolos de Red y como diseñar un sistema en donde el cliente en lugar de ser un navegador o una app movil es una placa.
Esto a su vez te puede dar un entendimiento más profundo de como diseñar sistemas y tambien es un proyecto poco convencional y muy interesante de colocar en tu Hoja de vida.
Rastreador de Finanzas personales
Una forma en la que puedes crear una aplicacion que sea util y que a su vez te permita aprender mucho, es crear una app que uses todos los dias o a menudo, para esto, una buena idea es desarrollar un rastreador de Gastos o finzanzas personales.
Esta es una aplicacion donde registras tus ingresos, gastos y demas, de tal forma que a medida que lo vas haciendo puedes tener graficas de barras, de pie e ir viendo visualmente tus gastos.
Esta aplkicacion puede ser una web, una aplicacion de escritorio, o incluso de consola, pero para este proyecto te aconsejo que sea una aplicacion movil, de esa forma cada vez que gastas puedes abrir la app y registrar tus gastos y te permite ir mejorando segun tus necesidades.
Este tipo de aplicacion necesita hacer calculos sencillos, mostrar graficas e ir generando un historial de transacciones, lo que puedes considerar hacerlo junto a una base de datos en local o una REST API, o quizas usando un servicio Backend as a service. Luego si funciona incluso puedes considerar ofrecerlo en una tienda de aplicaciones y lo que empezo siendo un proyecto personal y de tu uso, puede ser ahora un software as a service.
Para desarrollar esto solo necesitas conocer algun lenguaje de desarrollo de apps moviles como Kotlin, Swift, Javascript o Dart. usandolos puedes crear una app y puedes colocarlo tambien en tu portafolio como una aplicacion que haz llegado a usar en la realidad.
Tu propio chat en tiempo Real
Ya hemos mencionado un Chat hace unos momentos, usando ChatGPT o la api de openAI, pero aqui no hablo de un chat inteligente, sino de una sala de chat donde usuarios se puedan registrar e ir uniendose a salas para conversar de algun tema.
Esto de hecho no es un proyecto muy dificil de lograr al dia de hoy, pero puede darte una idea real de lo que conlleva hacer algo llamado conexion de websockets, la cual tambien es posible usarla para crear otro tipo de aplicaciones en tiempo real.
De hecho estos Chats en tiempo real son como el hola mundo de la comunicación en tiempo real en la web.
Para esto puedes considerar usar lenguajes como Javascript unidos a servicios como Firebase o Supabse, o tambien puedes desarrollar tu propio Backend usando Websockets en cualquier lenguaje de programacion.
Sistema de Reserva de Viajes
Otra aplicacion muy comun es el crear una web en la que los usuarios puedan reservar viajes, estas por lo general necesitas de mostrar informacion lo mas rapido posible, ofrecen interactividad con calendarios, necesitan registros de usuario y tambien se necesita hacer pago de un tipo.
Es decir conlleva muchas operaciones que son comunes en muchas aplicaciones web, por lo que crear esta aplicacion puede darte una entrada al desarrollo de Proyectos reales.
De hecho algo muy importante en este tipo de sitios web o aplicativos web, es que el SEO es importante para posicionarse en los primeros lugares por lo que tambien aprenderas las consideraciones de escritura sematnica, carga rapida de la pagina y buscaras optimizar tu sitio para que se pueda lograr esto de la mejor manera.
Ecommerce
Finalmente la aplicacion por defecto que siempre es una buena recomendacion desarrollar es un Ecommerce, la razon es que hay muchas web que necesitan vender algo, y el desarrolalr un ecommerce te dara una idea general de todos los procesos que son ver registros de compras, registrar productos, generar facturas, recibir pagos, controlar inventarios, y muchas operaciones que puedes crear para ofrecer una experiencia de compra unica.
Esto sumado a que conlleva conocer de Backend, Frontend, diseño de base de datos, estilos y diseño de la aplicaicon y el unirlo a servicios de pasarelas de pago, lo vuelve un proyecto solido que da a conocer tus habilidades para crear un proyecto FullStack.
Si eres un desarrollador web o planeas serlo, esta es una buena forma de mostrar tus habilidades.
Para poder crear un ecommerce a este punto puedes usra cualquier lenguaje de programscion backend como Python, Go, Java, Javascript con Nodejs, PHP y luego unirlo a frameworks de Javascritp como React, Vue, Angular, Svelte, o tambien es posible usar soluciones fullstack como Nextjs o Nuxtjs.
Esto sumado a base de datos y que necesitas desplegarlo en una nube probablemente hace que tengas un proyecto solido en tu portafolio.
2. Videojuego 2D
El crear un videojuego es de los desarrollos más entretenidos y a su vez retadores que puedes tomar, sobre todo porque ya no solo creas programas para poder guardar datos, sino estas creando un programa en que el usuario esta activamente ingresando eventos, de teclado, mouse y demas.
Ademas que tambien es necesario tener cierto tiempo de habilidad en temas graficos para poder crear un videojuego que sea agradabe de ver o tenga una estetica acorde al tema del juego.
Para crear un videojuego en 2d no es complicado, usando lenguajes como Javascrip puedes usar GameEngines para la web Usando Python puedes usar biblioteca como Pygame
o si quieres algo más dedicado al desarrollo de videojuegos puedes ir por sofware como Godot o unity que te permiten crear videojuegos con uchas más caracteristicas y te ofrecen todo un programa grafico para crear juegos más complejos.
Por supuesto usandolos tambien puedes crear juegos en 3d, pero una forma sencilla y facl de empezar es crear algun juego 2d, y luego despues de haberse familiarizado con las herramientas, poder ir cambiandolas.
Otros Proyectos
En fin estos son proyectos que cualquiera puede considerar desarrollar en un plazo de tiempo y que le enseñara habilidades tecnicas que pueden serles muy utiles en un trabajo de verdad, aunque fuera de estas por supuesto tambien hay otros proyectos, pero los he dejado fuera por no ofrecer una utildad tan real en el mundo laborar, aun asi te los menciono y si tienes tiempo y quieres tomarlo
APlicacion de consola para tomar notas. Aprenderas cosas muy básicas como la entrada del usuario, condicionales, loops y como se escriben y leen dato en archivos
Calculadora
Quiz
Qr Generator
Crear tu propio template engine
Http Server desde cero
Real time Editor
3D Video Game
Red Neuronal
Viualizador de Algoritmos
Tu propio DSL. Estos son lenguajes que permiten convertirse a un grafico
Reecrea herramientas de desarrolladores
Construye tu propio Git tu prpio Docker
Estos son proyectos un poco más avanzados
Siendo honesto muchos de estos proyectos no tienen mucho peso en tu Curriculum pero te pueden ayudar a tener un entendimiento profundo de las herramientas que usan muchos devs, ademas que para poder lograr entenderlos neceistas estudiar mas que solo codigo. asi que son proyectos con un aporte a tu educacion
Otros Recursos
- Build your own X Este es un repositorio con tutoriales en articulos donde puedes construir desde tu propio navegador, tu motor de plantillas