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

10

Dato che il modo migliore per imparare è lavorare su progetti, quali sono alcuni buoni software per provare a farti allo scopo di migliorare certe capacità di programmazione o imparare una nuova lingua?

    
posta zhenka 22.01.2011 - 20:46
fonte

7 risposte

11

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

Conway's Game of Life

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

Inoltre potresti scrivere una versione 3D di esso 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 semplicemente annulla i numeri e fermati quando non è più possibile o vai avanti e implementa un albero di ricerca per risolvere problemi più complessi. Problemi e soluzioni per Sudokus a tutti i livelli di difficoltà per testare il tuo programma sono disponibili in rete in abbondanza. Lo stesso per materiale su possibili strategie.

Project Euler

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

    
risposta data 22.01.2011 - 21:54
fonte
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.

    
risposta data 22.01.2011 - 21:01
fonte
5

Accedi a uno dei seguenti siti e verifica 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 che più ti è familiare.

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

    
risposta data 23.01.2011 - 05:22
fonte
3

Direi qualsiasi progetto che soddisfi i seguenti tre requisiti:

  • Qualcosa che trovi interessante
  • Qualcosa in cui puoi ottenere un senso di avanzamento molto veloce (per esempio prova ad evitare qualcosa come creare un gioco 3d)
  • Qualcosa che si adatta al paradigma di programmazione di quel linguaggio. Per esempio. se è un linguaggio funzionale, quindi un progetto in cui si farebbero manipolazioni di dati, matematica o altro.
risposta data 22.01.2011 - 21:10
fonte
2
  • Vai su Sourceforge.net o GitHub, cerca i progetti in quella lingua e scopri quali ti incuriosiscono.
  • Pensa alle librerie con cui lavori più spesso nella "vita reale". Scrivi molti servizi web? Prova a scrivere un framework webservices per la nuova lingua. Fai molta programmazione grafica? Prova a scrivere un semplice motore di rendering. Fare analisi dei dati? Implementare un pacchetto di statistiche di base. Ecc. Ecc. Questo ha il vantaggio che vedrai già l'utilità (perché usi qualcosa di simile su base giornaliera) e avrai già una certa conoscenza del dominio. Questi tipi di progetti tendono anche a essere quelli che puoi spendere una quantità infinita di tempo per modificare (ad esempio, imparare più cose da), che potresti voler eventualmente aprire all'Open Source e che ti terranno coinvolto nella lingua se diventeranno un hobby in corso; il rovescio della medaglia è che potrebbe non sentirsi mai veramente "finito", e questo è scoraggiante per alcune personalità.
  • A seconda del dominio di sviluppo, potrebbero esserci libri destinati specificamente a guidarti attraverso i progetti. Questo tende ad essere particolarmente vero per le piattaforme di sviluppo di giochi (iOS, XNA).
risposta data 23.01.2011 - 10:01
fonte
1

Per principianti

Manipolazione stringhe:

  • Gioco dell'impiccato.

Database:

  • elenco delle cose da fare
  • una sorta di allenamento o diario personale

Manipolazione di numeri casuali:

  • Fai girare la ruota

Grafica matrice e di base

  • Tetris
risposta data 23.01.2011 - 05:31
fonte
1

Tutto ciò che ti piace abbastanza da continuare a fare. La maggior parte dell'apprendimento viene eseguita in quell'ultimo 1% che viene comunemente ignorato in un progetto collaterale, ma è una parte molto importante di un prodotto di lavoro.

Di conseguenza, è una scelta molto personale ciò che potrebbe essere il progetto. Ecco perché ci sono così tanti grandi progetti di OS là fuori, e perché tutti dicono che sono così importanti quando sono sul tuo curriculum vitae: quella persona ha lavorato duro su di esso e ha imparato molto lavorando su quell'ultimo 1% di esso per fare è utilizzabile dagli altri e gode di ciò che fa.

    
risposta data 23.01.2011 - 09:30
fonte

Leggi altre domande sui tag