Suggerimenti di progetti fai-da-te per affinare le capacità di programmazione o imparare una nuova lingua [chiuso]


10

Dal momento che il modo migliore per imparare è lavorare su progetti, quali sono alcuni buoni software per provare a costruirti con lo scopo di affinare determinate abilità di programmazione o imparare una nuova lingua?


3
Clona questo sito.

Risposte:


11

Ho scoperto che i seguenti programmi danno un buon inizio con nuove lingue:

Il gioco della vita di Conway

Facile da implementare. Ti dà un buon inizio con un semplice utilizzo delle classi contenitore. Non necessita necessariamente di grafica per l'output dei risultati.

Inoltre potresti scriverne una versione 3D e utilizzare un motore di gioco per l'output (ad esempio qualcosa di semplice come Panda3D)

Risolutore di Sudoku

Leggermente più complesso. La complessità può essere adattata alle tue esigenze. O annulla semplicemente i numeri e fermati quando non è più possibile oppure vai avanti e implementa un albero di ricerca per risolvere problemi più complessi. Problemi e soluzioni per Sudokus ad ogni livello di difficoltà per testare il tuo programma sono disponibili sul web in abbondanza. Lo stesso vale per il materiale su possibili strategie.

Project Euler

Problemi ad ogni livello di difficoltà che puoi desiderare. E confronta le tue soluzioni con quelle di programmatori esperti in tutti i principali linguaggi di programmazione.


Puoi provare a implementare il Gioco della vita su varie piattaforme. L'ho fatto su tela HTML5 / Javascript. È stato incredibile!
Mauris,

5

Non sono sicuro di cosa intendi con "quali sono alcuni buoni software da provare ...", ma posso consigliare il libro "sette lingue in sette settimane"

Ti dà un buon punto di partenza per provare nuove lingue.


Ho appena ricevuto questo libro e la risoluzione del mio nuovo anno è seguirlo.
Tangurena,

5

Accedi a uno dei seguenti siti e vedi se sei all'altezza delle sfide di codifica che presentano: SPOJ , TOPCODER ecc.

La maggior parte di questi siti ti ha fornito la possibilità di codificare in più linguaggi di programmazione in modo da poter utilizzare quello con cui hai più familiarità.

E se sei un maestro nel tuo gioco, c'è sempre ICPC .


3

Direi qualsiasi progetto che soddisfi i seguenti tre requisiti:

  • Qualcosa che trovi interessante
  • Qualcosa in cui puoi ottenere un senso di progresso molto velocemente (quindi ad esempio cerca di evitare qualcosa come la creazione di un gioco 3D)
  • Qualcosa che si adatta al paradigma di programmazione di quel linguaggio. Ad esempio, se si tratta di un linguaggio funzionale, allora un progetto in cui si eseguono manipolazioni dei dati, matematica o qualcosa del genere.

2
Il tuo primo punto è la chiave. Se non sei interessato al progetto, sarà più difficile mantenere i progressi e l'entusiasmo di cui hai bisogno per imparare.
ChrisF

2
  • Vai su Sourceforge.net o GitHub, cerca progetti in quella lingua e vedi quali ti incuriosiscono.
  • Pensa alle biblioteche con cui lavori più spesso nella "vita reale". Scrivi molti servizi web? Prova a scrivere un framework di servizi Web per la nuova lingua. Molta programmazione grafica? Prova a scrivere un semplice motore di rendering. Fare analisi dei dati? Implementare un pacchetto statistico di base. Ecc. Ecc. Questo ha il vantaggio che vedrai già l'utilità (perché usi qualcosa di simile ogni giorno) e avrai già qualche conoscenza del dominio. Questi tipi di progetti tendono anche ad essere quelli in cui puoi passare una quantità infinita di tempo a modificare (ad esempio, imparare più cose da), che potresti voler eventualmente aprire alla fonte e che ti terranno coinvolto nella lingua se diventano un hobby continuo; il rovescio della medaglia è che potrebbe non sembrare mai "finito", e che
  • A seconda del dominio di sviluppo, potrebbero esserci dei libri appositamente studiati per guidare l'utente attraverso i progetti. Questo tende ad essere particolarmente vero per le piattaforme di sviluppo di giochi (iOS, XNA).

1

Per principianti

Manipolazione delle stringhe:

  • Gioco dell'impiccato.

Banca dati:

  • lista di cose da fare
  • una sorta di allenamento o diario personale

Manipolazione di numeri casuali:

  • Gira la ruota

Matrice e grafica di base

  • Tetris

1

Qualunque cosa ti piaccia abbastanza per continuare a fare. La maggior parte dell'apprendimento avviene nell'ultimo 1% che viene comunemente ignorato in un progetto secondario, ma è una parte molto importante di un prodotto di lavoro.

Di conseguenza, è una scelta molto personale quale potrebbe essere il progetto. Ecco perché ci sono così tanti grandi progetti di sistemi operativi là fuori e perché tutti dicono che contano così tanto quando sono sul tuo curriculum / CV: quella persona ha lavorato duramente su di esso e ha imparato molto lavorando sull'ultimo 1% di esso per realizzare utilizzabile da altri e gode di ciò che fanno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.