Backtrack My "Education" [chiuso]

13

Qualche tempo fa, ho deciso di iniziare a programmare. Ho davvero saltato in una lingua (Perl) e sono andato da lì. Quello che rimpiango è che sono appena saltato in:

Non ho imparato le nozioni di base (se le avresti chiamate nozioni di base).

Non ho studiato Informatica.

Questo problema, credo, mi sta trattenendo dal mio vero potenziale. Dove dovrei "riavviare"? Ci sono libri, articoli, ecc. Che dovrei leggere? Ci sono argomenti che un programmatore esperto dovrebbe sapere? Qual è il tuo consiglio?

    
posta Dynamic 08.11.2011 - 02:32
fonte

4 risposte

21

Lo farei:

Percorso A: il metodo semi-tipico

  1. Impara una lingua con una sintassi più regolare come Java, C # o Python. Perl è uno strumento insanamente utile ma è anche molto molto libero in termini di come ti permette di fare le cose. Le altre lingue che ho elencato sono molto, molto meno.

  2. Ottieni un libro sulle strutture dati in tale lingua.

  3. Ottieni un libro su Algorithms in detta lingua.

  4. Ottieni codice completo ed efficace Java / C # / Qualunque sia la versione di Python.

Percorso B: Sentiero dell'Illuminazione di Joel Spolsky (o Morte, prendi la tua scelta)

  1. Ottieni il libro "Codice"

  2. Ottieni K & R "The C Programming Language"

  3. Ottieni la struttura e l'interpretazione della programmazione per computer

Per quanto riguarda il metodo, il metodo 1 ti insegnerà a programmare in modo più regolare. Concetti di Informatica in una certa misura (nessuna teoria della complessità ancora, credimi) e fornirti un linguaggio migliore per lavorare in progetti con altre persone e per creare applicazioni più grandi.

Il Metodo 2 è più hardcore, è molto più un approccio di base con "Codice" che spiega le basi, K & R che introduce il materiale a livello di macchina e il SICP che introduce i concetti di livello superiore. È un percorso molto più difficile ma più mirato.

In entrambi i casi, concediti il tempo. Roma non è stata costruita in un giorno e nemmeno le abilità di programmazione, anche se sei un genio. La programmazione di Peter Norvig in 10 anni è il solito saggio a cui rivolgo le persone.

Addendum:

Per quanto riguarda le cose gratis disponibili: Python the Hard Way come elencato di seguito è un buon inizio, da lì, Come pensare come uno scienziato informatico è una continuazione ragionevole.

Ci sono un certo numero di risorse sugli algoritmi là fuori e, onestamente, probabilmente potresti cambiare i passaggi 3 e 4 senza problemi. Tenete a mente, questo è il punto in cui la matematica inizia davvero a presentarsi, quindi non abbiate mai paura di chiedere aiuto quando arrivi a questo stadio. Questa sembra essere una guida gratuita ragionevole.

In realtà non esiste un equivalente gratuito coesivo a Code Complete per say anche se Codice come a Pythonista sembra abbastanza solido. La cosa importante è concentrarsi sul rendere leggibile il tuo codice una volta che hai ottenuto le basi fondamentali. Non è "necessario" nello stesso modo in cui avere tutta la sintassi del codice corretta è, ma rende molto più facile vivere una volta superato i piccoli programmi o lavorando su qualcosa per un lungo periodo.

Potresti scoprire che mi sono concentrato principalmente su Python, perché è il più semplice dei tre a trovare materiale libero ben scritto. Penso che i tutorial di Java di Oracle siano soddisfacenti, ma sono un po 'aridi e non ideali per i principianti. C # si trova in una situazione simile sebbene nessuno dei due soffra di mancanza di documentazione.

Inoltre, il tuo primo scherzo / gioco di parole CS: vuoi "Riformare" la tua istruzione, non Backtrack.

    
risposta data 08.11.2011 - 03:04
fonte
4

Direi che mira a Impara Python nel modo più duro ; è un buon approccio. Vai da lì; ci vorrà abbastanza tempo per darti il tempo di trovare altre risorse.

A mio parere, il "percorso B" menzionato in un'altra risposta non è appropriato in questa fase.

    
risposta data 08.11.2011 - 03:21
fonte
1

Bene, ho iniziato per la stessa ragione per cui avevo una certa conoscenza del lato hardware ed ero incuriosito dalla programmazione. Mi piace imparare nuove cose.

Ho iniziato con i file batch di DOS, poi con QuickBasic, poi Visual Basic, VBA, MASM, con Access per il database che funzionava prima di avviare il mio primo lavoro. Per me, quello era il percorso migliore, iniziando semplice e poi costruendo da lì.

Direi decidere cosa ti piace di più della programmazione e andare con quel percorso, scripting, sviluppo web, programmazione windows, ecc ... Se non sai, allora inizia a lavorare con alcune lingue per vedere cosa ti piace. Avrai bisogno di tempo però. Ci vogliono circa 5 anni per essere veramente buoni con un linguaggio come Java o forse C ++, IMHO.

Come linguaggio per aiutare ad imparare lo sviluppo web, JavaScript sicuramente, PHP è popolare, e Python, ma questo è IMHO. Si presume che conoscerai o imparerai HTML / CSS. Ho davvero sottovalutato JavaScript, anche se l'ho usato dal 2001. Ho fatto la stessa cosa con i CSS e non pensavo fosse importante. Ho cambiato anche la mia opinione su questo.

Quando cerco di determinare una tendenza, vado a link e fai clic sul link delle tendenze nella parte in alto a sinistra della pagina. Poi inserisco parole chiave come PHP e Python e vedo quali sono state ridotte per le posizioni di lavoro reali che sono disponibili su Internet.

Questo è dal punto di vista della carriera e basato su ciò che mi dà maggior valore per i clienti (datori di lavoro). Non solo da una prospettiva di apprendimento.

    
risposta data 08.11.2011 - 21:20
fonte
-1

Scopri gli algoritmi nella sua forma più semplice, dimentica le lingue per un po '. Ordinare vettori, parole, ecc. Freepascal è un buon linguaggio per iniziare con queste cose, adoro Perl ma con tutte le scorciatoie e le cose interessanti, spesso trascurerai l'algoritmo inerente al programma.

    
risposta data 29.04.2012 - 21:41
fonte

Leggi altre domande sui tag