Ecco un interessante post di Stevey sulle tipiche domande a cui un giovane e speranzoso informatico deve saper rispondere in un eventuale colloquio di lavoro in un'azienda simil-Google.
Dopo un'iniziale predica sulla possibilità che il colloquio vada male e su come riuscire a convivere con la frustazione in maniera più indolore possibile, mi ha piuttosto colpito il fatto che in un'azienda così orientata al mercato e alle innovazioni ciò che conta per lo più non sono sofisticate conoscenze delle nuovissime tecnologie quanto invece una solidissima preparazione sugli elementi base dell'informatica: algoritmi e strutture dati.
Già sul bellissimo portale StackTrace.it si era aperta una notevole discussione sul fatto che i futuri informatici sembrano mancare delle nozioni di base di matematica e informatica, mentre sembrano solamente concentrati sulla conoscenza del maggior numero di nuove tecnologie e linguaggi possibili.
Study a data-structures and algorithms book. Why? Because it is the most likely to help you beef up on problem identification. Many interviewers are happy when you understand the broad class of question they're asking without explanation. For instance, if they ask you about coloring U.S. states in different colors, you get major bonus points if you recognize it as a graph-coloring problem, even if you don't actually remember exactly how graph-coloring works.
And if you do remember how it works, then you can probably whip through the answer pretty quickly. So your best bet, interview-prep wise, is to practice the art of recognizing that certain problem classes are best solved with certain algorithms and data structures.
A parer mio, si tratta di un punto piuttosto delicato: è innegabile che
una solida preparazione di base, specialmente su fondamenti quali matematica discreta, algoritmi, concorrenza, sistemi operativi, sistemi distribuiti e reti,
sia insostituibile; difatti raramente uno smanettone piuttosto impegnato a imparare l'ennesimo nuovo linguaggio ma che in realtà è privo di queste basi potrà mai recuperare le conoscenze mancanti.
D'altra parte è altrettanto vero che
nessuna solida formazione teorica può mai rendere un informatico completo senza una certa attitudine di base alla costante ricerca della novità, delle nuove tecnologie, ovvero, in una parola, senza la passione che magari spinge ad imparare ad usare
ViM o l'ennesimo linguaggio di scripting.
Però la seconda situazione potrebbe rivelarsi migliore, raramente chi non ha avuto una solida preparazione di base riesce poi a recuperare terreno... e questo vuole essere un gentile ammonimento da parte di chi, ormai prossimo alla fine del percorso universitario, avrebbe preferito fare più corsi di matematica e informatica di base...!