Quali sono alcuni buoni progetti secondari di programmazione su cui lavorare durante la tua laurea e che faranno bella figura su un curriculum?

Il miglior vantaggio dei progetti di programmazione è che il cielo è il limite (davvero!). Ho tentato la mia fortuna esplorando vari rami della materia durante il mio corso di laurea e la mia raccomandazione sarebbe quella di partecipare a progetti da diversi campi all'inizio e solo allora passare a sottocampi più specifici di un particolare campo.

Qui ci sono alcune idee di progetto suddivise per campi correlati. Sceglierne alcuni da ogni settore dovrebbe aiutarti ad avere un ottimo profilo.

1. Algoritmi

  • Algoritmi grafici: Un'area molto fondamentale ma critica applicabile a molti problemi del mondo reale. Idee per possibili progetti includono il problema del percorso più breve, l'analisi delle reti sociali, il PageRank e molti altri.
  • Strutture di dati: Tutti si rendono conto della loro importanza nei problemi su larga scala. Si può provare a implementare la compressione dei file usando la codifica Huffman, il problema del punto più vicino usando gli alberi Quad e i filtri Bloom
  • Algoritmi geometrici: Uno dei miei sotto rami preferiti. Ci sono numerosi problemi impegnativi anche qui, Convex Hulls, Programmazione Lineare, Ricerca Simplex/Range e molti altri

2. Sistemi

  • FTP Client: Implementare un semplice e rudimentale client FTP, possibilmente supportando il trasferimento sicuro dei file.
  • HTTP Server: Comporterebbe una conoscenza un po' più approfondita dell'argomento. Ma ehi, nessun dolore - nessun guadagno.
  • Sistema operativo: Modificare un sistema operativo esistente e imparare i dettagli di implementazione dello stesso. Uno standard da manuale per questo sarebbe NachOS.

3. Applicazioni web, database

  • Web Scrapers: Non è un progetto vero e proprio, ma ho amato realizzarne uno durante il mio primo anno. Mi sono sentita davvero in grado di automatizzare quasi tutto usando un semplice python.
  • Sistema di gestione: Implementare un sistema per gestire un servizio, ad esempio un sistema di prenotazione dei voli o un portale di gestione delle quote sociali.
  • Numerose altre possibilità: La maggior parte delle cose interessanti richiede una combinazione di più campi. L'unico limite è la vostra immaginazione.

4. Machine Learning (Il mio preferito)

  • Natural Language Processing: Compiti di Machine Learning dedicati alla comprensione del linguaggio naturale. Possibili idee includono: classificazione di documenti, riconoscimento del sentimento di recensioni di film, creazione di un chat-bot e molti altri
  • Reinforcement Learning: Uno dei miei preferiti nel mondo del ML. Si può lavorare sull'addestramento di un bot a giocare a Mario, PacMan, imparando a comportarsi in sistemi fisici e cosa no
  • Computer Vision: Il mio campo super preferito nel Machine Learning. Ci sono numerose sfide su cui puoi tentare la fortuna. Puoi anche dare un'occhiata ai miei progetti per qualche idea.
  • General Purpose Machine Learning: Non c'è bisogno di essere vincolati da restrizioni di dominio. Provate a creare il vostro motore di ricerca, un sistema di raccomandazione di film, provate a risolvere qualsiasi problema di vita reale con il ML.

Prima di precipitarvi ad iniziare a lavorare sul vostro progetto, vorrei ricordare che i progetti più interessanti su cui potete lavorare saranno generalmente un mix di idee multiple. Puoi creare un servizio di messaggistica, il tuo proprio social network, scacchi multiplayer (beh, solo due giocatori per essere precisi), un gioco 3D con una IA ben addestrata... la lista continua (fai riferimento a questa lista di idee di progetti pratici per altre idee).

Dove e come iniziare, vi chiederete? Sento che il modo migliore per completare un progetto è quello di iniziare rapidamente a lavorarci e affrontare le difficoltà un passo alla volta. Non c'è bisogno di leggere decine di libri prima ancora di iniziare il progetto per il gusto di costruire una conoscenza teorica. Ci sono un gran numero di tutorial per la maggior parte dei progetti che ho descritto sopra, basta seguirli lentamente e si dovrebbe fare bene.