[Python] OT: Imparare un altro linguaggio

enrico franchi enrico.franchi a gmail.com
Mar 3 Maggio 2016 21:32:26 CEST


2016-04-27 12:17 GMT+01:00 Alessandro Re <ale a ale-re.net>:

>
> Sì, intendevo più quello che i puntatori in sé. Anche se, se non
> sbaglio, l'aritmetica dei puntatori manca in Go, e quella la trovo
> divertente in sé :)
>

Si, l'aritmetica dei puntatori manca. E meno male... molto comoda se
proprio vuoi lavorare con la memoria a basso livello. Ma preclude un sacco
di cose carine (e oltretutto e' grossissima fonte di bachi).


> > Si alla programmazione funzionale "pura". Lisp lo definirei tutto meno
> che
> > "funzionale puro". Cioe', puoi limitarti ad un sottoinsieme "puro" di
> Lisp,
> [cut]
>
> ahah su questo devo semplicemente farmi da parte: non ho tutta
> l'esperienza che hai tu a riguardo, e mi sono dovuto limitare ai pochi
> linguaggi che ho usato :) Ricordo però che lisp e scheme li ho
> studiati in modo puramente funzionale.


Ma figurati! :) Certo puoi restringerti alle parti funzionali di lisp (o
evitare le parti, molto minori, non funzionali di scheme). Funziona
benissimo per imparare. Il problema e' che ovviamente il codice che si
trova in giro (e che a volte si deve scrivere) deve usare al meglio la
piattaforma. In questo senso, sebbene Lisp sia un linguaggio funzionale, e'
molto ibrido (per moltissimi motivi).

Ahah interessante... E mi sentirei di concordare, se solo non avessi
> il dubbio perenne di non aver capito qual è il modo giusto di usare go
>

Boh, a me viene naturale. Cioe', magari non mi viene giusto. ;)
Diciamo che mi piace quello che viene e mi viene facile scriverlo.


> :) Hai libri consigliati a tal proposito? Donovan & Kernighan?
>

Quello e' un ottimo punto di partenza. Come al solito chiaro, breve,
corretto ed efficace. E quando /Kernighan/ puoi anche accaderti che quello
che scrivi in un libro tu finisce per venire fatto.

Poi ci sono altre opinioni (bellissimo un post recentissimo -- giorni -- di
Cheney sulla gestione degli errori). Ma in generale direi che quello e' il
riferimento.


> >> > Poi oh, vedi te cosa vuoi fartene :) Se devi cercarti un lavoro...
> >> > Andrei su C/C++/Java.
> >
> > Io direi di no. C e' soprattutto embedded. C++ si trova da lavorare ma e'
> > molto specialistico. Java e' un mercato agguerrito. I posti di lavoro
> > interessanti li pigliano la gente *davvero* sveglia o davvero skillata.
> Poi
> > capita sempre che uno vorrebbe fare altro e se lo trova fra le palle
> > comunque: cercare proprio di lavorare in Java e' preposterous.
>
> Su questo non sono del tutto d'accordo. Dipende molto cosa si cerca di
> lavoro, no?


Si, certo. Quello che voglio dire e' che con alcuni linguaggi si puo' fare
la scelta a seguito del mercato che vuoi perseguire. Se vai di C, gran
parte dei lavori che farai saranno in mercato embedded. Se non ti piace (o
scopri che non ti piace), sono cazzi.

Se fai Python hai un po' piu' di margine. Sara' probabilmente web, ma
magari anche automation o desktop o addirittura cose piu' strane.


> Purtroppo non ho davvero una buona idea su quale sia lo
> share per i vari settori dell'informatica (sia in fatturato che numero
> di impiegati), quindi giudico con la mia poca esperienza personale,
> fuori e dentro l'università.
>

Io faccio un discorso un po' diverso. Devi capire cosa vuoi fare, e poi
cercare i lavori. E cerco di tenermi aggiornato su quello che interessa a
me. In questo senso non mi interessa eccessivamente guardare a *quanti*
lavori ci sono in settore che non mi interessa. Non ci vorrei lavorare
comunque.


> Sì, C è embedded, ma OP ha detto che è un ingegnere - non so di che
> tipo - ma così a naso mi sento di dire che embedded è forse una delle
> cose che potrebbero essere più vicine al suo ambito (o comunque
> potrebbe aiutarlo nel caso volesse fare un upgrade (o downgrade...) a
> C++).
>

Vero. E se vuole lavorare in quel mondo e' un'ottima scelta. Questo non lo
sappiamo.


>
> Sì, C++ è specialistico, ma segue un po' le orme del C: credo sia più
> probabile avere accheffare con C++ in ambito ingegneristico che in
> ambito commerciale. Quando ho lavorato con ingegneri (informatici,
> meccanici e aerospaziali) e fisici, usavano quasi tutti C++. Ma,
> forse, ero finito proprio in quel mercato specialistico di cui parli
> :)
>

Mah... C++ salta fuori nei posti piu' impensati. E non e' tutto oro.
Comunque non ho idea di quello che ci hai fatto. Diciamo questo, nelle
realta' "moderne" C++ si usa se e quando serve (anche in modo estremista --
vedi linee guida di Google su C++, guarda quello che bandiscono, e guarda
le motivazioni). Poi ci sono una serie di realta' che lo usano... come
dire, per vari motivi.


> Sì, Java è un mercato-bordello, ma questo significa anche che c'é
> molta richiesta.


Chiaro. Poi c'e' il solito discorso di capire il rapporto fra domanda e
offerta. E ovviamente offerta vuole dire nei campi che ci interessano e con
il profilo che offriamo.

Il fatto che ci sia richiesta, non vuole dire che ci sia richiesta per
qualcuno in determinate condizioni. Non solo: non vuole nemmeno dire che
sia facile discernere i posti dove e' interessante lavorare da quelli dove
non lo e'. Nota: c'e' pieno di posti belli dove si lavora in Java (solo
Java, anche Java, etc...). Ma bisogna saperli individuare.


> Non tutti devono o possono andare in compagnie
> super-fiche e skillate come Amazon (perdonami la punzecchiatura :D)


Ovviamente. Ci sono tante compagnie la fuori.

Ma nota... il mio discorso e' piu' generale. Non tutti possono prendere uno
*specifico* lavoro (non fosse per altro, diverse skill, diversi
interessi... e non solo, e' utile trovare un posto dove la cultura
aziendale e' relativamente allineata alla propria, se no si soffre). Ma
penso che tutti dovrebbero cercare di trovarsi un posto di lavoro per cui
il Lunedi' mattina non e' giorno di funerale. Mica facile. E i periodacci
ci sono comunque. Pero' abbiamo la fortuna di essere pagati per qualcosa di
relativamente vicino a quello che consideriamo un divertimento.

Il lavoro non e' divertimento, certo. Il mio employer mi paga per fare un
lavoro, non per divertirmi. Ma ovviamente se mi diverto e' meglio per tutti
(incluso il mio employer).

e
> ho sentito, in non pochi casi, di persone laureate (e nemmeno in
> informatica) che venivano assunte per programmare solo perché avevano
> fatto un corso base di Java.


Certo. Specialmente matematici e fisici. Per molte persone e' un'opzione
interessante. Specialmente per i matematici, se va male la carriera
universitaria e non si cerca di entrare nel mondo dei modelli (tipo
finanziari), o ci si reinventa come programmatori o si cerca di finire
nella scuola secondaria (lungo, precariato, insicuro). I fisici hanno set
di opzioni simili, in un certo senso. Piu' qualcosina (ma potrei avere
dimenticato qualcosa per i matematici).

Ma siamo sicuri di volere andare a lavorare, potendo scegliere, in cui la
barra di ingresso e' un esame di Java? Vogliamo mantenere il codice di un
altro tizio che ha fatto solo un esame di Java? E il nostro capo chi sara'?
Quello che ne ha fatti 2?

Niente di male nel farlo: e' un lavoro onesto e va rispettato. Ma *potendo*
scegliere, forse si puo' fare di meglio. Tutti possono e devono aspirare al
miglior lavoro che possono trovare.

Anche nella scelta del lavoro: se sono il tizio che ha fatto un esame di
Java, quanto potere ho per negoziare condizioni migliori, un salario, etc
etc etc? Non perche' non faccio del mio meglio, ma perche' sono piu'
rimpiazzabile di qualcuno che abbia uno skill set piu' ricco e peculiare.

Credo che da un punto di vista
> commerciale o di CV sia meglio Java se quello di cui si ha bisogno è
> un lavoro (non necessariamente figo o appagante... Cosa che farebbe
> comunque piacere a molti).
>

Boh... io non so nemmeno se ho Java nel CV (credo che da qualche parte
appaia) e mi chiamano lo stesso. Ma ti diro' di piu'... mi chiamano pure
per Ruby (ultima volta toccato nel 2007, credo di essere su un catalogo di
gente che faceva ror da qualche parte -- mi hanno contattato da li tipo
l'anno scorso o quello prima, manco me lo ricordavo --, e *forse* Ruby
compare una volta nel mio CV. E mi chiamano per Erlang. Anche li... compare
di striscio e ho un progetto su Github, manco finito. E non e' che sia
celebre nella comunita' Erlang: ho scritto esattamente 0 post su ng e forum
e potrei avere il tag Erlang in una manciata di post sul mio blog... e non
li trovi cercando Erlang.

Insomma... quando c'e' fame di gente skillata in determinate tecnologie, si
raschia il fondo. Di gente che grokka Erlang molto piu' di me ce ne e' a
pacchi. Tipo... quasi chiunque abbia fatto Erlang per davvero. Era solo un
esempio.

Si, si trova in Java. Ma non e' che si trova solo in Java.

E se ci confrontiamo ad altre categorie professionali, lavoro se ne trova
(anche in Italia). *Possiamo* curare la nostra carriera. Facciamolo.



-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160503/c2ac8055/attachment-0001.html>


Maggiori informazioni sulla lista Python