Visualizzazione post con etichetta polimorfismi. Mostra tutti i post
Visualizzazione post con etichetta polimorfismi. Mostra tutti i post

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

domenica 13 gennaio 2008

A 9 anni codavo con il C64.

Una gustosa segnalazione di StackTrace riguarda un ottimo post scritto da tale Daniel Tenner circa le qualità che dovrebbe possedere un buon programmatore e che dovrebbero essere analizzate da chi vuole assumerlo.

Le caratteristiche fondamentali che Daniel indica sono

  1. passione, ovvio requisito per essere perito in qualunque professione
  2. autodidattica e amore per l'apprendimento, tipico di una certa mentalità geek che evidentemente è positiva nel campo informatico
  3. intelligenza acuta, e mi sembra palese che nessun programmatore abilissimo risulti essere uno stupido in tutti gli altri campi
  4. esperienza nascosta, ovvero una quantità di piccoli progetti personali portati avanti nel tempo libero in pieno stile hacker
  5. conoscenza degli ultimi ritrovati tecnologici, in maniera così aggiornata da far trasparire l'entusiasmo con cui ci si aggiorna
Traspare immediatamente il concetto che il programmatore è più un artista che un operaio, un fanatico dedito al suo lavoro con passione e competenza, in cui riesce a riversare la creatività necessaria per eccellere.

Personalmente ho letto con piacere il post originale, ritrovando parecchi miei atteggiamenti nella descrizione dell'autore.

Forse sono sulla strada giusta...

sabato 29 dicembre 2007

StackTrace: geek in salsa italica

Nel panorama geek italiano, spesso avaro di eccellenza o addirittura di normalissima competenza, da qualche giorno riluce una nuova figura: si tratta di StackTrace, nuovo "aperiodico di resistenza informatica".
Nato dall'idea di Antonio Cangiano e portato avanti da un folto team, si propone come l'italica alternativa ai grandi blog internazionali in cui i migliori professionisti IT discettano dell'ultimo framework Python o dell'ortogonalità degli operatori dell'ultimo linguaggio.

In particolare, è bello vedere che l'originalità dei contributi è unito ad uno standard qualitativo parecchio elevato: sono davvero tanti gli articoli che si leggono con piacere, specialmente se si è appassionati di programmazione, di ingegneria informatica o semplicemente un po' smanettoni, ma con criterio. E il tutto è condito da una consistente dose di ironia, come rivelano i piccoli episodi a fumetti che compaiono tra gli articoli, nella migliore tradizione di xkcd.

Quindi, cosa state aspettando? Aggiungetelo subito ai vostri feed!

domenica 7 ottobre 2007

Le faremo sapere.

Riesci a capire che alla fine 5 anni di ingegneria informatica sono appena sufficienti per trovare un buon lavoro e farlo bene non appena leggi "Le 5 domande essenziali da colloquio telefonico" di Steve Yegge, che adesso lavora per Google.

In poche parole, preparatevi ad avere le idee chiare su:

  1. coding: è meglio conoscere diversi linguaggi in maniera sufficiente da scrivere un semplice programma con I/O su file e algoritmi ricorsivi;
  2. Object-Oriented design: mi raccomando, non confondete polimorfismo ed ereditarietà;
  3. scripting e espressioni regolari: e qui rimpiangerete di non sapere il Perl;
  4. strutture dati: tabelle has, alberi e grafi con notazione della complessità;
  5. bits e bytes: operazioni logiche, overflow, tipi fondamentali.
Come potete vedere, c'è da studiare un bel po' se volete essere assunti in una grossa compagnia come Amazon, IBM o Google... e poi non dite che non vi avevano avvertiti!

sabato 1 settembre 2007

Carrambate inglesi

Come avevo scritto tempo fa, ho passato una domenica piacevole a Cambridge ma al mio ritorno ho avuto la spiacevole sorpresa di non ritrovare le foto che avevo fatto nella mia macchina fotografica digitale.

Ovviamente sorge il disappunto, ma s'era detto che era un segno del destino.

Ma in realtà c'è chi è più forte del destino, evidentemente: un suo consiglio azzeccato mi manda su questa pagina e in pochi secondi riesco a tirare fuori dalla mia schedina di memoria non solo le foto di Cambridge di 3 settimane fa, ma anche molte altre cancellate da diversi mesi....


Ovviamente questo non significa che non ci tornerò.







Ma è comunque un segno, nel suo piccolo.

giovedì 30 agosto 2007

Technicalia

Finalmente qualcuno si è deciso ad aprire un blog, che di sicuro sarà pieno di chicche e di amenità divertenti...


technicalia, stay tuned!

domenica 26 agosto 2007

Ah, il progresso.

Department of Computer Science.

Dialogo geek

Studente A: "Io uso ancora Vi per programmare, e mi trovo benissimo."

Prof: "Ma come!? Questa è la sconfitta dell'ingegneria del software!!"

Studente B: "No, questa è la vittoria dell'ingegneria del software di 30 anni fa..."

giovedì 12 luglio 2007

ICVSS: considerazioni finali

Mi è dispiaciuto davvero tanto dover abbandonare anzitempo la Summer School, ma purtroppo la vita universitaria prevede anche dei fastidiosissimi esami che devono essere studiati, preparati e poi fatti..

Il ricordo di questi giorni è sicuramente molto positivo, sia per la nuova gente che ho conosciuto sia per le fantastiche lezioni e gli importantissimi relatori che ho potuto ascoltare.

Un ambiente così internazionale a due passi da casa è davvero un'esperienza che consiglio a tutti voi: io spero davvero di continuare a far parte di questo gruppo, è una strada difficile ma potenzialmente ricca di soddisfazioni.

E poi, ho scoperto una cosa stranissima: a Oxford e Cambridge usano esclusivamente Windows Vista, e Visual Studio....brrrr.

domenica 1 luglio 2007

Velocizziamo il Pitone

Disclaimer: questo post ha un contenuto un po' tecnico, ma racconta una gradevole scoperta che mi ha aiutato non poco con il mio lavoro. Se volete leggere tutto quanto, sappiatelo...


Come di certo molti di voi non sanno, programmare in Python è davvero molto bello ed appagante, ma purtroppo le performance in esecuzione sono davvero, davvero infime.

D'altra parte, è pur sempre un linguaggio interpretato: però è ricchissimo di librerie di calcolo numerico e algoritmiche, troppo semplici da usare per non farlo...

Ecco: con Psyco potete aumentare da 2 a 100 volte la velocità di esecuzione del vostro codice Python.

L'ho appena provato e devo dire che ne vale la pena. Un ringraziamento va ad Andrea che me l'ha suggerito, sebbene avrei preferito l'avesse fatto prima...

E adesso, chi torna più al C++??

sabato 16 giugno 2007

Hardware wishlist

E dire che m'hanno comprato 4 bellissimi Core 2 Duo.

Ma non va ancora bene.

La prossima volta, voglio un Itanium 2.

O almeno, uno Xeon...

Certo, il prezzo sale: ma la soddisfazione aumenta di più.

martedì 1 maggio 2007

Dilemma operativo

Acquistando a Natale il mio nuovo portatile HP mi è stato inviato anche l'aggiornamento gratuito con licenza a Windows Vista, che è arrivato in questa settimana nella mia buca delle lettere.

Ma il 19 aprile scorso, è uscita la nuovissima Ubuntu 7.04 Feisty Fawn, di cui praticamente tutta la Rete parla come della vera e valida alternativa Linux al mondo Microsoft.

Ordunque, capite bene che si tratta di un bel dilemma: cosa installare?

E in particolare, visto che Ubuntu verrà quasi sicuramente installata, devo affiancarla con il nuovo astro nascente della famiglia Microsoft, oppure rimango con il vecchio e solido (?) Windows XP??


Foto: Andrew Mason

E c'è da dire che osservando questo blog, sembra che il confronto non regga neppure.

Me la devo pensare.

[Aggiornamento (02-05-2007 ore 01:13): queste righe le scrivo dalla mia Feisty Fawn a 64 bit nuova fiammante, che sul mio portatile oltre ad essere velocissima è anche molto, molto glamour. Eheh.]

sabato 14 aprile 2007

Non scholae sed vitae discimus

Sembra che gli stipendi per i professionisti informatici negli USA abbiano subito negli ultimi anni un notevole aumento, arrivando alla media di 31,80 dollari l'ora.


Foto: jtyerse

Ma in questa media in cui ci sono stuoli di tester e semplici programmatori, ci sono anche valori di punta come
  • sviluppatore .NET (53,40 $/h)
  • sviluppatore Java (57,27 $/h)
  • amministratore di database (59,80 $/h)
  • project manager (60,73 $/h)
  • consulente tecnico (83,72 $/h)

E' bello sapere che nel mondo c'è qualcuno disposto a pagarti tanto.

E' più difficile incontrarlo.