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


14

Capisco come programmare. So come aggirare le basi delle lingue che uso regolarmente. So scrivere espressioni regolari leggermente al di sopra della base, posso parlare con 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 avrò capito tutto, almeno di sfuggita, non ho il diritto nemmeno di provare a trovare un lavoro utilizzandolo. Sono appena uscito dal college (community / junior / whathaveyou), e i miei amici stanno trovando lavoro nel settore, ma mi sento ancora un falso o un poser e che non sono abbastanza bravo.

Esiste un marcatore decente per "So abbastanza" che potrei usare per assicurarmi di poter programmare? Dovrei prendere il fatto che sono almeno in grado di codificare un FizzBuzz come indicatore che va bene fare domanda per le cose? Come posso saperne di più su queste librerie, framework e / o API standard relativamente facilmente? Scrivo regolarmente, leggo libri, ma la mia conoscenza sembra ancora così superficiale.

AIUTO!


3
più impari, più ti rendi conto di quanto poco sai. +1 per un'ottima domanda.
Devnull,

Non sono sicuro che questa roba meriti di essere memorizzata. Dopo tutto, hai una documentazione ricercabile, IDE intelligenti e così via. È molto meglio utilizzare il cervello per cose importanti, per conoscenze fondamentali, mantenendo al di fuori tutte quelle API volatili.
SK-logic,

I feel like I only know a small portion of the standard library of my languagequesta frase dovrebbe essere il motto ufficiale del C ++ .
ZJR,

Risposte:


8

Il mio amico di raccomandazione:

smettere di pensare binario (0/1, non sapere / sapere, analfabeta / letterato) e iniziare a pensare sfocato (lo so in una certa misura). Tutti noi sappiamo qualcosa e in una certa misura. La conoscenza è un continuum e ognuno si colloca tra la persona più analfabeta e il ragazzo più esperto e sofisticato. Puoi fare 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 framework e IMHO quel giorno non arriverà mai. Anche gli sviluppatori con 20 anni di esperienza stanno ancora leggendo per imparare cose nuove. La programmazione è così ampia che non dovresti (o non puoi) afferrare tutto.

Tuffati nell'ambiente di lavoro e non aver paura. Abbiamo avuto tutti 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 devi avere ora, non sia più conoscenza. Piuttosto, è semplicemente fiducia in se stessi.

In bocca al lupo


Capisco che è tutta una conoscenza confusa e un po 'di apprendimento JIT dei dettagli. Non so come assicurarmi di avere una comprensione confusa delle basi. Temo che mi manchino completamente alcune cose davvero importanti.
Lancio il

2

Credo che tu stia facendo la domanda sbagliata qui, e se mi permetti un po 'di psicologia ingiustificata, penso che sia perché sei afflitto da un po' di insicurezza e scarsa fiducia in se stessi.

Smetti di paragonarti ampiamente agli altri

Prima di tutto, non puoi confrontarti a livello generale con altri programmatori. Anche le rock star alle quali potresti guardare in questo momento probabilmente hanno problemi (sciatteria, Yet Another Way Of Doing Things e problemi di atteggiamento), quindi non preoccuparti se ti confronti. Invece, il tuo approccio dovrebbe essere quello di acquisire quanti più mentori puoi, raccogliere tutte le conoscenze possibili e migliorare guardando e imitando gli esperti.

Imparare a imparare

Inoltre, l'approccio migliore per diventare un programmatore e uno studente migliori in generale non è l'apprendimento di cose specifiche o la comprensione mediante la memoria. IMO, la memorizzazione automatica è la forma più bassa di apprendimento. È come un programma a cui manca il passaggio cruciale di "elaborazione" di Input-> Process-> Output. Insegna a te stesso concetti come quelli che hai menzionato nella tua domanda. L'ampia comprensione della programmazione è quella in cui offri il massimo valore. Imparare una nuova lingua all'interno di paradigmi con cui hai familiarità è un gioco da ragazzi rispetto all'apprendimento della risoluzione dei problemi.

E ora, per qualche consiglio scarso da qualcuno solo un po 'più grande di te

Uno dei più grandi errori che ho commesso da giovane è stato quello di aver preso le decisioni di tutti gli altri assumendo che non fossi abbastanza bravo e che il mio tempo e il mio talento non valessero 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 anche un programmatore moderatamente decente sembra un mago per la media di tutti i giorni. Potrebbero odiarti, potrebbero ammalarsi di dover sempre chiedere a un secchione locale come accendere il computer, ma poiché mancano di comprensione e comprensione di ciò che fai, non importa quanto ti sembri banale e semplice, è 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 uccidendo semplicemente perché possono sedersi su un sedile e (probabilmente) scrivere programmi di base. Gioca bene le tue carte sviluppando un po 'di fiducia in te stesso attraverso i risultati, esercita il tuo linguaggio e il linguaggio del corpo, 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.


2

"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 avrebbe mai detto "Ne so abbastanza". (forse "abbastanza per ottenere il lavoro", "abbastanza per essere ricco", "abbastanza per ...", ma non "abbastanza". :))

EDIT: Quando dico "nozioni di base" intendo

  1. Nozioni di base sulla programmazione (bit, byte, variabili, funzioni, parametri, loop, 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; 90% delle parole chiave e sapere cosa fanno, quando utilizzarle, come usarle; variabile tipi; come usare le cose da 1 nella lingua; librerie più utili; gestione degli errori)
  3. "Collega 1 e 2 con il tuo sangue" :)

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

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


Non mi ci vorrebbe un mese per leggere e scrivere file XML, anche se penso ancora che probabilmente mi ci vorrebbe un giorno. Puoi approfondire "le basi"? Questa è la principale spinta della mia domanda in realtà, dal momento che non so di conoscere le basi. Conosco sicuramente alcune delle basi, ma temo davvero che mi manchino delle lacune davvero fondamentali.
Lancio il

1

Hai un atteggiamento eccezionale! Uno dei fattori fondamentali per avere successo è di non essere mai compiacenti. Non stabilirsi mai. Non scendere mai a compromessi. Detto questo, è molto difficile discernere esattamente come farlo (ad esempio, conoscere la "migliore pratica" per svolgere l'attività X non è così semplice come cercare su 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 blog di professionisti rispettabili nel nostro campo in quanto ciò ti esporrà al tipo di mentalità da cercare. Contribuire a un progetto open source è anche un modo per saltare nel profondo, tuttavia, ti darà l'opportunità di imparare dagli altri mentre progredisce attualmente .


Grazie. Non credo di essermi reso conto di quanto mi servisse per sentire tali elogi.
Lancio il

0

Penso che la maggior parte di noi si sia trovata in quella situazione prima o poi nelle nostre carriere. E ogni volta che acquisisci una nuova lingua, tutto ricomincia da capo. Quindi il primo consiglio da me sarebbe: non disperare, non sei solo. E: probabilmente sei migliore di quanto pensi, anche solo per il fatto che ti rifletti da solo. Ricorda il vecchio adagio: gli sciocchi si precipitano dove gli angeli hanno paura di camminare.

Oggi la maggior parte delle lingue ha librerie standard che sono semplicemente troppo grandi per essere rilevate completamente a memoria da ogni singolo individuo. Aggiungi framework e API in cima e non puoi assolutamente conoscerlo. Il meglio che puoi fare è conoscere le basi e poi capire dove scoprire di più. Migliora l'esperienza, quindi il miglior consiglio è probabilmente: basta andare e usare le cose!

Non esiste un singolo marker "decente". Tutto dipende dall'ambiente. Ciò che sarebbe perfettamente perfetto per un'azienda / progetto, potrebbe essere molto diverso per un'altra. Se riesci davvero a fare quello che dici di fare, ti classificherei come un ragazzo piuttosto decente e non dovresti avere problemi a trovare un lavoro dignitoso.


[Copia / incolla dal mio commento sul commento di @ e-MEE sopra] Non mi ci vorrebbe un mese per leggere e scrivere file XML, anche se penso ancora che probabilmente mi ci vorrebbe un giorno. Puoi approfondire "le basi"? Questa è la principale spinta della mia domanda in realtà, dal momento che non so di conoscere le basi. Conosco sicuramente alcune delle basi, ma temo davvero che mi manchino delle lacune davvero fondamentali.
Lancio il

0

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

Tutti, in ogni lavoro, devono iniziare poco, come principianti, e poi crescere con esperienza.

Quanto è veloce la tua crescita dipende da te, ognuno cresce a velocità diverse, l'unica cosa importante è che non ti chiedi troppo da te ora.

Se qualcosa che senti di non capire 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 biblioteca, arriverà con il tempo, finché continuerai a studiarlo, a leggere la documentazione e ad esercitarti ad usarlo. Anche siti come questo sono molto utili e imparerai più velocemente se poni attivamente e rispondi a domande correlate.

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

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.