giovedì 13 marzo 2008

Le faremo sapere.

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...!

4 commenti:

Almostviola ha detto...

mamma mia...sei come la Celentano, che ti piace troppo: dalla danza classica come base solida si può passare a far ogni tipo di danza, ma è difficilissimo fare l'inverso..
Se finirai a fare il prof universitario i tuoi studenti non avranno vita facile!

ahaha :))))

Melina2811 ha detto...

Complimenti un bellissimo blog. Ciao da Maria

lupino3 ha detto...

Eh sì, ci manca proprio un corso su algoritmi e strutture dati in cui ci facciano spolpare per bene il Cormen!

Ed anche un corso su ViM, che forse sarebbe altrettanto utile, considerando come riesca ad incrementare esponenzialmente la produttività di noi computer scientists (no, non mi va di definirmi programmatore). :)

E ti dirò che, di fronte alle scelte ambigue ed incerte della vita, a volte mi piacerebbe proprio avere a disposizione almeno un simbolo di look-ahead (non c'entra niente col post ma mi è venuto in mente e volevo scriverlo) ;)

Bye,

maelstrom ha detto...

Non sai quanto hai ragione, a volte sarebbe bello vedere cosa succederebbe dopo una nostra scelta... specialmente adesso che l'uni sta finendo.. :-(