Come diventare uno scienziato informatico? Cosa serve

Non è una domanda facile a cui rispondere, se ci tieni davvero al termine "scienziato" nel titolo. Ho scritto un po' su questo sul mio blog: Se state entrando nell'informatica, date un'occhiata a questo, Iniziare il viaggio per diventare uno scienziato informatico, e Alan Kay: Rethinking CS education.

L'informatica è iniziata come un termine aspirazionale nei primi anni '60, con l'idea che un giorno sarebbe stata una scienza nel vero senso del termine, non come le scienze sociali o le biblioteconomie. La disciplina ha perseguito questo obiettivo per circa 15 anni, ma con il disimpegno della DARPA dalla ricerca informatica, senza un'istituzione alternativa che raccogliesse la palla, quell'obiettivo è svanito. Così, mentre quella che oggi si chiama informatica potrebbe insegnare alcune importanti idee di base per la disciplina, a seconda dell'istituzione, è raro che insegni ciò che l'informatica dovrebbe essere.

Alan Kay aveva questo da dire al riguardo (dal mio post "Alan Kay: Rethinking CS education"), parlando di Alan Perlis:

Ok, ora la terza idea, qui. Torniamo al primo vincitore del premio Turing; questo piccolo gnomo era uno dei grandi uomini del nostro tempo, Al Perlis. Ha più o meno creato l'informatica, e ho pensato che, dato che il termine CS viene sbandierato spesso, potrebbe essere interessante vedere cosa intendeva realmente il tizio che ha inventato il termine. Così, disse questo nei primi anni '60 ("Abbiamo bisogno di una 'scienza dell'informatica'!"), e qualcuno disse, "Cosa significa?" Lui disse: "L'informatica è la scienza dei processi". Non intendeva "scienza" come scienza delle biblioteche. Non intendeva "scienza" come scienza sociale. Intendeva davvero scienza! Non lo intendeva come una metafora. Intendeva dire che dobbiamo avere una scienza delle cose in processo, e ce ne sono una miriade! Questo è ciò che intendeva! Non aveva una definizione ingegneristica. Quella è un'altra cosa. Ha detto che dobbiamo capire le cose in processo, e intendeva tutti i processi. Intendeva processi meccanici, processi tecnologici, c'è la Costituzione, processi sociali (I ragazzi che hanno fatto la Costituzione erano geni sociali. Hanno messo insieme un sistema migliore di qualsiasi sistema informatico che abbiamo mai fatto, perché ha milioni e milioni di parti non terribilmente cooperanti, e fondamentalmente ha prosperato, con qualche intoppo lungo la strada, per centinaia di anni. Pensateci. E la Costituzione - ne ho una versione con me - è solo un piccolo libro. È una meta-ricetta per un sistema operativo molto complicato e multiprocesso molto, molto al di là di tutto ciò che siamo stati in grado di fare [nell'informatica]), e naturalmente, la biologia, e naturalmente i processi mentali. E l'altra cosa che Perlis ha detto è che oltre a guardare tutti i processi, essa stessa [l'informatica], per quello che è, può servire come una rappresentazione, una specie di matematica per tutti i processi.

Quindi questa è una grande idea! È un'idea eccitante! Mi ha eccitato. È una delle cose più grandi. Odio vedere l'informatica e la scienza dei computer annacquate in qualche terribile tipo di ingegneria in cui i babilonesi potrebbero aver fallito, con piccole concezioni di programmazione di un computer, come lo sminuzzamento delle variabili con una dichiarazione di assegnazione. Questo è patetico! Lo dico in questo modo forte, perché dovete rendervi conto che siamo nel mezzo di una forma completa di stronzata che è cresciuta da una cultura pop, in collisione con questo potere; questo potere e questa ricchezza. Per servire l'educazione - che penso dovrebbe ancora essere più su ciò di cui la gente ha bisogno, piuttosto che su ciò che vuole - [non può] cedere a ciò che fa la cultura pop. Deve pensare a se stessa come all'altra cultura; la cultura sviluppata. Non dovrebbe sbarazzarsi della cultura pop. La cultura pop ha un'energia incredibile. Qualsiasi cultura sviluppata ha bisogno di questa energia, ma non può cedere a questa energia. Ci deve essere una tensione ragionevole.

Quindi, ciò che incoraggio le persone a fare, in termini di tentativi di diventare scienziati informatici, è cercare ricerche interessanti dei migliori scienziati informatici, e vedere se si è ispirati da ciò che hanno fatto, e dalle loro idee in merito, e "tirare quel filo". In termini di educazione formale, raccomando davvero di "fare shopping" non per quale università vi prenderà, ma per quale università ha quello che potete discernere è il miglior programma che vi darà la vera educazione di cui avete bisogno per perseguire la ricerca che volete. La risposta potrebbe non essere ovvia. Potrebbe non comportare prendere l'informatica come studente universitario, ma qualche altro corso di laurea, o una combinazione di corsi di laurea. Ho pensato che fosse interessante che Alan Kay dicesse questo (nel video qui sotto) a proposito della sua educazione informatica. Si è laureato in biologia molecolare e matematica prima di "inciampare" nell'informatica (non stava nemmeno cercando di entrarci). Ha detto che non era possibile ottenere una laurea in CS dove è andato a scuola, ed era "così buono!"

Edit: Puoi vedere una discussione correlata con Alan Kay su https://www.quora.com/What-is-a-good-advanced-OOP-course-that-is-equivalent-to-CS108-at-Stanford/answer/Alan-Kay-11/comment/24193488

Ha postato una risposta correlata alla tua domanda su Alan Kay's answer to As a beginner, what are the best ways to approach Computer Science? Ho pensato che ci fosse molto "oro" in esso.