Ako neke stvari ne možeš da ukapiraš sam, džaba sve diplome, fakulteti i kursevi, jer gde god da nađeš posao, često ćeš rešavati probleme za koje nisi čuo na tim kursevima ili na fakultetu, ali na osnovu ranije stečenih znanja i iskustva moraš da osmisliš rešenje. Možda je rešenje takvog problema neko drugi već našao, ali ga nije postavio na Github, Stackoverflow ili negde drugde. A i kad bi za svaku stvar morao da tražiše nečije rešenje na internetu i na osnovu toga sastavljaš kod za zadati problem na poslu, svi bi mogli da budu programeri.
Ali, pisanje koda je samo jedan deo posla, postoji onaj bitniji i teži deo koji se uglavnom ne uči na tim kursevima, a ni na fakultetu iz predmeta direktno vezanih za IT. Zato oni koji su bežali od matematike, fizike ili bilo čega drugog gde se traži razvijena logika, nikad nisu mogli da postanu dobri programeri. Pritom ne mislim na neku visoku matematiku, integrale, diferencijalne jenačine ili tako nešto, nego mislim na onu osnovnu matematiku, praktično ono što se uči u osnovnoj školi.
Recimo, evo iz iskustva jedna situacija, nije baš matematika iz osnovne škole, ali se uči na fakultetima: kod jednog problema "programer" množi dve matrice tako što za svaki element rezultujuće matrice množi vrstu prve sa kolonom druge matrice (kao vektore, svaki element sa svakim elementom, i ti proizvodi se saberu, što je ispravan način); kod drugog problema, množi vrstu prve sa vrstom druge matrice (što je, naravno, netačno)!
I ne radi se o kodu, nego o "matematičkom" rešenju, tj. o postupku ispisanom na papiru za konkretne primere množenja matrica.
Taj "programer" je položio sve matematike i druge predmete, ali nije razvio nikakvu logiku niti ispravno razmišljanje. Moguće su greške u brzini pri množenju i sličnim operacijama, ali ovakva greška se ne može napraviti "slučajno" ili "u brzini".
Ili drugi primer: "programer" sa diplomom IT-a ne zna vrednosti sinusa i kosinusa za karakteristične uglove: 30°, 45°, 60°, a tek treba da polaže IT predmet u kome se za rešenja nekih problema koriste Furijeovi redovi. Može on da prođe tehnički intervju tako što nauči neke stvari napamet, ali će napredovanje u poslu biti veoma sporo i teško.
Jer poznavanje određene tehnologije, programskoj jezika, platforme i sl. je samo poznavanje alata koji se koristi da se reši neki problem. To je slično kao poznavati rad sa čekićem i dletom, ali to nikako nije dovoljno da se izrezbari reljef u drvetu prema zahtevu klijenta.
To "rezbarenje" u programiranju se ne može naučiti na nekom skraćenom kursu, a ni na fakultetu ako se ne radi samostalno ili ako se neke bitne stvari preskoče ili polože na prepisivanje. Takav "programer" može da radi samo "grube radove", npr. kod obrade kamena može da radi u kamenolomu, ali nikako u radionici gde se od manjih komada kamena klešu biste, statue, ili reljefi određenih geometrijskih oblika.
Blessed are those who can laugh at themselves, for they shall never cease to be amused.