it-swarm.it

Non riesco ancora a capire come programmare?

Ho letto molti libri per vari linguaggi di programmazione, Java, Python, C, ecc. Capisco e conosco tutte le basi dei linguaggi e comprendo algoritmi e strutture di dati. (Equivalente di due anni di lezioni di informatica)

MA, non riesco ancora a capire come scrivere un programma che fa qualcosa di utile.

Tutti i libri di programmazione mostrano come scrivere la lingua, ma NON come usarla! Gli esempi di programmazione sono tutti molto semplici, come costruire un catalogo di carte per una libreria o un semplice gioco o usare algoritmi, ecc. Non ti mostrano come sviluppare programmi complessi che fanno effettivamente qualcosa di utile!

Ho esaminato i programmi open source su SourceForge , ma per me non hanno molto senso. Esistono centinaia di file in ciascun programma e migliaia di righe di codice. Ma come posso imparare come farlo? Non c'è niente in nessun libro che posso comprare su Amazon che mi dia gli strumenti per scrivere uno di questi programmi.

Come si passa dalla lettura di Introduzione a Java o Programming Python, o C Programming Language, ecc.) Per poter effettivamente dire, ho un'idea per il programma X? È così che vado di svilupparlo?

Sembra che ci sia molto di più coinvolto nella scrittura di un programma di quanto tu possa imparare in un libro o da una lezione. Sento che c'è qualcosa.

Come posso essere messo sulla strada giusta?

122
Mark K.

Costruire programmi più complessi arriva con l'esperienza. Quando ho programmato per la prima volta, pensavo di fare bene se fosse lungo più di 25 righe (e dovevo usare la barra di scorrimento) Ora scrivo centinaia di righe al giorno per anni sulla stessa applicazione di progetto.

Questa pagina potrebbe essere interessante "Insegnati a programmare in dieci anni" http://norvig.com/21-days.html

A proposito: è molto difficile avviare un programma. Uno scrittore potrebbe chiamarlo "blocco degli scrittori". Invece ti suggerisco di iniziare a scrivere codice e migliorarlo. Non abbiate paura di eliminare grandi sezioni che non fanno ciò di cui avete bisogno. Ricomincia, questa volta scriverai con un'idea migliore di ciò che stai facendo. Ricomincia e scoprirai che non hai bisogno della metà delle cose che hai scritto l'ultima volta. Quando un autore scrive una storia, ci vuole molto tempo, molta scrittura e riscrittura, ecc. Molte recensioni e feedback ed è finito solo quando deve essere pubblicato (rilasciato)

93
Peter Lawrey

Sono sempre stato travolto anche da progetti molto grandi, come quelli che trovi su SourceForge o GitHub. Mi chiedevo come chiunque, o anche un team, potesse capire cosa stava succedendo tra 10 o 100 di file, con migliaia e migliaia di righe di codice.

Nessuno lo fa. Almeno inizialmente.

I progetti sono cose organiche. Ciò che inizia come un'idea davvero semplice, può espandersi rapidamente in un enorme lavoro. Questa è, credo, la ragione principale dello sviluppo iterativo invece del classico approccio a cascata.

Pensa a costruire un'auto. Mentre sembra abbastanza semplice dall'esterno, approfondendo anche un piccolo modo in te scopri che ci sono un numero enorme di considerazioni, compromessi e casi innocenti che devono essere gestiti.

Esempio:

Nel caso di un progetto semi-grande, spesso inizia in piccolo. "Voglio costruire un server cache". Quindi trascorri qualche giorno a fare a pezzi e arrivi a qualcosa che funziona, ma che potrebbe essere migliorato notevolmente. Quindi aggiungi il concetto di threading.

Quindi si verificano problemi di concorrenza dovuti a tale thread. Quindi risolvi modificando le strutture di dati simultanee.

Ora il processo è rallentato. Quindi si modificano le strutture di dati simultanee in quelle normali, ma si forniscono meccanismi di blocco per la sincronizzazione.

Sembra che tutto funzioni correttamente, tranne per il fatto che gli utenti iniziano a lamentarsi del fatto che le operazioni non sono atomiche e che i dati vengono danneggiati.

Quindi aggiungi alcune classiche operazioni atomiche, come l'incremento e il salvataggio. Funziona e i tuoi utenti sono felici. Ma qualcuno apre un ticket chiedendo se è possibile fare operazioni di lista.

Quindi trascorri una settimana o due a costruire quella funzione. A questo punto, un amico decide di aiutarti. Ci lavori insieme, lo completi e lo rilasci.

Due biglietti aperti. C'è un bug nell'elaborazione dell'elenco e ci sono alcuni rari casi che sono deadlock.

Il tuo amico lavora sul bug di elaborazione dell'elenco, mentre affronti il ​​deadlock. Ti rendi conto che deve avvenire una riscrittura abbastanza significativa per le operazioni atomiche.

... e così via.

Questo sembra abbastanza tipico di come cresce un progetto. Circa 10 file sono appena cresciuti a 20 in un paio di settimane. Sono state aggiunte nuove funzionalità che non erano parte del piano originale. Aggiunte correzioni di bug contorte che aumentano il codice in modo innaturale.

Il mio consiglio:

Non lasciarti sopraffare. Se hai un'idea, implementa funzionalità. Se vale la pena proseguire dopo, aggiungi poco a poco. Lascia che il tuo progetto cresca in modo naturale.

70
Josh Smeaton

Anche il più grande programma inizia con un'idea e viene scritto una riga alla volta.

Il modo migliore (forse l'unico) per imparare a scrivere programmi del mondo reale è iniziare a farlo. Quando si verificano problemi, si cerca nel Web o si chiedono qui soluzioni a tali problemi. Alla fine, acquisirai esperienza e dovrai chiedere meno spesso.

Tuttavia, ci sono alcune cose di cui dovresti essere consapevole fin dall'inizio:

  • Oggigiorno quasi nessuna grande applicazione è completamente scritta da zero. Puoi fare molto di più in un tempo molto più breve se usi librerie e framework di alta qualità esistenti. Iniziare con questi spesso sembra abbastanza frustrante e richiede più lavoro che farlo da soli, ma non è quasi mai vero.
  • Pensare attentamente a come strutturare il programma (come progettarlo) è molto importante quando i programmi diventano più grandi. Dedica un po 'di tempo a questo e leggi alcuni libri sul design (in particolare consiglierei "Clean Code") e sull'ingegneria del software, nonché sulle basi tecniche.
28

Quello di cui stai parlando è più ingegneria del software che programmazione. È un po 'di architettura, un po' di "buone pratiche" e "modelli di progettazione", un po 'di lavoro con gli altri. Mentre ci sono libri che possono aiutare, la maggior parte proviene dall'esperienza. Nessuno inizia scrivere, diciamo, Microsoft Word.

Pensa a un programma "reale" che vorresti scrivere. Ora pensa ai vari pezzi che devi costruire per farlo funzionare come desideri. Ad esempio, in un moderno gioco in prima persona avrai bisogno di un motore grafico 3D, AI non di carattere giocatore, un modulo audio/musicale, un motore fisico e un modulo di livello superiore che impone le regole del gioco (sa la "mappa", come interagiscono i vari personaggi, ecc.). E poi c'è la grafica e il design dei personaggi e la musica, nessuno dei quali è un codice ma che è necessario per completare il gioco.

Ora: quale di questi ti costruirai e quale andrai altrove? I progetti software più grandi non sono programmati da zero. Forse utilizzerai un motore 3D standard e un modulo musica/suono e programmerai solo le cose che rendono unico il tuo gioco. OK, quindi devi capire quali moduli di terze parti utilizzerai, che coinvolgeranno fattori come il costo, con quali lingue lavorano, con quali caratteristiche hanno, come sono progettate le loro API (ovvero, come completarle è, come si adatta al tuo stile di programmazione personale, ecc.). Forse scriverai "prove di concetto" o testerai programmi usando uno o due candidati per i vari moduli di terze parti per assicurarti che faranno tutto ciò di cui hai bisogno e che siano facili da usare.

Inoltre, anche il codice che vuoi scrivere da solo potrebbe essere un lavoro troppo grande per te da solo da completare nell'intervallo di tempo che hai in mente. Di quanti altri programmatori hai bisogno per lavorare al progetto? Come suddividerai il lavoro? Come saranno progettati i vari moduli in modo che si adattino tutti insieme anche se sono stati scritti da persone diverse? Come lavorerete tutti sullo stesso codice sorgente senza cancellare le reciproche modifiche (risposta: controllo della versione, che è estremamente utile quando lavori da solo ma indispensabile quando lavori con altri).

Dopo aver capito quali moduli vuoi scrivere internamente, esegui lo stesso processo. Capisci i pezzi di ciascun modulo, come dovrebbero combaciare, e quale ti scriverai e quale andrai altrove. Continua a scomporre le cose fino a quando ogni pezzo non è abbastanza piccolo da tenerlo in mente, così da poter dire "sì, potrei scriverlo!" E poi fallo. Mentre lo fai, incontrerai ostacoli imprevisti nel modo in cui i vari pezzi del tuo programma si incastrano. Questi saranno frustranti, ma sono opportunità per te per saperne di più sul tuo mestiere e dovrebbero essere visti in questo modo.

Inizialmente, sarai in grado di contenere solo piccoli pezzi del tuo programma - diciamo, singole funzioni - nella tua mente, e quindi dovrai scomporre molto le cose prima di iniziare a scrivere codice. Man mano che acquisisci esperienza, penserai alle funzioni in anziché pensare alle funzioni about e inizi a pensare about oggetti. E poi penserai in oggetti e penserai about moduli più grandi. Infine, penserai in moduli e penserai about programmi interi, grandi, reali.

E poi scoprirai che hai ancora molto da imparare ... ma così va. Se, come programmatore, smetti mai di imparare, sei obsoleto e verrai sostituito con un modello più recente.

Comunque, non aver paura e non preoccuparti se questo suona ... orribile o impossibile e dopo tutto non vuoi davvero essere un programmatore. Non è per tutti. Amo la musica e i dessert e so suonare un po 'le chiavi e cucinare alcuni piatti, ma non sono disposto a dedicare il tempo necessario per diventare un grande musicista o un grande chef.

Se risulta che non vuoi essere un programmatore che scrive applicazioni desktop grandi e reali, esistono altri tipi di lavori di programmazione. Ad esempio, potresti diventare un programmatore incorporato. Ci sono sfide definite e interessanti coinvolte nella scrittura di programmi integrati e stai facendo un lavoro utile, ma in genere i programmi sono piuttosto più piccoli delle applicazioni desktop. Oppure potresti scrivere applicazioni web. Sul Web, è facile incollare insieme un po 'di funzionalità, in modo da poter scrivere (ad esempio) un sistema di commenti Web e sarebbe utile anche se non è un'intera applicazione Web. È facile migliorare anche in modo incrementale anche le cose sul Web, quindi puoi iniziare con (diciamo) un client di posta Web di base e, nel tempo, evolverlo in qualcosa come Gmail. (Ma non farlo, perché allora competerai con Gmail.)

Se non vuoi assolutamente essere un programmatore, ma vuoi comunque lavorare con i computer, potresti andare nel settore IT o in qualche altro campo tecnico. In questi casi, conoscere tutta la programmazione che già fai è molto utile, perché i tuoi colleghi potrebbero non avere nemmeno così tanto. O, sai, diventa un musicista se questo piace, perché (come la maggior parte dei campi) coinvolge i computer oggi. Scrivi piccoli programmi che manipolano l'audio o MIDI in vari modi intelligenti, rendendoti così un musicista migliore. Scoprirai che qualsiasi abilità di programmazione che possiedi può essere applicata in molti campi per farti meglio nel tuo lavoro.

15
kindall

Non capirai come programmare a meno che non ti trovi ad affrontare un vero compito. Nessuna teoria avrebbe mai sostituito un semplice compito nel mondo reale. Prima di iniziare a lavorare su scenari r-w, stavo leggendo ingenuamente molti libri, con tutti gli esempi, ma quando ho affrontato un problema reale, non sono riuscito a raccogliere tutte le mie conoscenze teoriche per completare l'attività. Se sei un principiante, ti consiglierei di ottenere i compiti ovunque tu sia. Non pensare che siano inutili se non li hai risolti. Come primo passo, prova a risolvere i problemi della struttura dei dati, come ordinare un elenco collegato, eseguire DFS, BFS su alberi, grafici, ecc. Non solo migliorerà le tue capacità di codifica, ma, cosa più importante, migliorerà le tue capacità analitiche e di algo , che mi fido di me è una conoscenza preziosa. Quindi, quando saprai che puoi oscillare con puntatori, ricorsione, riferimenti, ecc., Prova a implementare un semplice risolutore di equazioni lineari o qualcosa del genere.

Linea di fondo. Si tratta di pratica. Continua a scavare e codice, codice, codice.

9
Sorantis

Inizia con i giochi per computer, come hanno fatto tutti gli altri. Un buon gioco è sia una sfida di programmazione che di progettazione, richiede un'attenta riflessione sulla struttura interna e utilizza le librerie di sistema in modi che insegnano molto, ma non tendono a rompere le cose e non richiedono una "buona ragione con un buon risultato" come fa il vero software "utile".

La regola generale è che dopo aver scritto abbastanza cose, accadrà inevitabilmente una sorta di Illuminismo.

Un buon punto di partenza (se hai voglia di C) è http://gamedev.net/ , in particolare http://nehe.gamedev.net/ . Ci sono anche molti altri punti positivi per iniziare: D

7
Mirek Kratochvil

Proprio come guidare o cucinare, la programmazione è qualcosa che impari a fare facendo. La pratica è insostituibile.

Se gli esempi di libri di testo sono già troppo semplici per te, è fantastico! È ora di muoversi per qualcosa di più complesso - e già puoi capire alcuni esercizi stimolanti per te stesso.

Oppure, se hai in mente un'idea specifica, spezzala a pezzi. Risolvi prima un piccolo sottoinsieme del problema. Quindi espandere. Quando l'integrazione del nuovo codice con il codice esistente diventa difficile, riprogetti tutto.

6

Stai guardando l'intero programma enorme e sembra impossibile. Ma il tutto è composto da piccoli stupidi programmi come quelli che stai dicendo "non fare nulla di utile".

Ciò di cui hai bisogno è l'esperienza di scomporre enormi compiti complessi in piccoli compiti semplici. Questa è la radice di tutta la programmazione. Il resto è solo semantica.

6
Satanicpuppy

Scrivi uno script di 200 righe. Quindi inizia a migliorarlo.

Featuritis ti porterà a 100 file sorgente e diverse centinaia di KLOC in pochissimo tempo :)

5
richo

"Non ti mostrano come sviluppare programmi complessi che effettivamente fanno qualcosa di utile!"

Senza una definizione di "utile" non c'è davvero molto che possiamo fare per portarti sulla strada "giusta".

Non sappiamo come stai fallendo o cosa non va. Non possiamo dire su quale traccia stai seguendo.

In qualche modo, hai in testa l'idea che non stai comunicando.

Il software, ovvero la programmazione, si basa su come ottenere un'idea dalla lingua in un linguaggio (Python, Java, inglese, qualunque cosa).

Un passo importante nella programmazione (e nel porre domande) è definire i termini. Cosa intendi con "fai qualcosa di utile"? Sii molto chiaro, molto completo e molto preciso.

5
S.Lott

Mi viene sempre fatta questa domanda, ad es. come iniziare. È davvero semplice. Ecco un passo dopo passo.

  1. Fatti venire un'idea. Sembra che tu l'abbia già fatto.
  2. Semplifica la tua idea al suo nucleo di base - qualcosa che pensi di poter affrontare
  3. Layout dell'interfaccia utente su un pezzo di carta o tovagliolo, qualunque cosa.
  4. Prova a strutturare l'interfaccia utente nel tuo ambiente di sviluppo.
  5. Se riscontri difficoltà, google, google, google, poni domande su StackOverflow, usa la merda vivente delle risorse Internet per ottenere aiuto. Chiedi ad amici e colleghi programmatori di aiutarti in situazioni specifiche. Torna al passaggio 4.
  6. Inizia a scrivere la logica della tua applicazione. In caso di difficoltà, andare al passaggio precedente e riprovare.
  7. Presto, presto avrai qualcosa che funziona.
5
AngryHacker

Crea qualcosa di piccolo. Non importa, il tuo programma sarà il 1000 ° a farlo.

Qualche idea:

  • un orologio (prima digitale, poi analogico),
  • creatore automatico di labirinto,
  • visualizzatore della struttura di directory,
  • listener di album mp3,
  • eccetera.

Scegliendo la piattaforma, gli strumenti sono la parte dell'attività.

4
ern0

Ok iniziamo con la tua idea per il programma X che fa qualcosa di utile e scomponiamo:

  • Utilizzare software cartacei, di mappatura mentale o diagrammi per disporre il flusso/i flussi logici del programma.

  • Dato che hai appena iniziato, scegli UNO di quegli elementi (preferibilmente vicino all'inizio) e scomponi ulteriormente.

  • Scrivi prima il codice per quello e usalo per costruire

Il programma X deve aprire un file, manipolarlo e creare un file di output? Verifica se riesci ad aprire ed eseguire l'eco del file come primo passo. Vuoi un'interfaccia utente piacevole? Creane uno in grado di eseguire il tuo programma di eco file, ecc. Non solo costruirai il codice che puoi utilizzare passo dopo passo nel tuo programma complesso, ma costruirai anche le tue conoscenze linguistiche mentre devi cercare e cercare informazioni.

Come dice il proverbio: Gnome non è stato costruito in un giorno :-)

3
DKnight

(Risposte già sopra nei commenti. È stato suggerito di inviarlo come risposta dopo la riapertura della domanda.)

Inizi con un problema - qualcosa che vuoi risolvere - non importa quanto pensi che sia complesso. Quindi prendi questo problema e lo scrivi e inizi a romperlo in problemi più piccoli. Quindi abbatti quei piccoli problemi, ecc. Fino a quando non hai qualcosa di primitivo che sai già come risolvere o che puoi fare con qualche sforzo. Inizi a codificare ciascuno di questi pezzi e li organizzi in diverse funzioni o classi diverse, ecc.

Quindi lavori al prossimo sotto-problema. Mentre lavori su ogni problema, puoi scrivere piccoli casi di test e vedere effettivamente i tuoi progressi diventare realtà. Ci saranno sempre sfide lungo la strada, ma in nessun momento lo vedremo come qualcosa di troppo colossale per persino avvicinarsi (che cosa sembrano avere a che fare ora). Questo è vero per la programmazione e molte delle sfide della vita. La chiave è romperlo.

Per quanto riguarda cosa fare - l'idea. Puoi provare a inventare qualcosa di nuovo, ma puoi anche prendere qualcosa per cui potresti avere una passione ed esiste già, ma renderlo migliore o addirittura solo diverso. Attualmente sto scrivendo un'app per accordatore per chitarra per Android nel mio tempo libero. So che esistono già molte altre app per accordatore per chitarra, ma ho pensato che sarebbe stato un progetto divertente e stimolante, quindi ho preso All'inizio mi è sembrato quasi impossibile, ma dopo che ho rotto il problema in passi più piccoli, in realtà sta andando bene insieme. Dividi e conquista ed essere persistente con i tuoi obiettivi.

3
jeffp

Una delle cose più difficili da fare quando sei un principiante è stabilire obiettivi realistici per ciò che un esercizio "come posso migliorare" dovrebbe contenere al tuo livello attuale.

Quindi suggerirei di scegliere di esercitarsi a risolvere piccoli esercizi dati, perché la capacità di finire un programma secondo una determinata specifica è una cosa molto preziosa per tutti coloro che programmano per vivere.

Ti suggerirei di dare un'occhiata più da vicino a http://projecteuler.net/ che ha molti esercizi e un sistema automatico di "verifica risposta", che ti consente di lavorare al tuo ritmo. Gli esercizi sono ben formulati, ma possono richiedere di pensare. Alcuni potrebbero anche richiedere di pensare molto, ma anche non riuscire a risolverli, ti insegnerà qualcosa di utile.

La formulazione completa del problema 1 è:

Se elenchiamo tutti i numeri naturali al di sotto di 10 che sono multipli di 3 o 5, otteniamo 3, 5, 6 e 9. La somma di questi multipli è 23.

Trova la somma di tutti i multipli di 3 o 5 al di sotto di 1000.

Pensi di poterlo risolvere? Allora fallo!

3
user1249

Hai bisogno di esperienza del mondo reale !!. Nessun libro può insegnartelo!

Devi imparare a leggere il codice degli altri, come mantenerlo, come odiarli (sia il codice che il programmatore) come migliorarlo, come pensare di poterlo fare meglio e qualche mese dopo gridare ad alta voce Ucciderò chi ha mai scritto questo pezzo di codice !!! Solo per scoprire nel controllo della versione sorgente sei stato tu!

Devi capire che i libri sono molto specifici e alcune volte per le persone che sanno già come sviluppare software.

Quindi ti suggerirei di trovare un lavoro di programmazione. Se necessario, richiedere il livello base più elementare. Probabilmente non guadagnerai quanto pensi di meritare, ma utilizzerai qualche mese per imparare come si sviluppa il software nel mondo reale (e non è sempre così perfetto e con tutte quelle belle best practice che leggiamo nel web , molte volte, la qualità del codice è molto bassa, a seconda di dove lavori, ma fa parte dell'esperienza)

Continua a leggere i tuoi libri, lo scoprirai, ogni anno capisci un po 'di più (o diversamente) lo stesso argomento, perché puoi vederlo sapere con il bicchiere dell'esperienza.

Se riesci a trovare un lavoro con sviluppatori di talento, molto meglio. Impara da loro, non aver paura di sbagliare.

Fino a quando non dovrai correggere il tuo primo bug urgente di produzione live, non saprai quale bug software è!

:)

3
OscarRyz

In primo luogo, stai già facendo i prerequisiti prendendo lezioni, leggendo materiale di riferimento, guardando progetti open source e rimanendo curioso con le domande. Lo sottolineo perché ho incontrato personalmente domande simili prima che la persona avesse fatto qualsiasi lavoro di gamba da parte sua (in particolare, gli individui che eludevano le lezioni e speravano di prendere scorciatoie). Ora, ripenso a quando avevamo dei laboratori sulle macchine Turing e su come all'epoca pensassi che non fosse una vera programmazione. Queste sono le esperienze che farai che chiunque prenda scorciatoie salta.

  • Iscriviti per progetti studenteschi. Sono stato coinvolto con (CSUA) un gruppo di studenti affini per costruire un gioco per lo stand del carnevale durante il mio ultimo anno. Se continui a divertirti e pensi di voler espandere il tuo coinvolgimento, sfrutta davvero le risorse. Scopri i progetti, parla con i tuoi compagni di classe, i tuoi professori e trova uno stage.

  • Siediti con un programmatore esperto. Ci sono state circa tre volte nella mia storia quando ho visto un altro programma di persone che è stato davvero d'ispirazione. Per loro, stavano solo scrivendo codice e pensando ad alta voce. Nessuna esagerazione, mi sentivo come se avessi assorbito più ascoltandoli di quanto avrei fatto da solo. Se incontri di più, sei molto più ricco. Siamo fortunati ad essere in un'epoca in cui possiamo guardare video, ispezionare archivi di fonti completi e cercare istantaneamente un enorme negozio online di conoscenza. Non sostituisce l'esperienza di persona, ma in assenza di un tutor è un notevole miglioramento rispetto al materiale tradizionale. Guardare il codice non elaborato da altri, tuttavia, non può portare a nulla. Avrai voglia di qualcosa in mente e un buon debugger per entrare nella logica. Uno dei miei momenti più cari è stato realizzare una mod di Quake e non era la mod stessa che aveva qualcosa di memorabile. Stava vedendo la logica di gioco di Carmack. La mod è stata solo una ragione per cui mi sono tuffato.

  • Esercitati a spiegare e rispondere alle domande poste dal tuo partner di laboratorio. Volontariato per aiutare a insegnare. Forse formare un gruppo di studio e richiedere che ogni membro diventi un esperto su un argomento di classe. Quindi griglia quella persona e fagli grigliare. Quando sei costretto a rispondere alle domande, sarai obbligato a imparare tu stesso le risposte. Quando puoi spiegare chiaramente i concetti agli altri, hai arricchito la tua comprensione fino al punto in cui sei in grado di trasmetterli al di fuori di un libro e dei tuoi pensieri.

  • Infine, non abbiate paura di imparare il modo più duro , sporcarsi le mani, sbagliare. Questa può anche essere chiamata esperienza. Come esempio più pratico per quanto riguarda la tua domanda sui progetti con base di codice ingombrante e numero di file di grandi dimensioni, fai questo esercizio: usa un singolo file per il tuo lavoro. Davvero non sto scherzando. Questa stessa domanda è stata posta nella mia azienda attuale e precedente. Qui un altro sviluppatore ha osservato che preferisco mantenere un file per ogni classe. Questo gli sembrava estraneo e, in una questione correlata, non gli piacevano nemmeno le lezioni parziali. Quindi un modo per avere un'idea di quando o dove è opportuno suddividere la logica in file separati sarebbe quello di iniziare con un solo file. Dopo aver praticato la regola di un file su più progetti, si spera di aumentare la complessità, è possibile imbattersi in un progetto in cui ci sono così tante classi in un unico file che è difficile leggere o a causa del controllo della versione diventa difficile collaborare. A questo punto, si desidera creare file separati per raggruppare classi diverse. Data la tua preferenza, puoi decidere in anticipo che ti piacciono tutte le classi di dati in un file. Poi di nuovo forse più tardi, potresti decidere che ti piacciono i file separati anche tra le classi di dati come gruppo.

2
patterns

Dividere e conquistare.

È semplice o difficile.

2
ocodo

Prova un progetto open source, vedi se riesci a inserirti. Inizia scaricando il sorgente e vedi se riesci a ritirare alcuni biglietti

2
Martijn

Quando voglio imparare una nuova lingua, di solito cerco di implementare un grafico frattale. In questo modo avrai un feedback immediato su se funziona ed è molto gratificante. E ci sono molti modi per migliorare un frattale. L'implementazione ingenua di mandelbrot è lenta da morire.

Non è molto utile, ma impari molto ed è bello da guardare.

2
onemasse

Quando ho iniziato a programmare, adoravo i giochi per computer. Così ho iniziato a scrivere i miei giochi, non appena avevo gli strumenti a portata di mano per farlo.

Abbastanza naturalmente, il mio primo gioco è stato un'avventura testuale. Allo stesso modo, potresti iniziare con un quiz o qualcosa del genere, o una sorta di ipotesi di giochi.

Inoltre, potresti iniziare con qualcosa, come una slot machine (non hai davvero bisogno delle animazioni, o anche delle immagini. Basta usare A = Apple, L = lemon, S = start, P = Plum ecc.).

Questo ti insegnerà le basi della gestione di alcuni input dell'utente, il mantenimento dello stato del gioco e la generazione di output di conseguenza.

Ho seguito questa strada abbastanza lontano. Ho progressivamente imparato, come leggere lo stato della tastiera, o il mouse, come usare il codice grafico. Ho imparato di più sulla lingua stessa (ho iniziato con Pascal) e l'ho usato per migliorare i miei giochi esistenti o ho appena iniziato qualcosa di nuovo.

Penso che i giochi siano davvero fantastici per imparare a programmare. Anche con poca esperienza, puoi creare piccole cose che ti regalano piccoli momenti di orgoglio. Perché crei qualcosa, è divertente. Costruire applicazioni reali è abbastanza inutile, perché ci vuole molto lavoro per creare qualcosa, che è effettivamente utile, mentre è sorprendentemente semplice creare un piccolo gioco, che risulta avvincente.

Potresti voler usare effettivamente un linguaggio educativo (nel mio caso, questo era Pascal e in retrospettiva, penso che si sia rivelata una buona scelta). Molti di loro sono specificamente finalizzati alla creazione di giochi e simili.

Creare applicazioni non è solo creare algoritmi. Devi progettare funzionalità, devi organizzare e strutturare il tuo codice in diversi livelli e moduli. A differenza dei problemi piuttosto "atomici" che ti vengono dati all'università, le applicazioni a volte sono meglio sviluppate in modo incrementale. Inizi con qualcosa e aggiungi delle cose sopra. Quindi, avendo già qualcosa con cui iniziare (come faresti in alcune delle lingue elencate nell'articolo di Wikipedia), ti risparmi molta frustrazione e inizi a creare qualcosa immediatamente. (Un mio collega ha iniziato a programmare scrivendo mod di Quake 2). Ad un certo punto, arriverai a trovare i limiti di questi strumenti facili da usare, ma fino ad allora avrai molta più comprensione e comprensione. Probabilmente, abbastanza per reimplementare la funzionalità che ti hanno dato per iniziare con te stesso.

2
back2dos

La programmazione riguarda la risoluzione dei problemi e la comunicazione, non la scrittura di molto codice. Il codice è solo una necessità, di solito dovresti provare a scrivere meno codice, non di più.

Se non sai da dove cominciare, forse non hai problemi!

Guarda Linux e altri sistemi simili a Unix: sono tutti costituiti da molte piccole applicazioni che fanno solo una cosa, ma lo fanno bene .

Quando avevo bisogno di uno script per trovare 10 file più grandi in una cartella sul mio computer, non stavo leggendo libri. Ho appena cercato su google e usato una delle soluzioni esistenti. Ho scritto qualche codice? - No. Il problema è stato risolto? - Sì. Questo programma su una riga è utile? - Diamine si.

I programmi con migliaia di righe di codice sono generalmente scritti da più di un programmatore. Non sarai in grado di scrivere interi sistemi operativi da solo e non è necessario. Spesso usano anche cheat come controllo versione e nit test .

2
kolobos

Al college, c'era una classe chiamata Practicum di programmazione che sostanzialmente insegnava questa rampa. All'inizio ti è stata data un'interfaccia utente per un'applicazione di shopping di base e hai dovuto codificare il backend, l'ultimo mese è stato Tetris da zero. Penso che circa il 50% dei nuovi studenti (non riprendere la lezione) abbia fallito, perché passare da piccoli a grandi è incredibilmente difficile.

Suggerirei uno o più dei seguenti:

  • Scarica un progetto open source e aggiungi qualcosa. Non deve essere utile o buono, ma dovrai guardare la struttura, che ti darà un'idea di quanto è costruito il grande progetto.

  • Progetta il tuo progetto finale su carta, con le frecce per le dipendenze. Se stai realizzando un serpente, potresti avere una testa di serpente, una coda di serpente, cibo, spazio vuoto, muro, tavola, direzione attuale, ecc. Potrebbe aiutarti a capire se il tuo progetto è molto più grande di quanto pensi.

  • Prendi un progetto di base e rendilo sempre più grande. Probabilmente farai molto refactoring e spero che imparerai come realizzare progetti più piccoli a cui è possibile aggiungere facilmente.

  • Se conosci qualcuno che ha esperienza, digli la tua idea per un progetto e chiedi loro di scrivere le tue lezioni + alcuni metodi importanti, probabilmente impiegherebbe circa un'ora. In questo modo puoi semplicemente compilare i metodi e sapere sempre cosa devi fare dopo.

Infine, qualunque cosa tu faccia, probabilmente dovresti usare un modello di progettazione MVC di base (Modello, Vista, Controller). Senza entrare nei dettagli, inserisci la tua vista (UI) in 1+ classi, il tuo controller (Input, output, ecc.) In 1+ classi e il tuo Modello (Logica, Dati, praticamente tutto il resto) in diverse classi. È un modo semplice per ottenere un'organizzazione di base.

Ricorda, questo passaggio è difficile. È vero che alcune persone semplicemente non possono programmare, ma probabilmente sei solo bloccato in questa fase. In bocca al lupo!

2
Mark

Prova a pensare al programma più piccolo che desideri e codificalo. Proprio l'altro giorno ho scritto il codice che ha scaricato automaticamente ogni file da un elenco di file. Questa era in realtà la parte facile. L'ora è stata dedicata principalmente alla creazione della GUI, con il caricamento e il salvataggio delle impostazioni e di piccole e semplici cose del genere. La GUI è un vuoto temporale.

Inoltre suggerisco di usare una lingua con una vasta libreria (non importa se è portatile o no). E un linguaggio compilato staticamente se inizi (il che significa no Ruby , Python o JavaScript). Mi piace .NET usando il linguaggio C # . Puoi provare Boo con SharpDevelop o usare C # o VB.NET usando Visual Studio Express . Mi piace Visual Studio perché sono un power user e uso cose come Ctrl + -, Ctrl + [ Ctrl + ',' . Ma qualsiasi cosa con punti di interruzione e il callstack è buona. L'unico motivo per cui posso sopportare il debug del codice JavaScript è perché Firebug ha questi (insieme a una finestra immediata e un orologio).

1
user2528

Sono morto troppo in alcuni giochi ZX Spectrum , quindi l'unico modo era aggiungere più vite. Avevo un libro che descriveva quale codice e dove dovevo cambiare, quindi era abbastanza facile. Poi ho scoperto come aggiungere munizioni (purtroppo il gioco è diventato inutile dopo).

Quindi dal mio punto di vista, il modo migliore per imparare - è quello di raggiungere obiettivi minori e facili. Per me stava modificando il codice esistente. Se sei soddisfatto di ogni programma che incontri, forse la programmazione non fa per te?

1

Immagino che il tuo problema provenga da: 1. il conflitto che esiste tra teoria e pratica, e anche che ... 2. ... devi capire che il tuo codice verrà eseguito dal codice di altri. 3. non puoi programmare qualcosa se non hai idea di cosa potresti fare. 4. Conosci metà della difficoltà

  1. Conoscere una lingua per teoria non significa che "parli": è la differenza tra leggere l'inglese e parlarla. Anche il gran numero di strumenti diversi disponibili per compilare, collegare, modificare un codice sorgente farà girare la testa.

  2. quando si impara a programmare, soprattutto se il tempo viene utilizzato da un terminale per immettere/emettere testo, perché questo è il modo più semplice di gestire la programmazione. In effetti, i programmatori usano librerie (come Qt), framework (credo Django) e altri codici di scelta rapida per essere produttivi. Ovviamente se senti di poter scrivere la tua ruota, non reinventarla e leggere libri sulla progettazione del compilatore e della progettazione del kernel: c'è molto da imparare in questi: forse pensi che sia stupido per de app che non richiede molto di tecnicità.

  3. Inventa qualcosa! Ovviamente potresti fare un editor di testo, un gioco, ecc. Il fatto è che non li farai se non vedi alcun motivo per: questi programmi saranno inutili per te se tutto ciò a cui pensi è già stato fatto . Personnaly Sogno ancora di essere in grado di codificare un protocollo p2p decentralizzato simile a Facebook con chat, messaggi offline, ecc. Tutto in uno in modo che possa essere utilizzato con dispositivi wireless integrati. Internet offre molte possibilità, non dimenticare di pensarci.

  4. In realtà la teoria è necessaria per esercitarsi, ma non è tutto: algoritmi e tecniche non fanno parte della teoria della programmazione, ci sono molti paradigmi e altri modi "standard" per fare il tuo codice: schemi di progettazione, liste collegate, ecc ecc.

1
jokoon

"Out of Box thinking"

Ehi, mi sono posto le stesse domande cinque anni fa (a quel tempo non avevo sentito parlare di Stack Exchange). Studiare la programmazione ogni volta non ha senso, devi sviluppare qualcosa.

Determina cosa sviluppare

1) I piccoli obiettivi realizzano primi piccoli progetti di successo

2) Pianifica in modo da avere piccole parti che funzionino chiaramente e mostrino progressi

3) Trova qualcosa che ti appassiona ma è ancora abbastanza piccolo da essere realizzabile

  • Creo album personali - che ho acquisito alcune conoscenze Flash, Photoshop
  • Costruisco i miei blog personali - ho acquisito alcune conoscenze PHP
  • Acquistato domini Internet - acquisito alcune conoscenze sul server

  • Trovo molti progetti freelance: ho letto i loro requisiti e ho cercato di creare le mie applicazioni, ho acquisito molte conoscenze di programmazione, documentazione, ecc.

1
RSK

MA, non riesco ancora a capire come scrivere un programma che fa qualcosa di utile.

Veramente?? Bene, suppongo che se hai appena letto i libri e non hai fatto programmi di esempio e così via, allora è possibile, ma sembra un po 'sopravvalutato.

Ad ogni modo, il miglior consiglio è quello di iniziare a lavorare su qualche idea che ti interessa. Se hai un vero interesse, allora può iniziare in piccolo e crescere e crescere. Di solito è quello che succede con me. Potrei iniziare un progetto solo per divertirmi, pensando che sarà solo un piccolo progetto di test. Quindi aggiungo e aggiungo ....

1
user11432

Penso che parte del problema sia che quando leggi libri di programmazione, ti insegnano semplicemente la lingua. Non menzionano che per programmare quasi tutto, è necessario accedere alla programmazione di BIBLIOTECHE e SDK, ecc. Sfortunatamente la conoscenza della lingua purtroppo non è sufficiente.

1
David-S

Un altro problema è che è necessario un linguaggio di programmazione diverso a seconda di ciò che si sta tentando di programmare.

Se si desidera programmare un'applicazione Windows che estende un prodotto Microsoft, è necessario utilizzare .NET C # o VB.NET o VBScript. Se vuoi programmare un iPhone devi usare Objective-C, Java per Android, Silverlight per Windows Mobile, forse Java per applicazioni finanziarie, ecc.

Non è che puoi imparare una lingua e poi essere in grado di programmare tutto quello che vuoi ...

1
David-S

Non devi avere una grande idea per iniziare a programmare qualcosa. Vorrei iniziare dalla parte facile. Ad esempio, un programma che già lo usi. Prova a fare qualcosa che sai già come funziona. Affronta i tuoi problemi, così lo imparerai più velocemente. Una volta che hai più esperienza, inizierai ad avere alcune buone idee di programmi per semplificarti la vita durante la programmazione, o semplicemente un buon programma per fare qualcosa che non ci hai mai pensato prima. Sto programmando Java per quasi un anno e altre lingue per un paio d'anni. Ci è voluto del tempo per iniziare a fare quello che volevo davvero fare. Ho appena iniziato a fare le mie cose. Grazie a StackOverflow, non lo sapevo prima.

1
pringlesinn

Forse potresti scegliere un linguaggio di scripting per iniziare. Ho iniziato a programmare con il linguaggio C. Secondo me è facile iniziare con il linguaggio C, ma è necessario molto più tempo per conoscere l'algoritmo e qualcosa sul sistema operativo. E ogni volta che mi alleno è semplicemente con una GUI DOS, che mi rende depresso.

E più tardi ho scelto un linguaggio di scripting chiamato ActionScript per iniziare. Il linguaggio di scripting è un linguaggio orientato agli oggetti e può controllare il comportamento di un filmato Flash. Il linguaggio di scripting è facile per eseguire alcune operazioni vicine al dominio problematico, proprio come trace("HelloWorld") in ActionScript per generare una stringa. E ha un potente IDE per permetterti di verificare se il tuo programma sta andando bene.

In una parola, se vuoi iniziare a programmare in un modo veloce, un linguaggio di scripting può essere una buona scelta :-)

1
Tomyail

Hai letto Codice completo 2 e Il programmatore pragmatico ?

Questi due libri mi hanno insegnato molto più di qualsiasi corso, tutorial, libro o video.

La programmazione riguarda l'apprendimento di come creare qualcosa da zero con uno specifico set di strumenti. Ma se non conosci i fondamenti, non puoi fare nulla.

1
Pablo

Quindi ci sono un sacco di risposte, quindi perdonami se ripeto gran parte di ciò che è già stato detto, ma ecco i miei 2 centesimi.

Innanzitutto scegli un'idea. Qualsiasi idea andrà bene, qualcosa di semplice probabilmente sarebbe meglio di grande. I progetti hanno la tendenza a crescere molto rapidamente nel loro campo di applicazione (alcuni lo chiamano "creep").

Quindi crea uno scheletro per il progetto. Ciò richiederà un po 'di conoscenza dell'architettura e del design e probabilmente sbaglierai le prime dieci volte che lo provi - l'ho fatto. Disporre semplicemente una struttura di file decente e forse un piccolo scheletro di codice che mostri le parti importanti del sistema.

Salva lo scheletro nel tuo VCS (raccogli il tuo veleno con questo e resisti quando conduce a una guerra santa). Una volta che hai iniziato a usare VCS, usarlo costantemente per piccoli cambiamenti diventa una seconda natura, ma assicurati di iniziare.

Ora scegli una funzionalità piccola ma importante per il sistema e realizzala. Non preoccuparti di assicurarti di avere tutto incapsulato perfettamente e che abbia il design "migliore" (che si evolverà con il sistema). Prendi qualcosa che funzioni. Anche ottenere alcuni test unitari ti aiuterà a sapere cosa è successo quando qualcosa si rompe, se esegui i test regolarmente.

Costruisci il tuo sistema. Sarebbe anche un buon momento per ottenere un sistema di compilazione automatizzato e una continua integrazione. Se non sai cosa sono, o impara e prova, oppure continua a tuo rischio e pericolo; in entrambi i casi continua a funzionare.

Ora scegli un'altra funzione e ripeti e ripeti e ripeti.

Una volta che pensi che funzioni bene, mostralo a un amico. L'amico non deve sapere come programmare o nemmeno sapere cosa fa il programma. Uno ti farà sentire bene nel mostrare a qualcuno e due ti aiuterà a sapere esattamente cosa fa il sistema.

Se arrivi al punto in cui sei molto sicuro di ciò che hai realizzato, rilascialo online e prova a ottenere feedback. Un hub di repository o il sub-reditt dei programmatori potrebbero fornire alcune critiche costruttive. Prova a trovare un professore CS/SE e faglielo vedere. Magari chiedi a un programmatore professionista. Basta avere un'altra opinione dei programmatori.

Una volta terminato (o probabilmente prima) ti renderai conto che il codice che hai inizialmente scritto è molto peggio di quello che hai fatto di recente. Questo è perfettamente naturale e succede a tutti noi. Ora devi trovare un nuovo progetto e imparare qualcosa di nuovo, forse una nuova strategia di test o come utilizzare l'architettura orientata ai servizi.

1
Jonathan

Qualcosa che può aiutare è pensare a un semplice problema che hai ogni giorno in cui qualcosa che potresti fare con carta e matita potrebbe essere sostituito da un programma.

Questo ti dà un problema relativamente semplice con una soluzione abbastanza nota che richiede solo un livello di automazione. Tieni presente che questo non deve essere il prossimo MS Word/WordPad/NotePad; solo qualcosa che risolve il tuo (semplice) problema.

Ad esempio, un problema che continuo a reimplementare quando lavoro con una nuova lingua è una semplice app per il cronometraggio. L'app viene utilizzata per tenere traccia delle ore fatturabili per diversi progetti durante il giorno. Un programma abbastanza semplice con molti piccoli trucchi, ad esempio come gestire i riavvii a metà giornata o come aggiungere/rimuovere elementi dall'elenco.

1
Ken Henderson

Scrivi una specifica. Cosa vuoi che faccia il tuo programma? Le schermate (se si tratta di un programma basato sull'interfaccia utente) la logica, l'input/output, ecc. Mantengono l'ambito limitato a ciò che è possibile fare in un ragionevole lasso di tempo (una settimana? Un mese?).

Quindi costruiscilo. Attenersi alle specifiche, farlo funzionare in base alle specifiche richieste. Sicuramente incontrerai distrazioni, certo che dovrai fare qualche ricerca perché non hai mai affrontato un problema particolare prima, ma costruirai qualcosa che vorresti costruire. Questo è diverso dalla costruzione di qualcosa che puoi semplicemente "costruire".

Una volta terminato, refactoring il codice, cerca di renderlo più efficiente. Quindi se ritieni che il tuo programma non sia ancora terminato, ricomincia, migliora le specifiche, migliora il codice e continua a farlo.

Ricorda, la maggior parte dei software commerciali risolve un'esigenza. È molto importante definire la necessità e la soluzione per soddisfare tale esigenza prima di risolvere effettivamente il problema. E man mano che la necessità diventa sempre più grande, anche il tuo software crescerà nel tempo!

1
Roopesh Shenoy

Ho imparato la programmazione perché so cosa voglio programmare.

La programmazione richiede capacità di problem solving, che è difficile da imparare. Prova a riprodurre qualcosa di "quotidiano", come un programma di distributore automatico che calcola le variazioni delle monete e anche una simulazione dell'ascensore.

0
Ming-Tang

La sfida più grande per imparare a programmare è trovare qualcosa che qualcuno trova utile.

Il mio più grande problema nella programmazione per me stesso è sempre stato inventare problemi che devono essere risolti.

Ho iniziato a programmare a metà degli anni '80 seguendo un corso e poi lavorando per un'azienda che mi ha detto cosa risolvere. La tua alternativa è fare quello che ho fatto negli anni '90 quando volevo imparare JavaScript: mi sono unito alle comunità (uno era il sito Stack Overflow chiama il sito con trattino - inizio il downvoting ...) in cui le persone hanno posto domande e commentato con i miei suggerimenti su come risolvere il problema. Avere un compito specifico con input e output noti, mi ha davvero aiutato a concentrarmi sulla ricerca della risposta o su risposte simili e sull'applicazione di questo al problema attuale. Dopo alcuni anni di risposta alle domande, ero fluente.

Ora sto facendo lo stesso con jQuery. Avrei difficoltà a imparare la sintassi di jQuery senza problemi specifici che possono essere risolti usando quel framework.

0
mplungjan

"Il segreto è che non ci sono segreti" - Kung Fu Panda. Prima di tutto non farti prendere dal panico, scegli una lingua e inizia a scrivere qualcosa come il gioco di tic tac toe e continua ad aggiungere nuove funzionalità. Hai detto che hai letto troppi libri ma hai implementato ciò che impari? Prova a guardarti intorno e trova quale sistema manuale puoi convertire in automazione o quale programma esistente puoi riprogettare. La pazienza e l'immaginazione sono la chiave del successo nella programmazione anche se non sono un grande programmatore ma sto provando ciò che ho condiviso e il suo funzionamento. :)

0
CodeCracker

Pensa a qualcosa che potresti trovare utile e prova a realizzarlo. Intendo qualcosa di sensato, non Photoshop :-)

0
nih

L'unico modo in cui imparerai a programmare è ... scrivendo programmi.

0
user12062

La differenza principale tra applicazioni di successo di grandi dimensioni ed esercizi accademici è in genere che le prime sono progettate rispetto a una serie di requisiti. Se inizi semplicemente con una vaga idea nella tua testa e inizi a scrivere codice, non ti piace andare lontano.

Quindi capacità di programmazione non è probabilmente il problema qui; ciò di cui hai veramente bisogno per farti avanzare è ingegneria del software competenze; vale a dire la capacità di acquisire e specificare i requisiti del progetto e quindi di progettare un'architettura software e una progettazione dettagliata per soddisfare tali requisiti: questa è la road map che ti terrà sulla strada giusta durante lo sviluppo. Ciò non significa che i requisiti e la progettazione debbano essere completi prima di iniziare a programmare (il metodo waterfall), lo sviluppo incrementale è un approccio più flessibile; ma dovresti avere una sorta di framework e un'idea di come gli elementi dell'applicazione interagiranno e comunicheranno.

Inoltre, una specifica e una progettazione dei requisiti sono più o meno essenziali se lo sviluppo del progetto deve essere implementato da più di un singolo sviluppatore (un'altra caratteristica comune di grandi progetti).

Un'altra caratteristica delle applicazioni di successo su larga scala è una forte motivazione da completare. Cosa ti spingerebbe a fare ciò che non posso dire ma nel mio caso sono pagato per questo, raramente scrivo software per puro divertimento, ma essere pagato per fare ciò che altrimenti potresti fare gratuitamente in ogni caso è un ottimo modo per fare una vita.

0
Clifford

Semplice, prova a fare meglio di quanto scritto nel tuo libro.

0
user12069

Ho scoperto che qualcosa che mi ha aiutato molto in quest'area è stato guardare al codice che altre persone hanno scritto. Voglio dire il codice che hanno scritto al di fuori della scuola poiché gli incarichi scolastici in genere non sono applicabili al mondo reale.

0
THE DOCTOR

Puoi trovare molte buone risposte qui, ma ancora, aggiungiamo questo.

Prima di tutto, non farti prendere dal panico. Molte persone hanno imparato a programmare a diversi livelli, troverai sicuramente il livello adatto a te. Lavora sodo per raggiungere un livello abbastanza alto, n passo alla volta.

Inizia in piccolo. Ricordo una delle mie prime applicazioni, era sostanzialmente un frontend per un codificatore MP3. Niente di speciale, ha appena avviato un'app da riga di comando con parametri diversi. Ma mi è piaciuto!

PS: Una delle abilità più utili è che dovresti esercitarti continuamente: come chiedere di meglio. Se riesci a chiedere in modo davvero efficace, troverai la risposta in pochissimo tempo.

0
Scorchio

Hai mai giocato a scacchi ??. Uno può insegnarti le mosse, ma renderle utili è la tua preoccupazione. Non puoi imparare guardando una partita a scacchi giocata in b/n due individui invece di giocare a te stesso; Allo stesso modo, imparare da un singolo progetto UTILE come hai detto, non sarà di aiuto. Devi approfondire le tue esigenze e farne un progetto.

Ogni progetto ha i suoi requisiti. Di rado, troverai un progetto che utilizza tutte le funzionalità della lingua. Pertanto, i libri si concentrano sulle funzionalità di base, piuttosto che prendere un progetto e leggere.

Ad essere sincero, anche io ho cercato un campione funzionante dell'applicazione WPF quando dovevo fare qualche mese fa. Non ho trovato nulla, poi ho letto dai libri e da internet e ho fatto girare le cose.

E l'ultima cosa è che queste applicazioni o progetti già realizzati ti rendono più confuso che mai, perché sono realizzati da professionisti che hanno il loro stile e le loro modifiche. Per arrivare a quel livello, devi dimenticare tutto il resto e iniziare a scrivere codice e in seguito StackOverflow è sempre lì per aiutarti.

0
Pankaj Upadhyay

Sì, è incredibile quante "parti mobili" siano coinvolte nel far funzionare il nostro software/hardware. In parte è perché i problemi sono incredibilmente complessi e devono essere suddivisi in parti gestibili. In parte è perché i problemi sono incredibilmente complessi e nessuno sa cosa stanno facendo. :) Abbiamo decine di linguaggi di programmazione e centinaia di framework e librerie di programmazione. Tutto è in blackbox e stratificato. Non puoi fare nulla di utile in un solo livello di questo casino. È necessario imparare e padroneggiare i limiti e le stranezze di più livelli. E scrivere tutto da solo è quasi impossibile. Le cose semplici diventano inimmaginabilmente difficili con l'aumentare della base di codice.

0
AareP