La programmazione in generale diventa più facile da leggere, scrivere e comprendere man mano che acquisisci esperienza? [chiuso]


80

Sono un principiante nella programmazione e ho letto libri, studiato, letto articoli e quant'altro. Sto ottenendo grandi risultati da quando ho iniziato a studiare la programmazione e quando ero un principiante pensavo di sapere tutto sulla programmazione, ma man mano che imparavo di più mi sono reso conto di quanto sia difficile questo campo (In effetti tutti i campi sono difficili, ma non è questo il punto).

Oggi ho scritto software funzionale e ho imparato le BASI di 3 lingue e sono intermedio in una sola lingua. Quando guardo cose avanzate come MYSQL, o programmazione OpenGL, o anche il codice Visual Studio C ++ mi dà mal di testa, e anche quando visualizzo il codice sorgente HTML di molti siti Web (la maggior parte dei codici sorgente su siti Web, visti da Google Chrome sembrano molto disordinati e disorganizzati ) mi confonde fino al limite del mio cervello. All'inizio sembra tutto semplice, ma guardando queste cose avanzate mi viene da chiedermi come si possa imparare così tanto.

La domanda, in breve, è se queste cose diventano più chiare per un programmatore mentre avanza nella sua carriera. Gli argomenti complicati come quelli sopra elencati (OpenGL, MySQL, siti HTML avanzati) diventano più facili da leggere, scrivere e comprendere man mano che impari di più o diventa più complicato man mano che procedi? Come puoi combattere questa sensazione di essere una formica nel mondo della programmazione e questa roba sta per schiacciarti?


24
Ti suggerisco di leggere questo: norvig.com/21-days.html
James P.

Come qualsiasi altra cosa, sì. Fino a quando la tecnologia non cambierà su di te. :-)
MathAttack,

3
Finché la tua "esperienza" non sta leggendo sempre le stesse cose. Allungati con nuove cose.
JeffO,

un piccolo suggerimento, per l'analisi di pagine HTML complesse, ti consigliamo di utilizzare Firefox Firebug o Chrome Inspect Element.
Lie Ryan,

6
"quando ero un principiante pensavo di sapere tutto sulla programmazione." Ci sono stato e più imparo, più realizzo quanto poco so.
Lieven Keersmaekers,

Risposte:


134

Risposta breve: no.

Risposta lunga:

Leggere il codice di altre persone diventa più facile, sì. Ma solo leggere. Man mano che acquisisci esperienza e competenze, le tue esigenze personali come sviluppatore crescono.

  • Non vuoi semplicemente scrivere codice. Vuoi scrivere un bellissimo codice .

  • Non supponi che il tuo codice venga eseguito in condizioni ideali . Inizi a pensare a tutte le cose brutte che possono accadere durante l'esecuzione del codice, a gestire le eccezioni, a pensare a problemi hardware, latenza di rete e il problema cresce man mano che le tue competenze crescono.

  • Non leggi e scrivi codice nell'unica lingua che conosci. Come abile sviluppatore, sai che per risolvere questo specifico problema che hai in questo momento, la programmazione funzionale è un'alternativa molto migliore , quindi ora devi leggere e scrivere il codice nel linguaggio di programmazione funzionale.

  • Non ti limiti a un piccolo set di librerie che conosci. Se si codifica in C #, si desidera conoscere e utilizzare tutta la potenza di molte librerie di .NET Framework.

  • Non usi più il blocco note. Hai bisogno del tuo potente IDE e vuoi sapere come testare il codice dell'unità, quali sono le metriche del codice e qual è il significato di centinaia di opzioni e finestre che l'IDE può mostrarti.

  • Non vuoi limitarti modestamente a un set base di strumenti che la lingua ti offre . In C #, vuoi usare generici, contratti di codice, riflessione, sviluppo guidato da eventi, aspetti funzionali con LINQ, estensioni reattive e un sacco di altre cose che hai imparato, tutto in un unico progetto, se quelle cose ti aiutano a scrivere meglio codice.

  • Non inizi a scrivere codice . Spendi dall'80 al 90% del tuo tempo per raccogliere requisiti , creare l' architettura della tua applicazione, scrivere test unitari, scrivere documentazione, ecc. E solo dal 10 al 20% del tuo tempo scrivendo codice reale .

  • Ti preoccupi della sicurezza . Conoscete i problemi legali che possono sorgere con i dati manipolati dalle vostre applicazioni. Sai cos'è ITIL . Conosci alcuni standard ISO e li applichi quotidianamente nel tuo lavoro.

Sì, acquisisci esperienza e abilità e diventa più facile risolvere un determinato problema con tutte le conoscenze e le capacità intellettuali acquisite. Ma anche i problemi che devi risolvere crescono e non sei entusiasta di risolvere i problemi del livello di quelli che ho risolto quando hai iniziato a programmare.

Mentre acquisisci competenze, ottieni anche una visione della complessità dello sviluppo del software, scopri gli aspetti che non puoi nemmeno immaginare quando inizi a imparare la programmazione e vuoi e devi applicare tutte le cose che impari quotidianamente.

In breve:

  1. Il primo giorno in cui inizi a imparare a programmare, il compito di elencare tutti i numeri da 1 a 100 divisibili per due è molto complesso: hai appena imparato a fare loop e visualizzare i numeri sullo schermo, ma non hai idea di come scoprire se il numero è divisibile per due.

  2. Dieci anni dopo, lo stesso esercizio sembra essere estremamente semplice. Inoltre, dieci anni dopo, stai scrivendo applicazioni che devono utilizzare le transazioni, sono ospitate su più server e devono gestire correttamente lo stato della sessione tra i server e memorizzano i dettagli del conto bancario dei tuoi clienti, con tutti gli aspetti di sicurezza e legali che ne conseguono.

  3. ... E ti stai chiedendo "Come potrei farlo?" esattamente come dieci anni fa, quando si dovevano mostrare i numeri su uno schermo con un ciclo.

Quando tutto diventa facile per te in un dominio, significa che o hai raggiunto la perfezione in questo dominio o semplicemente non ti interessa più.

Raggiungere la perfezione in un dominio vasto come lo sviluppo del software è impossibile, non importa quanto tu sia intelligente.


36
Camminare sull'acqua e sviluppare software da una specifica sono facili se entrambi sono congelati (ciò dimostra che "Non inizi a scrivere codice. Trascorri mesi a raccogliere requisiti" è un po 'irrealistico)
jfs,

9
"la programmazione funzionale è un'alternativa molto migliore " è discutibile.
jfs,

15
Spero certamente che il bit di "programmazione funzionale" sia solo un esempio di "utilizzare lo strumento giusto per il lavoro" piuttosto che implicare che la programmazione funzionale sia effettivamente migliore per un uso generale.
Ben Brocka,

7
Noterò anche che "mesi che raccolgono requisiti" senza sviluppo accadranno sostanzialmente in un modello idealizzato di Waterfall. Se non stai ripetendo, stai uccidendo te stesso e il progetto.
Ben Brocka,

8
"Non è mai più facile, vai solo più veloce." / Greg LeMond /
daGrevis,

20

Da bambino impari a parlare e poi a leggere la tua lingua madre. All'inizio la meccanica semplice è una lotta, ma a un certo punto arriva fluentemente. Tuttavia, hai ancora una scorta infinita di libri che non hai letto e su alcuni argomenti devi prima aumentare il tuo vocabolario solo per essere in grado di capire il libro.

Lo stesso vale per la programmazione informatica. Ad un certo punto la lingua stessa smette di sembrare una lingua straniera, ma ci sono ancora molte cose scritte in quella lingua che non conosci ancora. Ma tutto è accessibile a te con un certo sforzo.

Alcuni lavori di programmazione sono molto ripetitivi, in pratica reimplementano software molto simili per clienti diversi. In quei lavori potresti sentirti come se avessi raggiunto un plateau di apprendimento. Altri lavori che stai facendo qualcosa di nuovo e unico tutto il tempo, e non smettere mai di imparare cose nuove.


18

Ci sono già alcune risposte davvero valide qui, ma ho pensato di aggiungere un altro paio di punti brevi:

quando ero un principiante pensavo di sapere tutto sulla programmazione, ma quando ho imparato di più mi sono reso conto di quanto sia difficile questo campo

Questo è chiamato effetto Dunning-Kruger . È estremamente comune tra i programmatori principianti e, in effetti, i principianti in molti campi.

La maggior parte dei codici sorgente sui siti Web, visti da Google Chrome, sembrano molto disordinati e disorganizzati

Le persone che hanno scritto quei siti web volevano che tu potessi capirli? Probabilmente no. È nel loro interesse avere un codice che è difficile da capire.

mi viene solo da chiedermi come si possa imparare così tanto.

Con specializzazione . Sono un esperto in un campo straordinariamente ristretto: la progettazione e l'implementazione di analizzatori semantici del compilatore C #. Se avessi trascorso quindici anni a studiare OpenGL o XML o HTML o altro, ne sarei un esperto e mi sarei confuso con analizzatori semantici. Ma non l'ho fatto e quindi ho solo una conoscenza di base di OpenGL, XML e HTML.

La domanda, in breve, è se queste cose diventano più chiare per un programmatore mentre avanza nella sua carriera.

Sì, perché inizi a vedere i modelli più grandi. Prendi ad esempio OpenGL. Probabilmente hai visto un sacco di "librerie API" - grandi pezzi di codice correlato in cui il modo in cui ti interfaccia con il codice è chiamando un gruppo di funzioni denominate con argomenti particolari. E puoi ottenere una comprensione di base di OpenGL semplicemente capendo che si tratta di un'API.

Quando hai acquisito più esperienza e visto un sacco di diverse tecniche di programmazione, ti rendi conto che le tecnologie apparentemente non correlate - diciamo, OpenGL e LINQ in C # - hanno elementi comuni. Entrambe sono API in cui si creano flussi di lavoro che convogliano i dati e che è possibile eseguire ottimizzatori e altre trasformazioni sul flusso di lavoro in modi ricchi e interessanti. Una volta che hai quel concetto nella tua scatola di strumenti, improvvisamente diventa molto più facile sfruttare la piena potenza di qualsiasi API che utilizza quel modello.

Gli argomenti complicati come quelli sopra elencati (OpenGL, MySQL, siti HTML avanzati) diventano più facili da leggere, scrivere e comprendere man mano che impari di più o diventa più complicato man mano che procedi?

Diventano sia più facili che più complicati. Più facile perché, come ho detto, inizi a riconoscere i più grandi schemi di pensiero che sono alla base della progettazione del sistema, che ti consente di utilizzare il sistema in modo più efficace. Più complicato perché ora è possibile utilizzare il sistema per risolvere problemi più complicati e quindi iniziare a incorrere nei limiti del sistema.

Come puoi combattere questa sensazione di essere una formica nel mondo della programmazione e questa roba sta per schiacciarti?

Sei una formica; siamo tutte formiche. Ma la roba non è il piede che ti schiaccia; è il mondo in cui puoi esplorare, vivere, beneficiare e migliorare. Tu, formica, puoi solo esplorarne una parte minuscola. Scegli una parte che ti piace dove puoi aggiungere valore reale e diventare un esperto in essa.


2
Grazie mille per questa risposta, è al di sopra delle altre perché non solo risponde alla mia domanda principale, ma apre anche gli occhi su certe cose. +1
Bugster,

@Eric: Cosa diresti a una persona in questo tipo di argomenti in cui dice "la specializzazione è per gli insetti, non per gli umani"?
Joan Venge,

@JoanVenge Qualcuno potrebbe dirlo? Di solito le persone si specializzano e sono uniche, e molto di più se sentono il bisogno di distinguersi dagli animali (o dagli insetti).
Matthew Leggi il

1
fraintendete quale effetto Dunning-Kruger sia definito come l' incapacità dei non qualificati di riconoscere la propria inettitudine e valutare accuratamente le proprie capacità . Se non riesci a riconoscere non sai tutto ciò che non puoi mai imparare nulla di nuovo. Se riesci a riconoscerlo, non è DKE.

+1 per Scegli una parte che ti piace dove puoi aggiungere valore reale e diventare un esperto in essa.
Akshay Khot,

14

Risposta breve, sì.

Dato il tempo e l'esposizione, queste cose diventano più facili da comprendere.

Ricorda che quando guardi i siti dagli strumenti di sviluppo nel tuo browser, questi sono spesso generati da un framework. Lascia che sia un numero qualsiasi di cose ... ASP.NET, JSP, RoR, Django, ... chi lo sa. Alcuni di questi framework producono un codice più pulito di altri.

In chiusura ... l'esposizione porta alla competenza. Non c'è modo di annullare quella sensazione. Solo esperienza e apprendimento. Ci vuole tempo per spostarsi, acquisire conoscenze sul dominio e apprendere le competenze utilizzate dal proprio ambiente.


1
C'è del vero in questo purché la persona che ha scritto il codice stia usando le buone pratiche e i soliti modi di dire sia della lingua in particolare che dei programmatori in generale. Una codifica errata e / o offuscamento intenzionale possono rallentare la ricerca di una scansione. Prova a lasciarti cadere da CodeGolf.SE . Anche le versioni "in the clear" possono essere un duro slogging perché le buone pratiche sono state sacrificate quando ha modificato la metrica del contest.
dmckee,

@dmckee Anche il codice errato diventa molto più facile da leggere con l'esperienza. Lo noto in particolare in C ++ (e ho dovuto leggere molti codici errati). Ovviamente è un ostacolo estremo ma diventa comunque molto più facile una volta che inizi a individuare schemi di cattiva progettazione e errori comuni. Questi formano anche una specie di linguaggio che imparerai.
Konrad Rudolph,

2

Sono d'accordo con alcune delle risposte già fornite, ma penso che siano anche un punto di fondo che non viene discusso sulla lettura del codice. Quando ho iniziato a guardare un codice open source mi è sembrato travolgente ed enorme. Ma indovina un po? sarà sempre enorme. Ad un certo punto ti rendi conto che riesci a estrarre ciò che vuoi specificamente sapere e andare avanti.

Un esempio che hai dato è stato guardare un sacco di codice HTML, tuttavia:

Perché stai guardando il codice HTML? Probabilmente non perché vuoi imparare l'HTML dell'intero sito. C'è probabilmente un trucco specifico che speri di raccogliere. In tal caso, basta trovare l'HTML pertinente con uno strumento come firebug.

Se vuoi davvero imparare come è realizzato l'intero sito, hai realizzato che l'HTML renderizzato non è il modo per farlo. Faresti meglio a guardare un progetto open source usando una tecnologia simile. Tuttavia, cercare di imparare il codice di un intero progetto non è così utile come sembra. È noioso, richiede tempo, è facile dimenticare ciò che hai imparato e alla fine non hai nulla da mostrare. Imparerai meno leggendo il codice di altre persone all'infinito e molto di più usando pezzi specifici e interessanti per scrivere plugin, aggiunte di funzionalità o come impalcature e consigli per i tuoi progetti.

Cerca di imparare il minimo assoluto per ottenere qualcosa del tuo lavoro. Torna ai tuoi punti di riferimento solo quando rimani bloccato o vuoi imparare una cosa nuova specifica. Ciò è in contrasto con una saggezza convenzionale secondo cui devi capire tutto o altrimenti stai programmando al buio. Ma alla fine ti rendi conto che l'obiettivo è impossibile e impari a bilanciare gli obiettivi della conoscenza di tutto e l'obiettivo di finire effettivamente ciò su cui stai lavorando.


2

La risposta breve è SÌ, ma molto dipende da come si definisce l'esperienza.

Penso che ci siano almeno 3 parti da sviluppare. Man mano che migliora in ogni segmento, alcune cose diventano più chiare.

  1. Comprensione dei requisiti aziendali . Questo ti dà una migliore vista a volo d'uccello dell'applicazione. Quanto più riesci a capire perché le regole aziendali sono quelle che sono, tanto più rapidamente capirai perché certe cose vengono fatte in un certo modo. Ad esempio, i tuoi clienti devono attenersi alla normativa governativa X, motivo per cui devono preparare il documento Y, motivo per cui hanno bisogno di queste informazioni apparentemente inutili archiviate.

  2. Comprensione dei requisiti TECNICI . Questo è come il n. 1, tranne per il fatto di capire perché a livello tecnico. Alcuni strumenti e tecnologie hanno le loro peculiarità, fino a quando non le hai affrontate prima che sia difficile capire perché le cose vengano fatte in un certo modo. Ciò è più evidente quando si ha a che fare con sistemi legacy. Ad esempio, l'applicazione utilizza un particolare bus di servizio che accetta solo XML.

  3. Comprensione dei requisiti di LINGUA . Come altri hanno già detto, più hai esperienza con una lingua, più velocemente puoi leggere ciò che il programmatore originale stava cercando di ottenere. Eppure senza # 1 e # 2, scoprirai che questa maggiore abilità raggiunge il picco abbastanza rapidamente.

Cerca di essere coinvolto in molteplici aspetti dello sviluppo perché in realtà non diventa più facile fino a quando non hai fatto tutte le aree almeno alcune volte.

Ricorda che la perfezione (e lo scopo) nel codice di qualcun altro è sempre relativa a # 1 e # 2. Questi sono i driver principali del motivo per cui il codice è nello stato in cui si trova. I frequenti cambiamenti in queste due aree sono il motivo principale per cui riceviamo sempre il codice spaghetti. Quindi, a meno che tu non sia esperto nella lettura dei requisiti aziendali e tecnici, il compito di leggere il codice sarà sempre una PITA reale.


2

Diventa più facile e complicato allo stesso tempo!

Conoscere gli altri è saggezza;
Conoscere se stessi è l'illuminazione.
Padroneggiare gli altri richiede forza;
Padroneggiare se stessi richiede forza;
Chi sa di avere abbastanza è ricco.
La perseveranza è un segno di forza di volontà.
Colui che rimane dov'è, sopporta.
Morire ma non perire è essere eternamente presenti.

tradotto in Sviluppo software

Conoscere molte tecnologie è saggezza. (Tutto discende da ALGOL)
Sapere ciò che non sai è l'illuminazione. (LISP)
Padroneggiare molte lingue, framework e piattaforme richiede molto sforzo. (Java)
Padroneggiare solo ciò che devi sapere e solo ciò richiede forza. (e Google o stackoverflow.com)
Sapere quando interrompere la codifica e distribuire qualcosa è quando si conosce abbastanza bene. (Nessuna analisi di paralisi o doratura)
Continua a lavorare su ciò che stai cercando di ottenere, richiede concentrazione e forza di volontà. (Tutto cambia continuamente, non hai mai finito)
Stick con una o due tecnologie e resisterai. (COBOL paga ancora bene, così come C)
Smettere di programmare e passare alla gestione è essere eternamente presente. (o lasciare un'eredità del software FOSS che tutti continueranno a utilizzare bene dopo la morte).


Quindi, invece di essere una formica, dovresti essere uno scarafaggio e alzarti quando ti schiaccia, vero? :-P
Bugster,

"Analysis Paralysis"! = "Sapere quando interrompere la codifica". È più "sapere quando iniziare a scrivere codice".
Ben Voigt,

0

La domanda, in breve, è se queste cose diventano più chiare per un programmatore mentre avanza nella sua carriera. Gli argomenti complicati come quelli sopra elencati (OpenGL, MySQL, siti HTML avanzati) diventano più facili da leggere, scrivere e comprendere man mano che impari di più o diventa più complicato man mano che procedi? Come puoi combattere questa sensazione di essere una formica nel mondo della programmazione e questa roba sta per schiacciarti?

Prenderò una virata leggermente diversa rispetto agli altri intervistati; Credo che leggere e scrivere il codice in effetti diventi più facile man mano che lo fai di più, e lo dimostrerò con una semplice analogia.

Pensa a quando hai iniziato a praticare sport. All'inizio con il primo sport che hai imparato, la coordinazione di base per i semplici compiti di un singolo sport sembrava probabilmente molto difficile. Man mano che sei diventato un po 'più esperto, hai iniziato a padroneggiare i compiti semplici in modo da non dover più pensarci, e hai notato che c'erano compiti più complessi a cui potresti prestare attenzione (come guardare gli altri giocatori per prevedere il loro comportamento).

Quindi, quando hai provato la tua mano in un altro sport, probabilmente hai scoperto che non eri così indietro quando hai iniziato. Prendere un pallone da basket è molto diverso rispetto a prendere una palla da baseball, ma qualcuno che ha imparato uno di loro avrà un tempo molto più facile a raccogliere l'altro rispetto a una persona che non ha mai fatto nessuno dei due prima. Con la tua esperienza nella pratica di un secondo sport, hai scoperto che il primo sport ti dava competenze specifiche e generiche . Le abilità specifiche (catturare un pallone da basket) sono utili solo nel loro dominio, ma le abilità generiche (tracciare un oggetto in rapido movimento che si avvicina allo spazio tridimensionale e sviluppare un piano per affrontarlo) ti rendono migliore in tutti i domini correlati.


Cosa c'entra questo con la programmazione? La prima riga di codice che leggi ti espone a un mondo basato su determinate regole. Hai appreso quelle regole (la sintassi e gli idiomi di quel linguaggio) come abilità specifiche, ma hai anche imparato alcune preziose abilità generiche: capire come i computer operano internamente e come esprimere le tue intenzioni in un modo che un computer può capire. Ogni nuova lingua che impari ti dà alcune nuove abilità specifiche, ma rafforza anche le tue abilità generiche e ti aiuta a vedere i modelli sparati attraverso tutti i linguaggi del computer come depositi di minerali stratificati lungo una parete del canyon. Una volta che hai familiarità con alcune lingue diverse, inizi a essere in grado di riconoscere la "forma" di quasi tutti i codici, se perdonerai la vaghezza, anche se non sai nulla della lingua in cui è scritto.

Ad esempio, tutte e tre le lingue che hai citato (MYSQL, OpenGL, C ++) hanno alcune caratteristiche comuni:

  • È possibile calcolare separatamente piccole parti di un algoritmo e comporle successivamente in una soluzione completa
  • Il computer richiede in genere una certa preparazione generale prima di poter iniziare a lavorare sul problema specifico (creazione di una tabella, inizializzazione di un'area di disegno o caricamento di librerie comuni)
  • Le dichiarazioni precedenti hanno la precedenza e influiscono sulle dichiarazioni successive, ovvero il computer si avvia nella parte superiore del codice e procede verso il basso

Più programmazione fai, più ti renderai conto che, indipendentemente da come sia fatta la palla, è ancora solo una palla che viene verso di te e sai cosa farne senza pensarci troppo. Tutta la programmazione riguarda il tentativo di esprimere le tue intenzioni in un modo che il computer può capire; impari abbastanza e inizierai a leggere le intenzioni invece del codice.

PS: ogni volta, quando finalmente inizi a sentirti come se sapessi come aggirare, ti imbatterai in qualcosa che ti spezza il cervello e ti fa sentire come un principiante di rango. Questo è ciò che amiamo di questo lavoro, c'è sempre qualcosa di nuovo da imparare.


0

Risposta breve: , in generale

Tuttavia, non diventerai uno specialista se generalizzi. Diventare uno specialista significa anche realizzare tutte le cose che non conosci: questa può essere una sensazione travolgente.

Mentre ti muovi nel tempo, acquisisci esperienza.

Mentre ti muovi nel tempo, altre lingue / modelli ecc. Si stanno sviluppando parallelamente al tuo sviluppo.

Un'altra variabile alla tua domanda è se stai acquisendo un'esperienza significativa in relazione al settore in quanto si muove anche attraverso lo stesso tempo costante. L'industria tecnologica è un obiettivo mobile e diversamente dalla maggior parte delle altre industrie.

Una buona domanda potrebbe anche essere: ti stai diffondendo troppo magro o troppo denso in una certa lingua.


0

È una fonte infinita di meraviglia (e ansia) quanti linguaggi informatici ci sono e la misura in cui continuano a cambiare. Aggiungete a ciò, il numero di diversi framework in ciascuna lingua e per ogni framework, la vasta gamma di librerie e plug-in disponibili. Aggiungete a ciò il numero di editor di codice e IDE.

Tutte queste variazioni hanno due dimensioni di complessità.

  1. Il loro vocabolario e sintassi è diverso.
  2. Le astrazioni (concetti di alto livello) che supportano sono diverse.

Hanno anche una cosa in comune. Completezza di Turing. Con sufficiente sforzo da parte di un programmatore, possono essere tutti utilizzati per risolvere tutti i problemi! Quindi, se inizi con un linguaggio come C (vocabolario piccolo, sintassi complessa e quasi nessuna astrazione) avrai sicuramente la sensazione di poter fare qualsiasi cosa (giustamente).

Quindi passa a "cose ​​semplici" come CSS, HTML, Javascript e forse anche framework come Bootstrap e React, e il tuo cervello friggerà, come farebbe Albert Einstein. La gente pensa "Conosco il francese, quindi imparare il tedesco dovrebbe essere facile". No!

Molte astrazioni di programmazione possono essere apprese da schemi software . Ci sono molti libri dedicati all'argomento. I modelli sono ovunque, sono agnostici e possono essere appresi e compresi una volta . Se conosci i tuoi schemi, puoi usarli in qualsiasi lingua e riconoscerli quando integrati in lingue e più frequentemente in vari framework.

La maggior parte delle persone richiede 1-2 anni per diventare fluente in una nuova lingua e i datori di lavoro lo sanno. Ecco perché non assumono persone non esperte nella loro lingua, perché il nuovo impiegato trascorrerà molto tempo a lottare con la lingua e non abbastanza tempo a risolvere effettivamente i problemi aziendali.

In sintesi, i principi / le astrazioni dell'informatica, i modelli software e il tipo di problemi aziendali che si incontrano, tutto cambia lentamente. Puoi imparare una volta e accumulare nuove conoscenze in modo incrementale. Al contrario, linguaggi informatici, framework, i cosiddetti "ecosistemi" e librerie di componenti cambiano molto rapidamente così come tutti gli strumenti che li circondano. Qui aspettatevi che il ritmo di apprendimento sia lento e dispendioso in termini di tempo!


-1

Gli argomenti complicati come quelli sopra elencati (OpenGL, MySQL, siti HTML avanzati) diventano più facili da leggere, scrivere e comprendere man mano che impari di più o diventa più complicato man mano che procedi? Come puoi combattere questa sensazione di essere una formica nel mondo della programmazione e questa roba sta per schiacciarti?

Quando vengono compiuti progressi, disimpariamo e apprendiamo di nuovo ciò che pensavamo di sapere prima. - Henry David Thoreau

C'è una storia del maestro Zen e della tazza da tè traboccante .

A volte, dobbiamo lasciare andare le nostre nozioni preconcette e le opinioni del passato in modo da poter permetterci di imparare nuovi concetti.

Ricorda: se ti senti sopraffatto da un nuovo concetto, devi cercare molti insegnanti.

Di recente, quando mi è stato assegnato un compito di aggiornamento di alcuni software aziendali interni che utilizzavano un linguaggio di scripting, non avevo familiarità con. All'inizio è stato molto stressante. Tuttavia, dopo aver cambiato il mio atteggiamento, ho iniziato a trovare risorse che spiegassero la sintassi e i concetti di base. Ho completato il progetto e ora utilizzo questo linguaggio di scripting come uno dei miei strumenti per fare più cose.

Il tuo atteggiamento fa la differenza.

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.