Come programmatore "nuovo" (ho scritto per la prima volta una riga di codice nel 2009), ho notato che è relativamente facile creare un programma che esponga elementi abbastanza complessi oggi con cose come .NET framework per esempio. La creazione di un'interfaccia visuale o l'ordinamento di un elenco possono essere eseguiti con pochissimi comandi ora.
Quando stavo imparando a programmare, stavo anche imparando la teoria dell'informatica in parallelo. Cose come algoritmi di ordinamento, principi su come l'hardware funziona insieme, algebra booleana e macchine a stati finiti. Ma ho notato che se avessi mai voluto testare un principio di base che avevo imparato in teoria, era sempre molto più difficile iniziare perché tanta tecnologia è oscurata da cose come librerie, framework e sistema operativo.
La realizzazione di un programma efficiente per la memoria era necessaria 40/50 anni fa perché non c'era abbastanza memoria ed era costoso, quindi la maggior parte dei programmatori prestava molta attenzione ai tipi di dati e al modo in cui le istruzioni sarebbero state gestite dal processore. Oggigiorno, alcuni potrebbero obiettare che a causa della maggiore potenza di elaborazione e della memoria disponibile, tali preoccupazioni non sono una priorità.
La mia domanda è se i programmatori più anziani vedono innovazioni come queste come una manna dal cielo o un ulteriore livello da estrapolare, e perché potrebbero pensarle così? E i programmatori più giovani traggono vantaggio dalla programmazione a basso livello dell'apprendimento PRIMA di esplorare i reami delle librerie espansive? Se è così allora perché?