Ja chciałbym zwrócić uwagę na kilka rzeczy. Co innego jest uczyć się czegoś (niekoniecznie programowania) samodzielnie, a co innego jest uczyć się czegoś pod wpływem bodźców zewnętrznych. Czym są bodźce zewnętrzne? Jednym z najlepszych czynników wspomagających naukę czegokolwiek jest stres oraz presja. Opiszę to na przykładzie: jeśli uczysz się czegoś samodzielnie nauka generalnie idzie wolniej. Natomiast jeśli "ktoś stoi nad tobą", czyli na przykład musisz napisać jakiś program na zaliczenie egzaminu na uczelni, jesteś pod wielką presją, odczuwasz stres. W takim przypadku opanowanie materiału do nauki może potrwać nawet 10 razy szybciej, niż uczenie się danego zagadnienia samodzielnie.
Znam to na przykładzie motywacji w sporcie. Im większa presja i stres, tym jesteś bardziej wydatny. Stres i presja wzmacniają motywację do osiągnięcia jak najlepszego wyniku.
Programowanie to tak szeroka dziedzina wiedzy, że nikt nie jest w stanie opanować jej całej. Prawnik też w mgnieniu oka nie wymieni całej treści obowiązującego prawa.
Dopiszę jednak jeszcze, że opanowany cały zasób wiedzy z danej dziedziny, nie czyni nikogo ekspertem w tej dziedzinie. Równie ważne jest myślenie, nastawienie i postrzeganie danej dziedziny, w której chcemy być ekspertem. To też poniekąd wynika z psychologii sportu, mentalność odgrywa tu kluczową rolę.