Come impari il framework / API / funzionalità standard di una lingua? [chiuso]

13

Capisco come codificare. So come aggirare le basi delle lingue che uso regolarmente. So come scrivere espressioni regolari leggermente sopra la base, posso parlare con i database, posso accettare input, stampare output, gestire file, ecc. Sono più o meno sicuro della mia capacità di base di sputare il codice sorgente per programma moderatamente complesso.

Il mio problema è che non mi sento mai abbastanza. Mi sento come se conoscessi solo una piccola parte della libreria standard della mia lingua, e che fino a quando non capisco tutto, almeno di passaggio, non ho il diritto nemmeno di provare a ottenere un lavoro usando questo. Sono appena uscito da un college (community / junior / whathaveyou), ei miei amici stanno ottenendo un posto di lavoro nel settore, ma mi sento ancora come un falso o un poser e non sono abbastanza bravo.

C'è un indicatore decente per "ne so abbastanza" che potrei usare per assicurarmi di poter codificare? Dovrei prendere il fatto che sono almeno in grado di codificare un FizzBuzz come un indicatore che è giusto candidarsi per le cose? Come posso imparare più facilmente di queste librerie standard, framework e / o API? Codigo regolarmente, leggo libri, ma la mia conoscenza è ancora così superficiale.

AIUTO!

    
posta Throwaway 25.08.2011 - 07:58
fonte

6 risposte

7

Il mio compagno di consigli:

smetti di pensare in modo binario (0/1, non conoscendo / conoscendo, analfabeta / alfabetizzato) e inizia a pensare in modo sfumato (lo so fino a un certo punto). Tutti noi sappiamo qualcosa e in una certa misura. La conoscenza è un continuum e tutti sono collocati da qualche parte tra la persona più analfabeta e il tipo più esperto e sofisticato. Puoi svolgere il lavoro, ma al tuo livello e sotto quello . Questa è la regola. Non aver paura Non aspettare un giorno in cui hai imparato tutto del tuo quadro e IMHO quel giorno non arriverà mai. Anche gli sviluppatori di 20 anni di esperienza stanno ancora leggendo per imparare cose nuove. La programmazione è di natura così ampia che non dovresti (o non puoi) afferrare tutto.

Immergiti nell'ambiente di lavoro e non aver paura. Abbiamo tutti avuto i giorni in cui non potevamo fare qualcosa. Non è un crimine. Fa parte del nostro lavoro. Non sai, impari, provi a fare il lavoro e lo fai.

Penso che ciò che è necessario avere ora, non è più conoscenza. Piuttosto, è semplicemente fiducia in se stessi.

Good Luck

    
risposta data 25.08.2011 - 12:00
fonte
2

Credo che tu stia facendo la domanda sbagliata qui, e se mi permetti un po 'di psicologia ingiustificata, penso che sia perché sei tormentato da un po' di insicurezza e bassa autostima.

Interrompi il confronto con te stesso con gli altri

Prima di tutto, non puoi confrontare te stesso a un livello più ampio con altri programmatori. Anche le rock star che potresti guardare in questo momento probabilmente hanno problemi (sciatteria, ancora un altro modo di fare cose e problemi di atteggiamento), quindi non preoccuparti se ti confronti con loro. Invece, il tuo approccio dovrebbe essere quello di acquisire quanti più mentori puoi, raccogliere tutte le conoscenze possibili e diventare migliore osservando e imitando esperti.

Impara a imparare

Inoltre, l'approccio migliore per diventare un programmatore e uno studente migliori in generale non è nell'apprendimento di cose specifiche o nella comprensione a memoria. IMO, la memorizzazione a memoria è la forma più bassa di apprendimento. È come un programma che manca il passaggio cruciale di "elaborazione" di Input- > Process- > Output. Insegna te stesso concetti come quelli che hai citato nella tua domanda. Ampia comprensione della programmazione è dove si fornisce il massimo valore. Imparare una nuova lingua all'interno dei paradigmi a cui sei abituato è il cakewalk rispetto all'apprendimento della soluzione dei problemi.

E ora, per alcuni consigli scarsi da qualcuno solo un po 'più vecchio di te

Uno dei più grandi errori che ho commesso da giovane è che ho preso le decisioni di tutti per loro assumendo che non ero abbastanza bravo e che il mio tempo e il mio talento non valevano il loro tempo e denaro. Sottolineo costantemente le mie capacità e il mio talento, per quanto scarso possa essere stato in quel momento. Questo è stato un errore enorme.

Quello che devi capire è che persino un programmatore moderatamente decente sembra un mago per fare la media ogni giorno. Potrebbero odiarti, potrebbero essere stufi di dover sempre chiedere a un nerd locale come accendere il computer, ma poiché non hanno idea e comprensione in quello che fai, non importa quanto sia banale e semplice a te, è impossibile a loro.

Le persone ti pagheranno per il tuo tempo, il tuo talento e la tua energia. Ci sono abbastanza programmatori assolutamente terribili nel nostro settore che stanno facendo un omicidio semplicemente perché possono sedersi su un posto e (discutibilmente) scrivere programmi di base. Gioca le tue carte sviluppando un po 'di fiducia in te stesso attraverso il successo, praticando il tuo linguaggio parlante e corporeo, continua a padroneggiare il tuo mestiere cercando sempre cose che non conosci, e corri verso quelle cose per cercare più comprensione, e infine: smetti di minimizzare le abilità che hai sviluppato.

    
risposta data 26.08.2011 - 09:01
fonte
2

"Ne so abbastanza" e "Sono bravo per questo lavoro" sono completamente diversi.

IMO "Sono bravo per questo lavoro" è più vicino a "Conosco le basi e so - cosa imparare / dove cercare / chi chiedere / cosa leggere - per completare i miei compiti".

(questo non significa che ti assumeranno se hai bisogno di 1-2 mesi per imparare ad esempio: scrivi / leggi in file XML. Spero tu capisca cosa intendo.)

Inoltre, non penso che nessun programmatore possa mai dire "ne so abbastanza". (forse "abbastanza per ottenere il lavoro", "abbastanza per essere ricco", "abbastanza per ...", ma non "abbastanza". :))

Modifica Quando dico "nozioni di base" intendo

  1. Nozioni di base sulla programmazione (bit, byte, variabili, funzioni, parametri, cicli, condizioni, ricorsione)
  2. Nozioni di base sul linguaggio di programmazione con cui lavorerai (come compilare un programma, come eseguire il debug di un programma, come utilizzare l'IDE, il 90% delle parole chiave e sapere cosa fanno, quando usare, come usare loro: tipi variabili, come usare le cose da 1 nella lingua, le librerie più utili, la gestione degli errori)
  3. "Collega 1 e 2 con il tuo sangue":)

(Forse dovrai usare 2-3 lingue sul tuo lavoro)

Sono d'accordo con Saeed, mi tuffo nel lavoro, il lavoro è il modo migliore per imparare le cose, lavori con persone che ne sanno più di te, impari da loro, vedi come funzionano, ma hanno iniziato proprio come te (o forse hanno iniziato con meno conoscenze di quelle che hai ora).

    
risposta data 25.08.2011 - 10:07
fonte
1

Hai una grande attitudine! Uno dei fattori fondamentali per il successo è non essere mai compiacenti. Non accontentarti mai. Non scendere mai a compromessi. Detto questo, è molto difficile discernere come esattamente per farlo (ad es. Conoscere la "migliore pratica" per svolgere l'attività X non è semplice come usare Google perché ognuno ha la propria opinione).

È meglio imparare come identificare il buon codice e la logica alla base ( come e perché ). Per questo, consiglierei di leggere i blog di professionisti stimabili nel nostro settore in quanto ciò ti esporrà al tipo di mentalità da cercare. Contribuire a un progetto open source è anche un modo per entrare nella parte più profonda, tuttavia, ti darà l'opportunità di imparare dagli altri mentre attualmente progredisce.

    
risposta data 25.08.2011 - 12:21
fonte
0

Penso che la maggior parte di noi sia stata in quella situazione ad un certo punto prima o poi nelle nostre carriere. E ogni volta che prendi una nuova lingua, tutto ricomincia da capo. Quindi il primo consiglio da parte mia sarebbe: non disperare, non sei solo. E: probabilmente sei meglio di quanto pensi, anche se solo per il fatto che rifletti su te stessa. Ricorda il vecchio adagio: gli sciocchi si precipitano dove gli angeli temono di calpestare.

Al giorno d'oggi la maggior parte delle lingue ha librerie standard che sono semplicemente troppo grandi per permettere a ogni singolo individuo di conoscerlo completamente a memoria. Aggiungi framework e API in cima e non puoi sapere tutto. Il meglio che puoi fare è conoscere le nozioni di base e poi capire dove trovare ulteriori informazioni. Migliora con l'esperienza, quindi il consiglio migliore è probabilmente: vai e usa la roba!

Non esiste un singolo marcatore "decente". Tutto dipende dall'ambiente. Ciò che sarebbe abbastanza perfetto per una società / progetto, potrebbe essere diverso da un altro. Se riesci davvero a fare quello che dici di poter fare, ti classificherei un junior piuttosto decente e non dovresti avere problemi a trovare un lavoro decente.

    
risposta data 25.08.2011 - 10:12
fonte
0

In base a ciò che scrivi nella tua domanda, puoi effettivamente codificare e sei disposto a migliorare le tue capacità e conoscenze.

Ognuno, in ogni lavoro, deve iniziare poco, come novellino, e poi crescere con l'esperienza.

Quanto velocemente la tua crescita dipende da te, tutti crescono a velocità diverse, l'unica cosa importante è che non chiedi troppo a te stesso ora.

Se ti senti qualcosa che non capisci ancora, non preoccuparti. Presto sarai in grado di ottenere l'immagine.

Potresti voler iniziare a lavorare nel settore il prima possibile. Dato che puoi già programmare, puoi già iniziare a lavorare. Questo perché la teoria non è abbastanza buona, hai bisogno di pratica e problemi del mondo reale da risolvere.

Per quanto riguarda i problemi di conoscenza del codice della libreria, verrà con il tempo, a patto che continui a studiarlo, leggere la documentazione e fare pratica nell'usarlo. Anche siti come questo sono molto utili e imparerai più velocemente se chiedi e rispondi attivamente a domande correlate.

Un consiglio personale: se vuoi davvero distinguerti dalle molte persone che fanno codice spaghetti, chiamandosi programmatore, apprendi le migliori pratiche. Non importa quale lingua o libreria stai imparando o codificando, apprendi le migliori pratiche. Ciò ti farà risparmiare un sacco di tempo, bug, glitch, mal di testa e ti aiuterà a sentirti un programmatore migliore.

    
risposta data 26.08.2011 - 08:58
fonte

Leggi altre domande sui tag