View Full Version : [COME] Programmatore professionista, memoria ecc..
D3stroyer
03-02-2008, 10:54
Ciao a tutti, ho una domanda alla quale non ho risposta intelligente e questo inizia a rovinarmi la vita scolastica...quindi chiedo parere a voi, dato che tanti fanno i programmatori proprio come mestiere.
Quando si studia un linguaggio si imparano un tripudio di termini, sequenze logiche e non, metodi. Il problema è che dopo tot. mesi che non uso determinate procedure queste si perdono completamente dentro a qualche buco nero del cervello e avendole imparate la prima volta "sperimentando" mi trovo al punto d'inizio o poco piu'.
La domanda è: come fa, un programmatore di professione ad avere un modo pratico e veloce per riprendere concetti che non usa da tempo? Ognuno ha un suo "raccoglitore da esperienza"? Oppure un libro di riferimento? E' impossibile tenere tutto in mente! Come ovviate al problema "cavolo questa cosa non mi ricordo bene come si fa?"
Grazie delle risposte, sono curiosissimo di sentire cionci, fek, alreadyinuse e qualcun'altro :)
jappilas
03-02-2008, 12:37
Ciao a tutti, ho una domanda alla quale non ho risposta intelligente e questo inizia a rovinarmi la vita scolastica...quindi chiedo parere a voi, dato che tanti fanno i programmatori proprio come mestiere.non programmo ancora per professione , ma essendo del settore ( dovendo terminare ing. informatica ) e avendo lo stesso problema ( soprattutto accentuato da problemi di memoria a breve termine dovuti a un esaurimento nervoso ) forse ti posso essere utile...
La domanda è: come fa, un programmatore di professione ad avere un modo pratico e veloce per riprendere concetti che non usa da tempo?
E' impossibile tenere tutto in mente!esatto, è (magari non sempre, ma molto frequente) impossibile nonchè spesso controproducente
credo che il buon sviluppatore, come sa modellare una soluzione SW a un determinato problema in un determinato ambito, ragionando al giusto livello di "astrazione" ( di modo da poter scegliere e usare gli strumenti (*)più adatti al suo task ) sappia anche catalogare nella propria mente tutte le informazioni che lo studio gli ha in precedenza portato, in base alla tipologia di strumento a cui ognuna afferisce e all' attinenza rispetto all' ambito operativo attuale
(*) per strumento si intende qualunque cosa lo sviluppatore usi per progettare prima ( per esperienza personale, passare direttamente alla stesura del codice di produzione senza prima una formalizzazione dei requisiti è una pratica da evitare) e costruire poi, la soluzione SW - le librerie e i toolkit con le loro API e le loro peculiarità sono strumenti, il linguaggio stesso è uno strumento, le nozioni di (ad es) geometria analitica da applicare in un dato caso ( sempre ad es, motore grafico 3D) sono a loro volta strumenti
ora, è ovvio che con l' uso frequente di un dato tipo di strumento la mente resterà più esercitata a ritenere le nozioni correlate con quello strumento, ma la cosa importante imho, è sapere che esistono anche gli altri strumenti (da qui l' importanza di una formazione "ad ampio spettro" sullo sviluppo SW ) e sapere come e dove poter reperire rapidamente informazioni per il loro uso laddove queste manchino o siano lacunose ( da cui l' importanza di tenere ordinati i ricordi delle materie studiate )
Come ovviate al problema "cavolo questa cosa non mi ricordo bene come si fa?"documentazione relativa sempre in linea per le API in uso, (MSDN nel caso delle api microsoft ) ma anche per il linguaggio in uso (come nel caso del C++, abbastanza vasto e complesso da impedirmi di ricordare un certo numero di __keyword e su cui la documetazione msdn è completa )
libri ( matematica, geometria analitica, gestione di database) sempre a portata di mano per veloci ricerche
tool di raccolta e indicizzazione dei "code snippet"
banryu79
03-02-2008, 13:14
Ciao,
io non sono propriamente un programmatore di professione, dato che il mio lavoro normalmente non è fondato sulla programmazione come unica o principale attività, anche se da due anni a questa parte questo ne è stato l'aspetto preminente.
In sostanza quoto Jappilas, mi trovo d'accordo con lui, rimarco i due punti che, dal mio punto di vista e dalla mia (limitata) esperienza, ritengo molto importanti:
la cosa importante imho, è sapere che esistono anche gli altri strumenti (da qui l' importanza di una formazione "ad ampio spettro" sullo sviluppo SW)
Ok, focalizzarsi e specializzarsi, ma non "fissarsi" solo su alcuni aspetti e stop, è importante ritagliare quantità di tempo, anche minime ma costanti, per lanciare lo sguardo anche a tutto il resto.
sapere come e dove poter reperire rapidamente informazioni per il loro uso laddove queste manchino o siano lacunose
Questà è una capacità importantissima.
L'importante non è tenersi tutto a mente, cosa peraltro impossibile, ma assimilare i concetti. Poi, ovviamente, i dettagli implementativi uno se li va a riguardare. Per questo ci sono le guide in linea :)
Certo, se uno ogni volta si dimentica tutto, anche le nozioni base allora si che è un problema. Perchè c'è una grossa differenza tra il non ricordarsi una cosa e non saperla proprio. Nel primo caso, basta darsi un'occhiata più o meno veloce, nel secondo è necessario studiarsela a fondo.
Hell-VoyAgeR
03-02-2008, 15:17
Quando fai (piu' o meno) le stesse cose per mesi e mesi / 8 ore al giorno... puoi dimenticarti una keyword... ma concetti, algoritmi e simili sono ormai incisi col fuoco nei pochi neuroni rimasti :D
^TiGeRShArK^
03-02-2008, 15:18
io sinceramente + che altro a volte faccio un pò di confusione quando passo da C# a java dato che sono molto simili, ma alcune cose sono completamente diverse..
Di solito quando ho qualche dubbio uso il classico CTRL+SPAZIO (che nel 99% dei casi risolve il problema) oppure scrivo su google il nome del metodo che mi ricordo e il linguaggio che sto usando in quel momento e trovo il nome esatto.
La domanda è: come fa, un programmatore di professione ad avere un modo pratico e veloce per riprendere concetti che non usa da tempo? Ognuno ha un suo "raccoglitore da esperienza"? Oppure un libro di riferimento? E' impossibile tenere tutto in mente! Come ovviate al problema "cavolo questa cosa non mi ricordo bene come si fa?"
I concetti base, una volta appresi, non si dimenticano. Per tutto il resto c'e' Google :)
AnonimoVeneziano
03-02-2008, 21:44
Anch'io sono una segaiola nel ricordarmi i nomi a memoria :D (anche se con certi termini informatici mi riesce incredibilmente bene ... e poi mi scordo il cellulare o il numero segreto dell'account dell'università :stordita: :doh:)
Non mi resta che confermare i pensieri di tutti quelli che hanno scritto prima di me. Impari, cerchi di apprendere il più che puoi, magari non solo sperimentando, ma cercando di fare qualcosa di serio (o semi serio) in modo che i concetti si imprimano in mente. A volte fare il semplice copia-incolla di tutorial trovati su internet non serve allo scopo. Poi passato il tempo è ovvio che non ci si ricordi tutto, ma è la velocità di recupero che è importante. Una volta che si sono appresi quei concetti fondamentali il recupero di tutto il resto è molto rapido avendo davanti una guida e si ritorna produttivi in poco tempo.
Ciao
L'esperienza....ti viene tutto in mente con l'esperienza (suppongo dato che non sono un programmatore...dovrei finire quest'anno la triennale in info)
Dott.Wisem
04-02-2008, 10:03
La domanda è: come fa, un programmatore di professione ad avere un modo pratico e veloce per riprendere concetti che non usa da tempo?Semplice: tanta, ma tanta pazienza e forza di volontà. :D
P.S.: cercare a tutti i costi di imparare a memoria un linguaggio di programmazione è controproducente. Idealmente, la mente di un programmatore dovrebbe essere in grado di adattarsi a qualsiasi linguaggio con cui si dovesse trovare a che fare. La cosa fondamentale quando si studia un linguaggio di programmazione è capirne la "filosofia" di base. Ad esempio: se devo imparare il Java o il C#, come prima cosa devo avere una buona conoscenza dei principi fondamentali della programmazione Object Oriented in generale.
Imparare il 'C' è sempre utile, se non altro da un punto di vista didattico, essendo che sono numerosissimi i linguaggi moderni che adottano una sintassi fortemente ispirata ad esso.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.