Suggerimenti per programmi da sviluppare per l'apprendimento [chiuso]


12

a parte quelle semplicissime app di Hello World, mi chiedo quali altri programmi dovrei provare a sviluppare per l'apprendimento. sto entrando in uni l'anno prossimo e mi chiedo che tipo di programmi saranno sviluppati in quell'ambiente.

questa non è una cosa specifica della lingua, ma se vuoi sapere cosa uso attualmente principalmente

  • windows: C # / WPF - ho studiato java / vb ecc in poly ma penso che C # sia la strada da percorrere, forse anche F #
  • web: PHP / MySQL, Zend Framework / Doctrine, + HTML / CSS / JS (jQuery) ovviamente. cercando di provare anche Google App Engine con Python.

per ora, sto pensando

  • liste di cose da fare
  • app che si integrano con api ad es. twitter / tumblr che uso
  • editor di testo: attualmente sto cercando di sviluppare un editor di testo che utilizza il markdown e genera file HTML per la visualizzazione (collegamento alla voce del blog). non molto pratico dopo che ho iniziato a svilupparlo. così quando si modifica non c'è formattazione e in formato HTML, non posso modificare direttamente

  • software per blog (per web)

Risposte:


18

Dai un'occhiata al progetto Euler. Non c'è niente di simile per affinare le tue capacità di programmazione di base.


2
+1. Il vantaggio di Project Euler è che puoi implementare le soluzioni in qualsiasi lingua e quindi confrontarle / confrontarle.
Thomas Owens

1
+1 - Ottima risposta! Hai aperto una palestra per il nostro cervello.
Karthik Sreenivasan,

6

Attualmente sto scrivendo un parser / matcher regex e mi sta insegnando moltissimo sull'analisi e sulle macchine a stati finiti e sulle espressioni regolari stesse, tra le altre cose. La ragione per cui penso che un parser regex sia utile è perché il linguaggio regex è piccolo ed è abbastanza limitato in ciò che può fare.

Un'altra cosa che ho fatto è stato scrivere un interprete per Ook! , che è un compito semplice, ma ancora una volta ti insegna un sacco.


+1 SC Kleene non è stato l'inventore di regex senza motivo.
ixtmixilix,

2

CodePlex.com elenca molti progetti open source realizzati con C #. Puoi dare un'occhiata al sito per avere alcune idee.


2

Puoi anche guardare TopCoder . Questo sito ha grandi algoritmi per imparare e di volta in volta conducono la concorrenza. Il vantaggio importante di questo sito è che puoi vedere il codice sorgente di altri per un problema particolare e saperne di più.

E anche sui siti SE, devi guardare CodeGolf .


1

(Questa è principalmente una risposta mata, piuttosto che un elenco di progetti.)

Pensa al motivo per cui stai scrivendo il programma: sarà utile di per sé o sarà semplicemente imparare un aspetto di uno strumento / API / linguaggio?

In quest'ultimo caso, il programma risultante ha il vantaggio di essere il più breve possibile e quindi tenuto come riferimento.

Nel primo caso, perché non estendere l'apprendimento alla buona pratica sotto tutti gli aspetti: supponi che dovrai mantenerlo ed estenderlo. Pertanto, utilizza il controllo del codice sorgente, il rilevamento dei problemi, il refactoring, i test delle unità, ... poiché tutte queste cose sono almeno importanti per uno sviluppatore quanto conoscere un'altra API.


Che ne dici di un integratore di feed:

  • Fonti RSS / Atom
  • Gestisci twitter usando la sua API (e collega il collegamento senza accorciamento)
  • Basato sulla fonte, consente l'elaborazione post inseribile (ad es. Download di mp3 da un feed di podcast)

(L'idea è quella di concentrarsi sull'integrazione di diverse implementazioni dello stesso paradigma: HTTP pianificato ottiene un feed RSS vs. API di Twitter vs.


Grazie. penso che questo sia in linea con quello che sto pensando, integrare con i servizi web. inoltre sto pensando a diverse app che utilizzano diverse funzionalità della lingua. per esempio. con l'editor di testo, ho cercato di integrare la barra multifunzione
wpf

1

Ho imparato molto lavorando su questo tipo di miei progetti di hobby:

  • Giochi semplici (clone Snake, clone Tic Tac Toe, ecc.)
  • Screen-saver

Per non parlare del fatto che questo tipo di progetti è incredibilmente divertente da lavorare :-).


1

Programma un piccolo gioco: è divertente e impari molto.

Qualche idea:

  • Dragamine
  • Tetris
  • Un gioco di carte
  • Serpente

E quando è finito, perché non implementare un sito Web di alto livello ...



0

SPIROGRAPH. Specificare le dimensioni di un anello esterno, di un disco interno e della punta della penna lungo il suo diametro. Traccia il percorso della penna mentre il disco interno rotola lungo l'interno dell'anello esterno.

Cambia creatore. Costo di input e importo dati al cassiere. Calcola l'ottimale per il cassiere per apportare modifiche. C'è un modo lento e un modo veloce per risolvere questo. Trova la via più veloce.

Simulazione OO-Life. Cerca l'algoritmo di vita. Crea uno stato iniziale casuale e genera i passaggi successivi, utilizzando la progettazione OO per separare la logica dalla presentazione. Fornisce output di testo e output grafico.

Missionary / Cannibals Solver, cerca questo famoso puzzle. Scrivi un programma per risolverlo usando gli alberi di ricerca. Confronta BFS con DFS.

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.