Past If statements Arrays, loop ... E adesso?

9

Ho rinunciato a programmare un po 'più di un anno fa quando ho continuato a colpire questo muro. Sto rivisitando l'argomento perché voglio creare un'applicazione Android di base. Ma sento che la mia conoscenza limitata non sarà sufficiente.

Ecco il mio problema.

Ho letto alcuni libri e ho guardato video tutorial su C # / Java, ho seguito degli esempi e poi ho finito il libro. Alla fine sembrano sempre lasciarmi interdetti su cosa fare dopo.

Che cosa significa che ti insegnano dalla tua applicazione base "ciao mondo" fino alle if e agli array, quindi ti aspetti di sapere come uscire nel mondo della codifica e creare qualcosa.

Mi sto perdendo qualcosa qui? So che questi sono gli elementi costitutivi di tutti i programmi, ma i libri che ho letto non mi mostrano mai realmente cosa fare dopo.

La risposta facile suppongo sarebbe quella di "iniziare a programmare", ma dove? Ho letto "Head First Java" per esempio; fino alla parte ti hanno detto di prendere tutto ciò che hai imparato e creare un gioco di corse di cani ....

"cerca di non imbrogliare e guarda il codice sorgente fornito, dovresti essere in grado di farlo ora" _ questa non è una citazione esatta ma fondamentalmente è quello che mi è stato detto .......

Mezz'ora fa stavano solo spiegando come fare gli array, quindi senza alcuna teoria, sono destinato a creare un gioco di lavoro?

Il motivo per cui lo chiedo è perché temo che questo sia tutto ciò che dovrei sapere per iniziare a programmare, ma mi sembra che mi sia stata data una piccola cassetta degli attrezzi e mi sia stato detto di costruire un grattacielo.

Grazie per qualsiasi consiglio

    
posta user76625 04.01.2013 - 03:56
fonte

8 risposte

10

What a mean is they teach you from your basic "hello world" app all the way up to if's and arrays then seemingly expect you to know how to go out into the world of coding and create anything.

Am I missing something here? I know these are the building blocks of all programs but books that I read never really show me what to do next.

In realtà no. Non lo sono. Gli elementi costitutivi di tutti i programmi sono l'astrazione e il riutilizzo. Un sacco di linguaggi di programmazione non ha nemmeno ha matrici o if s o cicli.

Ci sono alcuni grandi libri che ti insegnano come programmare piuttosto che come funziona un particolare linguaggio di programmazione, che sembra essere il libro che hai letto.

Come progettare programmi alias HtDP è un libro di questo tipo. Ti insegna, bene, come progettare programmi. E lo fa dando le ricette da seguire per analizzare i problemi, risolverli, trasformarli in algoritmi e in programmi di lavoro.

Si noti che la "ricetta" è fondamentalmente un'altra parola per "programma", quindi in altre parole, il libro insegna ai programmi che gli umani devono girare nella loro testa per generare programmi che devono essere eseguiti dai computer. Quant'è fico? : -)

Gli autori stanno attualmente lavorando a una bozza per una seconda edizione di HtDP , che potresti voler leggere invece della prima edizione. Il materiale sulla programmazione imperativa è stato rimosso e verrà trattato nel secondo volume non ancora scritto Come progettare i componenti , ma puoi leggere quei capitoli mancanti dalla prima edizione.

Nota che l'HtDP non ha conoscenze di programmazione e si rivolge agli studenti delle scuole superiori. Ma non lasciare che questo ti fermi: significa solo che probabilmente sarai in grado di finire alcuni primi capitoli più velocemente, ma non penso che ti annoierai.

Le Abstractions concrete sono anche una buona lettura lungo le vene simili. Come HtDP, non presuppone alcuna conoscenza di programmazione.

Un altro libro che potresti sentire menzionato è Struttura e interpretazione dei programmi per computer aka SICP. È uno dei più grandi libri di programmazione mai scritti e, ancora una volta, non presuppone alcuna conoscenza di programmazione.

È è , tuttavia, orientato a completare i neofiti che studiano al MIT . E così, mentre non presuppone alcuna conoscenza di programmazione, fa assume un bel po 'di conoscenza dominio , ad es. nei campi dell'ingegneria elettrica, della fisica e della matematica. Nota: questi non hanno nulla a che fare con i concetti che vengono insegnati, sono solo necessari per comprendere gli esercizi e esempi . Quindi, potrebbe essere meglio leggere prima HtDP o Concrete Abstractions e poi leggere SICP.

    
risposta data 04.01.2013 - 04:40
fonte
5

Bene, non sei in una situazione unica. La maggior parte dei libri dei libri per principianti nel linguaggio di programmazione tendono a concentrarsi maggiormente sugli elementi costitutivi fondamentali del linguaggio e questa è una buona cosa. Tuttavia, come è successo con te, alla fine ci troviamo in una situazione in cui abbiamo imparato ogni singolo costrutto che la lingua ha da offrire, ma non possiamo applicarlo per risolvere alcuni problemi pratici. In breve, il divario tra esempi testuali e programmi pratici può essere colmato solo quando si tenta di giocare con il codice (come Telastyn) ha detto.Ecco quello che generalmente faccio mentre apprendo alcune cose nuove:

  1. Mentre apprendi dal libro, prova a trovare alcuni scenari di vita reale in cui è possibile applicare alcuni esempi di codice / tecnica nel libro.
  2. Prova a mescolare i programmi di esempio forniti nel libro per creare qualcosa che sia più grande e complicato. Dopo di ciò prova a minimizzare il codice e scrivi un codice diverso che dà lo stesso risultato.
  3. Google per progetti pratici relativi alla lingua in esame.
  4. Dopo che sei sicuro di aver imparato l'elemento base della lingua, sperimenta una struttura di tua scelta. Per la prima volta, scegli qualcosa che abbia una curva di apprendimento più semplice.
  5. Cerca alcuni progetti esistenti e prova a studiarne il design.
  6. Vai per libri avanzati che ti insegnano più elementi avanzati di progettazione delle applicazioni come modelli di applicazione, progettazione OO e implementazione ecc.

Alla fine tutto ruota attorno alla pratica e alla ricerca che ti aiuteranno a migliorare le tue capacità di programmazione e, infine, a renderti un architetto di molti grattacieli.

    
risposta data 04.01.2013 - 04:39
fonte
2

Vedi questo per C #. È molto completo: link L'ho usato io stesso, solo sei mesi fa. Io uso il compilatore #Develop con esso per gli esempi. Non posso aiutarti molto con Java perché non l'ho usato quasi mai.

Quando arriva il momento di programmare, ciò che molte persone non si rendono conto è che di solito si utilizza un SDK o un framework aggiuntivo per ciò che si sta progettando. Quindi non aspettarti di passare immediatamente da Java o C # alla programmazione del telefono, perché è probabile che tu abbia bisogno di un buon framework intermedio, e le curve di apprendimento per quelle possono essere noiose come le curve di apprendimento per i linguaggi di programmazione stessi. Sebbene il tutorial in C # abbia postato solo copertine C #, molti dei concetti trattati sono visti in altri linguaggi orientati agli oggetti, come Java.

Modifica: lo scenario che descrivi è, purtroppo, il percorso seguito da molti tutorial. Non devi seguire un tutorial simile e, se funziona in modo contrario al tuo modo di apprendere, è probabilmente meglio provare a prenderne uno diverso (non ne conosco nessuno, ma probabilmente Google lo fa). Ma per sicurezza, controlla se l'autore di quel libro che stai descrivendo ha spiegato il codice riga per riga. Non preoccuparti di quanto sei intelligente, solo un prodigio potrebbe passare direttamente da un libro a un gioco di lavoro. Ricorda, le esercitazioni non sono affatto la misura standard dell'abilità, quindi scegli quello che ti insegna meglio e non scoraggiarti!

    
risposta data 04.01.2013 - 04:06
fonte
1

Sì, dovrebbe essere sufficiente per creare programmi super base. A questo punto, provi a fare un programma un po 'più complesso di quello che i libri facevi. Quando hai bisogno di fare qualcosa di specifico e non sai nemmeno con un po 'di lavoro, allora cerchi in Internet o chiedi a un insegnante / mentore. Ciò condurrà a funzioni più avanzate (e abbastanza spesso fino a un punto morto dal momento che hai inconsapevolmente scelto qualcosa di molto più complesso di quello che puoi fare).

Nessun libro ti insegnerà come risolvere i problemi.

Nessun libro spiegherà come progettare i programmi, che viene fornito con la pratica. Nessun libro ti insegnerà come fare un'applicazione non banale - c'è solo troppa sfumatura; impareresti come costruire un'implementazione che non cose simili.

Il modo migliore per imparare a questo punto è quello di dilettarsi. Giocare con il codice per creare qualcosa. Proprio come gli artisti spesso iniziano a scarabocchiare piccole curiosità che diventano progressivamente più sofisticate e di bell'aspetto, così i programmatori hanno bisogno di quella progressione esplorativa.

    
risposta data 04.01.2013 - 04:15
fonte
1

Non riesco davvero a ricordare se ho usato un libro per entrare in programmazione, ma suppongo che a quei tempi si trattasse più di un manuale di riferimento sulla sintassi che di un libro tutorial. Mi ha insegnato che cosa poteva fare il linguaggio di programmazione, ma non come creare un'applicazione reale con esso.

Per fortuna c'erano alcuni esempi nel libro che ho usato per digitare (sì, nessun esempio di codice sorgente scaricabile allora) e poi ho cercato di capire come funzionava. Non è il modo migliore per imparare la programmazione, ma per me è stato divertente in quel momento.

Quello che ti consiglierei è che ti prefiggi un obiettivo come " Voglio creare un'applicazione Javascript che disegna un cerchio rimbalzante " e quindi usa le tue conoscenze già acquisite per iniziare e cercare tutto il resto nella lingua SDK / documentazione e / o qui su SO.

Questo è l'approccio che sto utilizzando quando cerco di entrare in una nuova lingua e di imparare i miei primi passi. La maggior parte dei libri che ho letto negli ultimi giorni non mi ha soddisfatto perché ho avuto la stessa sensazione di perdere qualcosa di importante . Ma per fortuna ora abbiamo gli internets, quindi qualunque lingua tu voglia imparare, puoi trovare un esempio di codice sorgente su Internet e usarlo per continuare il tuo apprendimento.

modifica Naturalmente, alcuni libri più generali che insegnano come progettare un'applicazione o quale processo (SCRUM, XP, V-Modell) da seguire è una buona aggiunta alla pura conoscenza del linguaggio.

    
risposta data 04.01.2013 - 08:17
fonte
1

Sono d'accordo con Jörg sul fatto che dovresti anche leggere alcuni libri generali sui concetti di programmazione piuttosto che imparare troppi dettagli su una lingua particolare in questa fase. Per quanto riguarda il libro How to Design Programs , è usato come riferimento in questo corso , che potrebbe interessarti.

Altrimenti, un altro strumento che altri non hanno menzionato è parlare molto con altri sviluppatori . Ricordo che per me uno dei modi più efficaci per imparare a programmare era passare molte ore a discutere con colleghi o altri programmatori su aspetti di programmazione, linguaggi di programmazione, tecniche o problemi concreti che stavo affrontando in quel particolare momento. La trasmissione orale della conoscenza può ancora essere uno dei mezzi più efficaci per l'apprendimento di nuove competenze.

    
risposta data 04.01.2013 - 11:13
fonte
0

Suggerirei di trovare progetti open source e trasformarli in sandbox personali. Modifica i comportamenti esistenti, aggiungi nuovi comportamenti ed elimina anche alcuni. Giocare, implementare le proprie idee e "cosa succede se ho provato questo".

Non ti sto sostenendo per convertire un progetto open source di qualcun altro e rivendicarlo come tuo.

Sto dicendo di guardare altri progetti di lavoro come mezzo per insegnare a te stesso come arrivare ai prossimi passi. Ci sono molti siti disponibili con il codice opensource da scaricare. Ecco alcuni che vengono in mente: CodePlex CodeProject

    
risposta data 09.01.2013 - 23:59
fonte
-5

Questa è la vita dei programmatori. Non conosci una tecnologia, ma sviluppi un "mondo ciao" e diventi un esperto. Nelle aziende (vita reale) è come funziona. Buona fortuna

    
risposta data 04.01.2013 - 10:59
fonte

Leggi altre domande sui tag