Vi dico un segreto: pare che i programmatori non sappiano programmare.
Questo è pressappoco quello che emerge da uno degli ultimi articoli apparsi su coding horrors.
Un articolo molto dibattuto che ho visto riapparire su molti dei feed che seguo quotidinamanete; per esempio su quello di DElyMith.
Successivamente alla pubblicazione di questa scottante verità, il suddetto blog è stato intasato da così tanti commenti che si è visto costretto a chiudere la sezione apposita, collezionando 190 repliche via technorati in meno di 36 ore. La cosa è stata talmente dirompente da scatenare le ire di molti che hanno voluto dimostrare il loro valore mediante frammenti di codice veramente interessanti.
Riassumendo, si sostiene che moltissimi programmatori, sedicenti esperti, se messi di fronte a problemi molto semplici, non siano in grado di trovare gli algoritmi idonei e di conseguenza non siano in grado di produrre il codice necessario allo svolgimento della soluzione.
Vediamo l’esempio principale:
Scrivere un programma che stampi i numeri da 1 a 100. Al posto dei multipli di tre stampare “Fizz” invece del numero e al posto dei multipli di cinque stampare “Buzz”. Per i numeri multipli sia di tre che di cinque stampare “FizzBuzz”.
Molti programatori sarebbero capaci di scrivere questo programma in un paio di minuti. Qui viene il bello: La maggioranza dei laureati in informatica non è capace. Inoltre molto programmatori esperti impiegano più di dieci-quindici minuti per scrivere una soluzione.
Nel mio piccolo, mi sono messo alla prova, raccogliendo la sfida e provando a realizzare il codice incriminato.
Ho chiuso tutte le finestre sul mio destop, ho aperto solo un terminale bash e con VI ho cercato di scrivere il codice incriminato in java.
Ho cronometrato la mia prova dal momento in cui ho aperto VI al momento in cui il mio programma ha stampato correttamente la soluzione al problema.
Ho impiegato esattamente 5 muniti e 9 secondi per scrivere il codice adatto.
Io ho scelto java, ma qualsiasi liguaggio è adatto al test.
Voi quanto tempo ci mettereste a risolvere il problema?
Leave a Reply