Memorizzi le classi dei tuoi quadri? [duplicare]

1

Sono stato uno sviluppatore iOS per circa 5 anni. Ci sono ancora cose che fanno NSString e NSArray che non sapevo che potevano. Tutti gli attributi e i comportamenti opzionali che non ho visto, perché non mi sono mai seduto e ho memorizzato tutti gli optionals e le funzionalità della classe NSString. Conosco la maggior parte delle cose di base in cima alla mia testa, ma di solito google per il modo più veloce per farlo se non posso al volo. La mia domanda è: voi ragazzi avete memorizzato la maggior parte delle classi dei vostri quadri più comunemente utilizzati? (Per me sarebbe Cocoa Touch). Questo ha qualche effetto sulla classificazione del "livello" del programmatore che sei? Tecnicamente sono un senior e faccio bene il mio lavoro, ma quanto sopra mi fa meravigliare ... Chi è sulla stessa pagina, se qualcuno?

    
posta Henry F 08.01.2015 - 05:14
fonte

6 risposte

9

Sono uno sviluppatore C # /.

.Net è ENORME quindi non mi picchio per non sapere tutto dentro e fuori. Detto questo, dato che negli ultimi anni mi sono concentrato principalmente su applicazioni aziendali desktop / server, conosco bene il sottoinsieme di .Net che risolve i miei problemi tipici. Questo non vuol dire che di tanto in tanto non scopro nuove gemme qua e là.

Periodicamente trovo cose nuove (o anche vecchie) utili ma che non ho mai saputo. Per me, queste nuove gemme si trovano solitamente leggendo il codice di altre persone - non sfogliando la documentazione dell'API.

Il codice di altre persone è stata la mia principale risorsa per l'apprendimento per molto tempo. Alla fine, quando ho costruito una base accettabilmente solida, mi sono buttato su blog pazzi come quello di Eric Lippert.

Nella mia esperienza, questo approccio non è raro. Circa l'80% degli sviluppatori che incontro sul lavoro non si preoccupa di progredire come sviluppatore. L'altro 20% sembra avere approcci più o meno identici ai miei. E sì, questo implica googling tutto ciò che non so in cima alla mia testa.

Non mi preoccuperei troppo se fossi in te. Il semplice fatto che tu pensi a queste cose abbastanza da fare una domanda qui è un ottimo segno.

    
risposta data 08.01.2015 - 05:33
fonte
12

Ho programmato professionalmente per 20 anni e sono ancora stupito di quanto non lo so. I miei linguaggi più forti sono C ++ e Perl, e conosco molto bene le basi della lingua, ma poi ci sono STL e Boost che devo cercare continuamente e tutto il CPAN che uso occasionalmente e sono sempre felice di trovare qualcuno altrimenti ha già creato un modulo per il codice che ho scritto per una settimana.

Le lingue, le API e il codice di altre persone (OPC) vanno sempre e vengono, si evolvono e muoiono. La mia esperienza ventennale non sarebbe nulla se tutto quello che potevo fare era gettare con accuratezza al 100% le proprietà e i metodi del popolare sviluppo dello sviluppo di quest'anno. Impara come programmare magnificamente con gli strumenti che hai e non preoccuparti se non sai tutto su ogni classe. Le probabilità sono che qualche nuova API verrà introdotta alla fine che rende obsoleta l'API che hai speso migliaia di ore di apprendimento e mastering.

Windows era un'AP basata su C, quindi ho imparato l'API di Windows, quindi Win32. Poi è andato a C ++ in Borland, quindi ho imparato OWL. Non è andata bene, quindi ho imparato MFC. Ho dovuto imparare OLE quindi OLE2 quindi COM poi .NET. Qual'è il prossimo? Apple si rivolge a Swift. Non ne so nulla, quindi potrebbe essere impreciso: è ora di abbandonare Cocoa Touch?

Sono sicuro che qualsiasi vecchio timer ha storie simili. Qualunque cosa. Impara a programmare, usa tutto ciò che sai delle API disponibili, abbraccia le nuove conoscenze mentre lo trovi, ma non ucciditi mentre impari l'ultimo pezzo di esso, perché potrebbe non essere rilevante tra qualche anno.

    
risposta data 08.01.2015 - 06:34
fonte
2

Concentrati sul percorso problem-to-class.

Preferisci afferrare concetti e modelli sulla memorizzazione di dettagli di classe, perché questi sono molto più portabili di questi ultimi. Certo, conoscerai i dettagli delle lezioni che usi quotidianamente, ma non sarai in grado di tenere traccia di tutte le classi dei tuoi (futuri) framework.

Una casa può essere definita come composta da mattoni (o anche atomi), ma questo non aiuta molto quando si costruisce uno. Le classi sono ovviamente molto più astratte delle singole righe di codice, ma memorizzare tutte le sue sfaccettature è overhead, solo memorizzare le classi chiave .

Molto probabilmente, la tua memoria per fatti semplici diminuirà con l'aumentare dell'età, mentre la tua capacità di integrare la conoscenza (se ben sviluppata) durerà ancora un po '.

    
risposta data 08.01.2015 - 12:05
fonte
0

Sì, posso dirti che in cima alla mia testa probabilmente l'80% delle operazioni riguarda le cose che uso ogni giorno. Dopo tutto, come puoi progettare di costruire qualcosa se non sai quali sono i tuoi strumenti?

Per essere onesti, ho una memoria eccezionale.

    
risposta data 08.01.2015 - 05:27
fonte
0

La maggior parte della mia conoscenza è nel mondo, al contrario della mia mente.

Per lo più .net. A differenza di Telastyn, probabilmente ho solo circa il 20% di quello che uso regolarmente memorizzato. Per il resto, so a malapena che l'intellisense può tirare fuori il resto di cui ho bisogno, il che è altrettanto veloce che l'ho memorizzato. Quella conoscenza è ciò che è nel mondo.

Altre volte, lavorando su Python, ad esempio, viene memorizzata una percentuale maggiore, che comprende molto meno di ciò che è immediatamente accessibile in C #. Quella conoscenza è nella mia mente.

In nessuno dei due casi, spendo qualsiasi sforzo per commutare le cose a memoria meccanica. Tutto è memorizzato attraverso l'osmosi, semplicemente usandolo ripetutamente.

    
risposta data 08.01.2015 - 05:51
fonte
0

La fluidità dovrebbe essere qualcosa a cui aspirare nella lingua che stai utilizzando. Non sono sicuro che ti distingui sapendo che le cose esistono e le memorizzi. Quando qualcuno dice di memorizzare, di solito penso all'esatta denominazione, sintassi, ecc. Per me c'è una differenza maggiore tra uno sviluppatore che non considera nemmeno Google una capacità di un linguaggio / framework per chi ha bisogno di un "cheat sheet" o riferimento al codice di scrittura reale di quello che c'è tra quelli che hanno bisogno di alcuni promemoria e quelli che hanno memorizzato tutto.

Alcune persone hanno ricordi migliori di altri. Alcuni si impegnano maggiormente a memorizzare le cose, ma penso che uno sviluppatore che ha sviluppato la padronanza di una lingua sta dimostrando molta più esperienza. Se dichiari di essere uno sviluppatore senior che sta attualmente lavorando con una particolare lingua, ma non sei sicuro di come scrivere e la dichiarazione IF, sarai sospetto.

    
risposta data 08.01.2015 - 16:14
fonte

Leggi altre domande sui tag