Come posso ottenere più esperienza di programmazione [chiuso]

9

Sarò uno studente di informatica del terzo anno e ho letto Head prima di Java, Head First C, e attualmente sto leggendo C ++ che è la lingua che mi piace di più visto che ha un buon stile di insegnamento per le persone con esperienza Sto pensando di imparare a fare software con QT, imparare oggettivo C (per iphone) o leggere Effective C ++.

Come posso ottenere esperienza come programmatore? Ho le competenze per partecipare a un progetto open source o ho bisogno di imparare php, mySQL o qualsiasi altra lingua. Amo la programmazione e l'informatica in generale, anche se alcune classi possono essere estremamente difficili (informatica teorica). Ho anche intenzione di diventare un guru in c ++, ma non lo farò presto.

    
posta Anthony 18.08.2012 - 20:57
fonte

6 risposte

11

ABC: SEMPRE ESSERE CODIFICA. È davvero così semplice. Uno dei miei modi preferiti per conoscere una lingua è scrivere un interprete giocattolo per un sottoinsieme della lingua nella lingua stessa o se non è la tua passione allora forse un ray tracer o qualcos'altro che è abbastanza grande per essere non banale ma non così grande da non poter essere completato in un mese o giù di lì. Il punto è lavorare su qualcosa che ti costringerà a guardare la libreria standard e le strutture di astrazione dei dati offerte dalla lingua. A volte il progetto è un successo a volte non lo è, ma alla fine ne so abbastanza di una lingua per sapere quali sono i suoi punti di forza e di debolezza e se voglio continuare ad imparare di più. Se si scopre che mi piace la lingua, ogni volta che leggo un articolo interessante o un post di blog, cerco di iniziare un progetto in cui implemento alcune delle idee che sono state presentate sulla carta o sul post del blog. In questo modo prendo sempre pratica e apprendo nuove idee in modo che diventi un ciclo virtuoso.

Alcuni progetti che hanno funzionato molto bene per me in passato: interprete per un sottogruppo di una lingua, ray tracer, generatore di parser PEG, parser dell'intestazione HTTP, client / server eco semplice, bot di Twitter per postare automaticamente i tweet da una coda , raschietto prodotto amazon per cercare offerte.

    
risposta data 18.08.2012 - 21:02
fonte
8

Come spiegato in Ti insegnerò a programmare in dieci anni , dovresti seguire i seguenti passaggi:

  • Diventa interessato alla programmazione e fallo perché è divertente. Rendere certo che continua a essere abbastanza divertente, così sarai disposto a farlo inserisci i tuoi dieci anni / 10.000 ore.

  • programma . Il miglior tipo di apprendimento è imparare facendo. Per dirla più tecnicamente, "il livello massimo di prestazioni per gli individui in un dato dominio non è raggiunto automaticamente come una funzione di esperienza estesa, ma il livello di prestazioni può essere aumentato anche da individui molto esperti come risultato di deliberato sforzi per migliorare "(p.366) e" l'apprendimento più efficace richiede un compito ben definito con un livello di difficoltà appropriato per il particolare individuo, feedback informativo e opportunità per la ripetizione e la correzione degli errori. "(20-21) Il libro Cognizione nella pratica: mente, matematica e cultura in tutti i giorni La vita è un riferimento interessante per questo punto di vista.

  • Parla con altri programmatori; leggi altri programmi . Questo è di più importante di qualsiasi libro o corso di formazione.

  • Se vuoi, mettiti quattro anni in un college (o più a un laureato scuola). Questo ti darà accesso ad alcuni lavori che richiedono credenziali e ti darà una comprensione più profonda del campo, ma se non ti piace la scuola, puoi (con una certa dedizione) avere un'esperienza simile per conto proprio o sul posto di lavoro. In ogni caso, prenota imparare da solo non sarà abbastanza. "L'educazione informatica non può rendere chiunque un programmatore esperto più che studiare i pennelli e il pigmento può rendere qualcuno un pittore esperto ", dice Eric Raymond, autore di The New Hacker's Dictionary. Uno dei migliori programmatori I mai assunto aveva solo un diploma di scuola superiore; ha prodotto molto ottimo software, ha il suo gruppo di notizie e ne ha abbastanza di magazzino opzioni per acquistare il proprio nightclub.

  • Lavora su progetti con altri programmatori . Diventa il miglior programmatore su alcuni progetti; essere il peggiore di altri. Quando sei il migliore, tu mettiti alla prova le tue abilità per guidare un progetto e ispirare gli altri con la tua visione. Quando sei il peggiore, impari cosa sono i maestri fai, e impari ciò che non gli piace fare (perché ti fanno fallo per loro).

  • Lavora sui progetti dopo altri programmatori . Comprendere un programma scritto da qualcun altro. Scopri cosa serve per capire e risolvere il problema quando i programmatori originali non sono in giro. Pensa a come progetta i tuoi programmi per renderlo più facile per quelli che manterranno loro dopo di te.

  • Impara almeno una mezza dozzina di linguaggi di programmazione. Includi uno linguaggio che supporta le astrazioni di classe (come Java o C ++), uno che supporta l'astrazione funzionale (come Lisp o ML), uno che supporta l'astrazione sintattica (come Lisp), che supporta specifiche dichiarative (come i modelli Prolog o C ++), uno che supporta le coroutine (come l'icona o lo schema) e quella che supporta parallelismo (come Sisal).

  • Ricorda che c'è un "computer" in "informatica". Competenza a lungo ci vuole il tuo computer per eseguire un'istruzione, prendere una parola dalla memoria (con e senza una mancanza di cache), leggi le parole consecutive dal disco e cercare una nuova posizione sul disco. (Risposte qui.)

  • Partecipa a uno sforzo di standardizzazione della lingua. Potrebbe essere il Comitato ANSI C ++, o potrebbe decidere se la tua codifica locale lo stile avrà 2 o 4 livelli di indentazione spaziale. Ad ogni modo, tu scopri cosa piace ad altre persone in una lingua, quanto profondamente sentirsi così, e forse anche un po 'sul perché si sentono così.

  • Avere il buon senso di scendere dallo sforzo di standardizzazione della lingua come il più rapidamente possibile.

risposta data 18.08.2012 - 22:13
fonte
3

Suggerirei di allenarti scrivendo efficacemente programmi funzionali. Prendi un progetto più grande una volta che pensi di avere le basi. Impara il framework qt per lo sviluppo del software e continua a esercitarti. Il modo migliore per imparare a programmare è in realtà scrivendo il codice.

Direi che anche la lettura gioca un ruolo importante, potresti cercare un gruppo di sviluppatori che ospitano un progetto open source (cercane uno su github o altri siti simili) perché potrebbero offrirti un'esperienza di sviluppo del team preziosa .

    
risposta data 18.08.2012 - 21:02
fonte
2

A volte posti come sourceforge sono un po 'scoraggianti all'inizio. Un modo davvero carino per trovare qualcosa da fare, è navigare attraverso i tracker di problemi dei progetti e trovare un bug / problema a cui ti piace il suono del fix.

Su alcuni progetti github su piccola scala questo diventa molto più accessibile. Hai effettivamente una direzione e uno scopo nel cercare di ingannare il codice, invece di attraversarlo ciecamente.

    
risposta data 18.08.2012 - 21:37
fonte
1

I campioni nei libri o gli incarichi all'università sono buoni punti di partenza per capire come funziona la programmazione e mostrano le possibilità per i tuoi progetti futuri.

Lavora su progetti reali

Ma senza una vera esperienza di progetto, tendi a dimenticare le cose che hai imparato.

I problemi sono opportunità per mostrare ciò che puoi

Inoltre, vedete nel progetto reale quanto siano complessi i requisiti e vi esponete a problemi difficili da battere. Questi problemi sono opportunità per mostrare ciò che puoi. Puoi vedere i tuoi lati deboli che dovresti migliorare.

    
risposta data 19.08.2012 - 00:30
fonte
-1

do I need to learn php, mySQL or any other language.

Sì signore, per favore considera le lingue del world wide web. HTML5, CSS3 e JavaScript.

Ecco perché:

  1. Sono rapidi da imparare e sempre più ricchi da implementare.

  2. Non scrivono più solo web, ma anche os, server e, database.

  3. Soprattutto *

    Ora vengono utilizzati per ridefinizione di Computer Science 101 - dal creatore di jQuery, John Resig.

Non sparare al messenger, basta controllare questo link per khan school academy .

c / c ++ / c # design pattern trasferisce a JS lì.

Spero che ti aiuti.

    
risposta data 19.08.2012 - 02:30
fonte

Leggi altre domande sui tag