Algorithm for Learning development [chiuso]


16

Questa è una domanda abbastanza generica. Conosco un po 'di Perl e Python e sto cercando di imparare la programmazione in modo più approfondito in modo che, una volta capito, posso iniziare a sviluppare applicazioni e quindi siti Web.

Mi piacerebbe conoscere un algoritmo (sequenza di passaggi :)) che potrebbe descrivere il mio approccio all'apprendimento della programmazione in generale. Ho pubblicato piccole domande su Perl / Python e ho ricevuto un grande aiuto da parte di tutti.

Nota: - Non ho fretta di imparare. So che ci vuole tempo e va bene.

Si prega di dare eventuali suggerimenti che ritieni validi. Inoltre, per favore, non spingermi ad imparare Lisp, Haskell ecc. - Sono un principiante.


C'è qualche lingua particolare che stai cercando di imparare? So che menzioni perl e python, è quello che stai cercando di entrare?
Jason,

Quindi quello che stai chiedendo è ... cosa esattamente? Il processo attraverso il quale impari una lingua specifica? Programmazione stessa? Usando cosa?
glenatron,

Penso che questa sia una buona domanda. Ho modificato per renderlo un po 'più chiaro.
Gary Rowe,

Risposte:


28

L'algoritmo in 11 passaggi per l'apprendimento di un nuovo linguaggio di programmazione

Attualmente sto imparando Lisp e consiglierei il seguente algoritmo:

  1. Chiedi in giro se vale la pena imparare la lingua e dove si possono trovare buone risorse. Se gli esperti forniscono risposte positive alla lingua, procedere al passaggio 2.
  2. Creare un ambiente di programmazione iniziale. Mantenerlo semplice: editor di testo e compilatore / interprete. Il minimo indispensabile. Prendi in considerazione un account utente specifico sul tuo computer con una combinazione di colori speciale per suggerire il cambiamento di mentalità.
  3. Crea il "Ciao, mondo!" applicazione.
  4. Impara la sintassi generale e le istruzioni di controllo (if-then-else, repeat-until etc). Crea sandbox per verificare semplici casi di controllo (valutazioni true / false, ecc.). Prova tutti i tipi primitivi (int, double, string ecc). Eseguire calcoli di valuta. Il gioco di indovinare il numero (come suggerito da @Jeremy ) è buono per questo.
  5. Crea una classe (se applicabile) con diversi metodi / funzioni. Effettua chiamate tra le funzioni. Applica dichiarazioni di controllo.
  6. Scopri matrici e raccolte. Crea esempi adeguatamente complessi che creano array e raccolte di ciascuna delle classi / funzioni / primitive disponibili
  7. Impara il file IO. Crea esempi di lettura, manipolazione e scrittura di file binari e basati su caratteri.
  8. Poni ulteriori domande sulla programmazione idiomatica all'interno del linguaggio (puntatori, macro, monadi, chiusure, framework di supporto, ambienti di build ecc.).
  9. Scegli (o adatta il tuo IDE esistente) per lavorare nel linguaggio consigliato.
  10. Scrivi una varietà di applicazioni che piacciono a te (o al tuo capo).
  11. Dopo 1 anno, torna al passaggio 1 per un'altra lingua, pur mantenendo il tuo interesse per quella che hai appena imparato.

1
Ho trovato il gioco "indovinare il numero" per essere un ottimo secondo programma da scrivere. (Al punto 4.) Ti consente di conoscere numeri interi, valori booleani, input / output di testo, loop e condizioni.
Jeremy Heiler,

@Jeremy Un buon suggerimento, l'ho messo lì.
Gary Rowe,

Ciao Gary, grazie per le istruzioni dettagliate che cercherò di mappare con Python: un'ottima spiegazione passo passo, ecco perché amo questa catena di forum ... @Jeremy, sì, ci sono io :)
user9057

combinazioni di colori speciali per indurre il cambiamento di mentalità , puoi far luce su questo?
Santosh Kumar,

Tendo a scegliere una combinazione di colori più scuri quando lavoro con Lisp ma ne uso una leggera per Java. Il colore mi ricorda di cambiare mentalità.
Gary Rowe,


2

Per ogni lingua che vuoi imparare L

  • Passaggio 1: apprendi la sintassi di L .
  • Passaggio 2: scrivere un compilatore per L nella tua lingua preferita.
  • Passaggio 3: scrivi un compilatore per la tua lingua preferita in L
  • Passaggio 4: scrivere un progetto principale in modo idiomatico in L
  • Bonus: assicurati che il risultato del passaggio 2 sia compatibile con il risultato del passaggio 4.

Questo dovrebbe riguardarlo, tornare da noi con una relazione sui progressi compiuti tra 10 anni .

Se tutto ciò che cerchi è imparare a fare lo sviluppo web e conosci già Perl e Python, hai praticamente abbastanza per iniziare. Direi di iniziare ad imparare i dettagli di Apache (e in particolare mod_perle mod_python), quindi iniziare a esercitarmi. Magari prendi un libro o due sulla programmazione CGI, sulla comunicazione di rete e simili, piuttosto che su manuali linguistici specifici.

Come nota finale, essere un principiante non è un motivo per non imparare il Lisp. Vai a controllare SICP e le lezioni video . Né assume alcun livello di competenza con lo sviluppo, né i computer. Infatti per citare l'introduzione alle lezioni video

Vorrei darti il ​​benvenuto in questo corso di Informatica. [Lo scrive alla lavagna] In realtà è un modo terribile di iniziare. L'informatica è un nome terribile per questo business. Prima di tutto, non è una scienza [cancella la "scienza"]. Potrebbe essere ingegneria o potrebbe essere arte. [...] Inoltre, non riguarda molto i computer [cancella "computer"]. E non si tratta di computer nello stesso senso in cui la fisica non riguarda realmente gli acceleratori di particelle. E la biologia non riguarda davvero i microscopi e le capsule di Petri. -Hal Abelson


Sembra divertente. Ci vediamo tra 10 anni!
Jeremy Heiler,

+1 per il passaggio 2 scrivere un compilatore per L! Il cervello ... fa male ... così ... molto ... ora.
Gary Rowe,

-2

Non voglio dire molto tranne due passaggi.

  1. Scopri la struttura dei dati
  2. Scopri l'introduzione all'algoritmo

La programmazione PS è il tuo compito quotidiano.


Sui programmatori sei incoraggiato a "dire molto", non essere timido :) Fornisci alcuni dettagli sui tuoi consigli, come risorse, riferimenti o esempi tratti dalle tue esperienze.
Matthieu,

-2

Il modo migliore è apprendere le basi / i fondamenti di un linguaggio di programmazione e poi unirsi a un'azienda come sviluppatore junior (appaltatore). Questo sarà il modo più veloce per imparare e fare soldi anche per il tuo tempo;)

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.