Articles

42 proyectos para practicar habilidades de programación

Posted by admin

antes de ir más lejos, marque este sitio web:

tener muchas ideas de proyectos de programación es algo malo, no compartirlas con usted es aún peor. Por lo tanto, es un desafío de un año (algo que los niños de Instagram adoran en estos días), etiquetado como #42SkillsChallenge. He aquí cómo participar en este desafío increíblemente complejo, para cada uno de los 42 proyectos:

  1. elige un proyecto de la lista.
  2. Crear un repositorio GitHub para el proyecto.,
  3. empieza a trabajar, intenta implementar todo desde cero, reinventa la rueda donde sea posible (a veces tienes que hacerlo).
  4. Cuando haya terminado, pruébelo, publique la etiqueta #42SkillsChallenge en algún lugar del repositorio (Léame o en algún lugar visible).
  5. Comparte tu repositorio con el mundo.

algunos proyectos son simples. Algunos de ellos son difíciles. Es una gran manera de practicar tus habilidades, especialmente antes de entrevistas técnicas importantes.

sin embargo, hay proyectos que son ridículamente complejos. Puede tomar semanas o meses para que usted los implemente. Ahí es donde las verdaderas estrellas de rock sobreviven., El que completa todos los proyectos primero, desbloquea un nuevo nivel de experiencia. Mira los proyectos, sé de lo que estoy hablando.

Además, algunos proyectos pueden servir como grandes ideas para startups (aquellos que odian trabajar y aman enriquecerse rápidamente). Sugiero reunir un equipo para algunos proyectos a continuación (o en el sitio web) y lanzar una aplicación o servicio bastante genial y conquistar el mundo.,

La lista de proyectos

Diseñar e implementar un ligero servidor web que procesa la entrada de la red de solicitudes a través de protocolo HTTP. El servidor web procesa y entrega páginas web a los clientes (generalmente, navegadores). Las páginas son documentos HTTP. Si bien la función principal es servir contenido, una implementación completa de HTTP también incluye formas de recibir contenido de los clientes., Esta función se utiliza para enviar formularios web, incluida la carga de archivos (fuente). Para una inspiración, trate de imitar el servidor web Nginx.

Sniffer de Paquetes

Un sniffer de paquetes (packet analyzer) se utiliza para controlar el tráfico de red mediante el examen de los flujos de paquetes de datos que fluyen entre los equipos de una red. Para comenzar con el proyecto, estudie bien los protocolos de red., Luego, sumérgete en la implementación de una aplicación que rastrea los paquetes de red y analiza su contenido en una forma legible por humanos.

Analizador de Código Estático

Código estático analizadores se utilizan para analizar (obviamente) el código fuente sin correr y descubrir problemas que pueden conducir a errores en la ejecución de la aplicación. De esa manera, ejecutar un analizador de código estático para su proyecto podría ahorrar mucho tiempo en la depuración., Los proyectos serios o los sistemas de misión crítica utilizan analizadores estáticos comerciales para verificar la calidad del código.

diseñe e implemente su propio analizador estático para cualquier idioma de su elección.

Spam Detector de

Implementar una biblioteca o un servicio que analiza los correos electrónicos para detectar spam. Usted es libre de implementarlo como un complemento del navegador, o como un producto SaaS. Intente usar algoritmos de aprendizaje automático para mejorar su sistema.,

Motor de Ajedrez

Un motor de ajedrez analiza el tablero de ajedrez y sugiere la mejor jugada siguiente. Además de eso, podría servir como un oponente en el juego con el ordenador. Implemente el motor de ajedrez alimentado por IA de próxima generación. Para una inspiración, echa un vistazo al Stockfish.,

Motor de Búsqueda Web

Mi favorita. Siempre he querido implementar un motor de búsqueda web super-duper que competirá con Google. Como puedes adivinar, no pasó nada. Tal vez usted puede implementar un motor?

diseñar e implementar un sistema que indexe miles de millones de documentos en todo el mundo, los almacene de manera eficiente y responda a las consultas de los usuarios con la lista de documentos más relevante.,

Command-Line Terminal

This one is easy to describe. Implement a terminal app that replicates all the main Linux commands. Try to make the interface as fancy as you can.

Web Browser

Sounds simple, but it’s not., Primero, es una aplicación GUI. A continuación, entiende los documentos HTTP y, por supuesto, entiende y renderiza correctamente HTML y CSS. Y sí, también ejecuta JavaScript (al menos las cosas básicas).

entonces, no se permite el motor Chromium. Un navegador web simple implementado desde cero. Este es duro. Al menos para mí. Puedes saltarte algunas partes desagradables y mantenerla básica, pero aún así, es difícil.,

Base de datos En Memoria

Otro de mis favoritos. El proyecto está básicamente re-implementando el Redis. Una base de datos en memoria mantiene todo en memoria. Si agregas un lenguaje de consulta, alguna compañía seria definitivamente te contratará.,

Minimalista OS

Un sueño de muchos. Conozco a muchos programadores que soñaron con implementar su propio sistema operativo desde cero. Y una de las motivaciones para tales intenciones suicidas es sumergirse en los niveles más bajos de codificación y familiarizarse con el metal. Todo el mundo ama el metal!

puede mantenerlo simple, pero al menos implementar varias características críticas para el sistema operativo., Y hazlo desde cero, pero puedes echar un vistazo al kernel de Linux. Después de todo, Linus echó un vistazo a Minix de alguna manera.

Video Generador de Subtítulos

Implementar un programa que toma un video como una entrada, analiza el contenido, hace un poco de procesamiento de la voz y produce subtítulos para el vídeo. Está bien tener una limitación en la duración del video (1 o 2 minutos sería genial).,

la Costumbre de Cifrado

Recordar esas películas sobre hackers? ¿Alguna vez soñaste con convertirte en uno? Esta es tu oportunidad de dar un paso hacia ese sueño infantil.

diseñar un cifrado. Implemente una aplicación que codifique y decodifique información basada en ese cifrado suyo.

sería genial si escribieras algunas pruebas automatizadas para verificar la fuerza de tu creación. En otras palabras, hackear su propia seguridad.,

P2P Aplicación de Mensajería

Implementar una aplicación para chatear con un amigo. El desafío es hacerlo de una manera que omita un servidor centralizado e inicia una conexión directa entre dos clientes de chat.,

de la Máquina de Traducción

Algo así como el traductor de Google. Diseñe e implemente un servicio (si tiene tiempo libre, implemente la aplicación también) que traduzca un montón de texto de un idioma a otro.

Elija los dos idiomas que desee. Trate de hacer que el traductor sea más inteligente, entrenarlo o corregirlo en el camino.,

Automatizado Presentadora de Noticias

Usted va a gustar este. Imaginen a los lectores regulares de noticias, como Feedly. Y ahora, imaginen al presentador de noticias de CNN, hablando de algunas noticias de última hora, coronavirus, etc. Ahora, imagina un personaje de dibujos animados, que te lea las noticias (al usuario) como hacen los presentadores reales.,

diseñar e implementar un software que recopila noticias (generalmente, se suscribe a los canales RSS establecidos por el Usuario), y las lee en voz alta como un presentador de noticias animado.

Sistema de Pago

Usted probablemente ha oído hablar de PayPal o con rayas o cualquier otro sistema de pago. Ahora, diseñar una nueva (o la próxima generación?) sistema de pago similar a uno de esos. Simular transacciones financieras y demostrar que el sistema es infalible a los ataques., Esto es difícil de lograr.

Base de datos Relacional del Sistema de Gestión de

has preguntado cómo hacer bases de datos de trabajo bajo el capó? Ahora tienes la oportunidad de construir uno. Diseñar e implementar un DBMS relacional similar a MySQL o PostgreSQL (no necesariamente soportando SQL). No te olvides de indexar. Será genial tener transacciones, pero esta no es obligatoria.,

Asistente Virtual

Algo parecido a Siri, pero sin control de voz. Simplemente escriba un texto, cree recordatorios, haga preguntas, etc. El conjunto de características depende de usted, pero el Usuario debe sentirlo como una aplicación de asistente virtual sólida.

Este proyecto está pensado para spartphones, es decir, deberías escribirlo ya sea para Android, o para iOS, o para ambos usando algo parecido a React Native/Flutter.,

Recolector de Basura

Pregunta rápida: ¿cuál es la diferencia entre C++ y C#? Una de las diferencias es que este último tiene un recolector de basura. Ahora, implemente un recolector de basura que se pueda usar como un servicio separado o como un módulo integrado. El idioma y el objetivo son de su elección.,

Clon de Dropbox

Dropbox es una aplicación de intercambio de archivos. Consta de clientes para casi todos los sistemas operativos, incluidos Android e iOS. También tiene un gran backend. Diseñe e implemente su propia versión de una aplicación para compartir archivos que funcione al menos para 10 usuarios y proporcione 100 Mb de espacio a cada uno de ellos. Implementar tanto el servidor como el cliente (al menos para un sistema operativo).,

Contenedor de Sistema de Gestión de

Permítanme poner la descripción de la ventana acoplable.

Docker es un conjunto de productos de plataforma como servicio (PaaS) que utiliza la virtualización a nivel de sistema operativo para entregar software en paquetes llamados contenedores. Los contenedores están aislados unos de otros y agrupan su propio software, bibliotecas y archivos de configuración; pueden comunicarse entre sí a través de canales bien definidos., Todos los contenedores se ejecutan mediante un único núcleo de sistema operativo y, por lo tanto, son más ligeros que las máquinas virtuales.

implemente su propia Docker.

Contenedor Orchestrator

Se vuelve más y más difícil. Después de terminar con Docker, diseñe e implemente un orquestador.

para inspirarte, mira Docker Swarm o Kubernetes.,

Antivirus Software

No importa que el uso de Linux. Hay cuarentena en todas partes por los virus. Implementar un buen antivirus y probarlo mediante la implementación de un par de Virus. Esta no es una tarea fácil, pero cuando haya terminado con la implementación de un sistema operativo minimalista, debería ser más fácil abordar esta.,

Firewall

Los Firewalls de supervisar las solicitudes de red, abrir o cerrar puertos en el equipo. Son básicamente el primer escalón en el sistema de defensa. Diseñar e implementar un software de firewall. Al menos intente algo como netstat que también tiene permisos para cerrar puertos o alertar sobre solicitudes de red sospechosas.,

Sistema de Control de versiones

Usted probablemente está usando Git. Es posible que haya utilizado SVN o incluso CVS. De todos modos, la idea es simple. Implementar un nuevo sistema de control de versiones. Apunta a algo mejor que Git.

también, recuerda, Linus escribió la primera versión de Git en dos semanas más o menos. Acepte el desafío, escriba su CV en menos de 13 días. ¡En tu cara, Torvalds!,

Diagrama UML Generador

Tome cualquiera de los preferidos de los lenguajes de programación que soportan la programación orientada a objetos. Implementar una herramienta que tome el código fuente del proyecto como entrada y genere diagramas UML para él.,

de la Serie de Tiempo de la Base de datos

Se trata de un software de base de datos que almacena y procesa la serie de tiempo de manera más eficiente que los sistemas de administración de base. Descubra qué son las series temporales y luego diseñe e implemente un sistema de base de datos de series temporales.,

Bloqueo libre de Estructuras de Datos

libre de Bloqueo de programación es difícil de comprender. Lo he intentado, simplemente lo he entendido.

implementar un conjunto de estructuras de datos libres de bloqueo como una biblioteca que se puede utilizar en proyectos de programación.,

Tráfico Notificador

Implementar una aplicación (o servicio) que notifica al usuario sobre el atasco de tráfico.

más que eso, sugiere una mejor ruta a algún destino (establecida por el usuario).

Esta es una de esas aplicaciones que podrían servir como una buena idea para un inicio. Implementar un servicio realmente de calidad y el éxito está garantizado., Puede combinar este con el asistente virtual presentado anteriormente, y el resultado será maravilloso.

la Música de Fusión

Implementar un software que combina dos o más pistas de música en conjunto para producir una nueva.,

Receta Generador

La aplicación (o servicio) genera nuevas recetas y aprende a través de la forma. Así que cuando se cocina por su receta, luego lo califica para decirle lo bueno que era. No es una idea fresca, pero aún así puede ser útil.,

Plugin para el Navegador de Tarjetas de memoria Flash

Hay un montón de proyectos a implementar. Este es un poco más fácil. Implementar un plugin de navegador (para cualquier navegador) que permita almacenar tarjetas flash y luego mostrarlas aleatoriamente al usuario (se puede configurar).,

Llamada de Vídeo de la Aplicación

Hay varios video llamada de aplicaciones, Zoom, Skype, Hangouts de Google.

pero aún así, funcionan mal si la conexión a internet es pobre. Tal vez usted debe inventar un nuevo algoritmo de compresión (ver más abajo) y combinarlo con esta aplicación para implementar una nueva aplicación de videollamada excelente? No estoy seguro., Básicamente, este proyecto representa PiperChat, diseñar e implementar la mejor aplicación de chat de vídeo de calidad por ahí.

Aleatoriedad Probador

Suena loco, un amigo le sugirió a éste. Escribir un software (o una herramienta), o tal vez idear una fórmula (No estoy seguro) que prueba los resultados de un generador de números aleatorios y verifica si son realmente aleatorios.,

Microservices Marco

Diseño de una prolija microservices marco que soporta patrones básicos y proporciona un conjunto de implementaciones fuera de la caja. Asegúrese de cubrir la detección de servicios y la comunicación de microservicios.

cuantas más funciones agregues a tu framework, mejores posibilidades tendrás de ganar el desafío.

Elija cualquier lenguaje de programación que desee.,

Lenguaje de Programación Funcional

Inventar un nuevo lenguaje de programación en el paradigma funcional. Sea sucinto, pero proporcione todo el entorno para implementar programas en su idioma y ejecutarlos sin dolor.,

Estrategia Motor del Juego

Una de las mejores maneras para el estudio de la programación orientada a objetos es a través de diseño de juegos. Los juegos generalmente se basan en motores.

diseñar e implementar un motor de juego para juegos de estrategia. Preferiblemente, implementar un juego basado en el motor para probarlo.,

Simulación del Mundo

Occidente está por venir.

implementar un servicio que permite simular mundos complejos con diferentes conjuntos de datos iniciales. Cuantos más detalles, mejor es el sistema. Este es bastante duro, podría tomar mucho tiempo terminarlo. Manténgalo simple cuando se sienta atascado.,

Sistema de Recomendación de Películas

Es una mentira, Netflix del sistema de recomendación de mierda. Además de listas de películas seleccionadas a mano, no vi un sistema de recomendación de películas sólido en ningún lugar.

Por favor, arregla esta locura. Diseñe e implemente el mejor sistema de recomendación de películas que existe.

(Es posible que necesite raspar muchas bases de datos para recopilar datos en películas.,)

Pied Piper

Alguien debería hacer esto. Diseñar e implementar un algoritmo de compresión que comprime archivos grandes en pequeños. Es cierto que lograr el resultado perfecto es muy difícil, pero trata de no limitarte por esos pensamientos. Busca lo imposible, https://en.wikipedia.org/wiki/Weissman_score

Leave A Comment