Costruire un programma completo?


15

Leggere libri, guardare video e rivedere tutorial è molto semplice. Prendere appunti e imparare effettivamente il materiale può essere leggermente più difficile, ma anche in questo caso, chiunque abbia un cervello decente e un discreto interesse, è abbastanza facile (per non dire, divertente).

Il fatto è che non ti prepara davvero a scrivere un programma o un sito Web completo. Diciamo che sei quegli adolescenti (solo al liceo, senza veri corsi di informatica o di programmazione (a livello universitario) e nessuna esperienza nel mondo reale), e esci con Groupon. O persino Mark Zuckerburg, sicuro che fosse un genio, ed era un programmatore molto capace ... ma come?

Come consigliate che le persone che non sono necessariamente nuove alla programmazione, ma nuove alla programmazione di applicazioni reali e veri programmatori, procedano allo sviluppo? Qual è il "processo di sviluppo", in particolare per i singoli programmatori (o forse 2-3 adolescenti)?

Inoltre, per quanto riguarda lo sviluppo web, qual è il processo? Qualcosa come Facebook o Groupon è stato scritto con un framework (come CodeIgniter o Zend per PHP)? O sviluppano i loro quadri? Non sto chiedendo come elaborare una grande idea, ma come implementare grandi idee in modo efficace? Qualcuno ha un consiglio?

Ho letto un paio di libri su C e C ++ (principalmente il linguaggio di programmazione C e il linguaggio di programmazione C ++) e ho preso AP Computer Science (oltre a leggere alcuni libri aggiuntivi su Java e OOP). Ho anche letto alcuni tutorial su PHP (e CodeIgniter) e Python. Ma sono ancora al liceo e tecnicamente non sono nemmeno abbastanza vecchio per lavorare in uno stage per qualche altro mese.


3
Reading books, watching videos, and reviewing tutorials is all very easy. Sì, leggerli è facile, capirli è la parte difficile.
yannis,

@Yannis Rizos In realtà, li capisco e ne parlo nella frase successiva.
Bob,

@Bob apprende il materiale e capisce davvero che in realtà è abbastanza diverso, il secondo è molto più difficile. La mia definizione personale di "comprensione" è quando posso spiegare l'argomento in questione in un modo che un bambino di dieci anni capirebbe. Veloce, spiega "interfacce" :)
Thanos Papathanasiou,

1
@ThanosPapathanasiou Software, hardware o concetto OO? :)
yannis,

2
@YannisRizos questa è la bellezza nello spiegare cose come faresti con un bambino di dieci anni, saresti costretto a usare un esempio semplificato che incapsulerebbe tutti e tre :)
Thanos Papathanasiou

Risposte:


8

C'è una differenza tra il semplice sapere come programmare e il saper strutturare un programma (architettura software).

Un semplice libro su un linguaggio di programmazione specifico ti insegnerà solo gli strumenti che puoi utilizzare per configurare l'architettura di un programma.

Ci sono anche libri che ti aiutano con l'architettura software. Gli argomenti che dovresti cercare sono i modelli di progettazione , l'astrazione del software , l'architettura / progettazione del software e molti altri ... ( Head First Design Patterns è stato un vero toccasana per me.)

Per un insieme più ampio di risorse, questa domanda potrebbe interessarti.

Il modo migliore per imparare a strutturare correttamente un intero programma è ancora l'esperienza pratica, essendo molto aperto a suggerimenti e nuove tecniche mentre lo fa.


6

È lo stesso problema molto comune con lo sviluppo di giochi (indie): come finire.

Oltre a assicurarti di poterlo fare, o perché hai tutte le conoscenze necessarie o sei disposto a imparare - e hai verificato che altre persone abbiano verificato che non fosse impossibile ...

... la cosa principale che rende possibile la "finitura" è fissare obiettivi .

Gli obiettivi sono l'obiettivo da raggiungere, non devono descrivere come arrivarci, ma solo quali sono i requisiti / le funzionalità di base di cui hai bisogno per considerare "finita" una prima versione della tua app. Inoltre, non fissare obiettivi troppo lontano nel tempo.

Scrivi i tuoi obiettivi da qualche parte. Scrivilo.

Dopo aver fissato gli obiettivi, dovrai solo trovare il modo di raggiungerlo. Questo è il famoso "percorso" che è più interessante dell'arrivo. Non preoccuparti di raggiungere i muri e scoprire quanto ti sbagli. La maggior parte delle volte, se l'argomento è nuovo, sbaglierai e imparerai perché e sarai in grado di farlo nel modo giusto e avrai fatto un'altra configurazione per avvicinarti agli obiettivi.

Anche nella progettazione del gioco, sappiamo che devi fornire obiettivi per assicurarci che il giocatore sappia, anche in modo astratto, cosa deve raggiungere, qualunque sia il modo in cui lo fa.


4

Leggere molto sul nuoto non rende uno un nuotatore. Ovviamente ne prepara uno con le conoscenze necessarie, per diventare un nuotatore che devi saltare in acqua.

Vedo che molte persone che hanno appena fatto ciò di cui hanno pensato / letto sul farlo sono quelle che hanno avuto successo.

Se vuoi essere un nuotatore, tuffati nell'acqua e impara a nuotare, se vuoi essere un programmatore, inizia a programmare con un'idea e impara a programmare.

Credo che il saggio di Peter Norvig sia pertinente qui: insegnati a programmare tra 10 anni


2
Buona risposta! Ho due amici che continuavano a leggere (iniziando a leggere) libri sulla programmazione sperando che un giorno si sarebbero sentiti pronti per iniziare a programmare. Non lo sentirai mai. Basta saltare nell'acqua fredda e iniziare a lavorare su un vero progetto. Se ritieni che sia troppo complesso, scegline uno più piccolo. Lavoraci fino a quando non è finito. Durante il progetto, cerca libri e letture in base alle questioni aperte che compaiono mentre procedi.
Giorgio,

1

Sembra che ti concentri troppo sugli aspetti dell'implementazione del software, che è solo una frazione dell'intero processo di sviluppo del software (vedi SDLC). Potrebbe essere necessario esaminare alcune metodologie software e imparare come utilizzare quello che ti piace. Oltre a ciò, leggi case study, scopri i vantaggi e gli svantaggi di ogni strumento che considereresti di utilizzare anche nel tuo software, valuta e passa da lì. Dopo una rapida lettura della tua domanda, potresti dover concentrarti sulle aree di analisi e progettazione del software e conoscere UML, la decomposizione e forse alcuni modelli di progettazione .. forse ..

Spero che sia di aiuto..


0

Risposta breve, imposta i tuoi obiettivi e inizia.

Non esiste un libro o un modo per insegnartelo ma un'esperienza pratica.

Farai molti errori e acquisirai gradualmente esperienza. Quindi, se si verifica un problema, pensaci, prova a trovare una soluzione e se fallisci vai a StackOverflow e ottieni aiuto. Avere anche revisioni del codice il prima possibile e il più possibile.

Dopo aver terminato il tuo primo progetto e avere una buona conoscenza dei problemi tecnici, inizia a esaminare argomenti più astratti e più avanzati dell'ingegneria del software.

Con la consapevolezza recentemente acquisita dei problemi comuni, otterrai i libri che riassume i concetti di avere un codice pulito e disaccoppiato, perché il tuo primo progetto sarà un disastro non mantenibile.

Libri (soliti sospetti):


0

A questo punto è necessario interrompere la lettura della programmazione e iniziare la programmazione. Se si desidera creare un sito Web, seguire un tutorial per il framework di propria scelta. Scegli quello che ti piace. Segui l'esercitazione per imparare a utilizzare il framework, quindi inizia a creare la tua applicazione web.

Dopo aver scritto del codice, i libri sulle tecniche di programmazione avranno molto più significato.


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.