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.