Python è un linguaggio simpatico, potente, utile e tutto quello che volete. Ok, fin qui mi trovate perfettamente d'accordo.
Quello che non capisco è il perché ci sia così tanta gente che lo vede come il "linguaggio scorciatoia" per fare chissà quale cosa incredibile che solo lui al mondo sa fare.
Mi spiego meglio, non ce l'ho con Python, anzi; ce l'ho con quelle persone che si definiscono programmatori solo perché sanno fare un ciclo for e poco più (e nemmeno poi così tanto bene a dirla tutta), fenomeno dilagante soprattutto tra i più giovani.
Vorrei fare un po' di chiarezza visto che ormai sembra che Python sia la cosa più bella mai inventata dall'uomo dopo la ruota.
1 - Imparare Python NON è facile
Bene, prendete qualsiasi corso su youtube o dove volete, la prima cosa che vi dicono nel video introduttivo (che di solito si chiama "Perché imparare Python" o cose del genere) è sempre la stessa: imparate Python perché è facile.
Capisco che vogliate attrarre più gente possibile facendo credere che praticamente anche mia nonna possa creare GTA, ma dico, è possibile scegliere un linguaggio perché è facile? Ma che senso ha?
In informatica non esistono scorciatoie, il 90% del tempo lo si passa a commettere errori. E' così, è naturale, ci vuole pazienza, costanza, motivazione. Non sarete mai dei bravi programmatori se non passate prima da innumerevoli fallimenti, c'è poco da fare.
Un gradino alla volta ragazzi, per masterare un linguaggio ci vogliono anni, le cose vanno digerite e praticate. Seminate poco ogni giorno e diffidate da "Impara Python in 20 minuti", "Python corso completo in un'ora".
Anni ragazzi, anni. Punto. Se volete farlo bene.
Prendetevi un buon libro, approfonditelo il più possibile, poi altri libri sempre più avanzati. E poi esercizi, esercizi.
Poi un momento, definiamo "facile". Sì, è più facile di altri linguagi, per carità, è pur sempre il linguaggio di livello più alto, ma questo non vuol dire che in tre giorni lo impari. O meglio, se lo impari in tre giorni lo impari male, malissimo. Ti potrei mettere in difficoltà anche su un ciclo while in pratica.
Poi al massimo impari il vanilla. Quando si inizia a parlare di OOP, concorrenza, compilazione in C, profiling, gestione della RAM e compagnia bella vediamo poi se è facile. Ci puoi passare una vita a migliorare.
Ogni 3 x 2 mi ritrovo gente che sta "programmando" roba difficilissima senza nemmeno sapere i tipi di dati. E' impossibile ragazzi, è come voler costruire un grattacielo con i mattoncini della Lego. Se però per voi è più importante vedere subito qualcosa di concreto fate pure, ma a mio avviso non ha senso.
2 - Con Python ci fai tutto, forse troppo
Sì ci puoi fare praticamnete qualsiasi cosa, ma ciò non significa che ci puoi fare qualsiasi cosa bene. Inoltre con praticamente qualsiasi linguaggio generalizzato procedurale puoi fare qualsiasi cosa, non è che Python abbia qualcosa in più. La realtà è che Python è la prima scelta (diciamo) per alcuni campi come data science o AI, ma per fare molte altre cose sono molto meglio altri linguaggi.
3 - Non dovresti scegliere Python come primo linguaggio
print("Hello World!") ... ok, carino, ma poi? Python, tra i linguaggi di alto livello e quello più in alto. Astrae a livello incredibile. Può essere un bene se devi fare qualcosa e hai poco tempo ma è anche vero che rimani completamente all'oscuro di come ragiona il computer.
Personalmente consiglierei di investire qualche mesetto ad imparare il C, la gestione della memoria è troppo utile da sapere se si vuole diventare dei bravi programmatori. Anche sporcarsi le mani con algoritmica non sarebbe male.
4 - Informatico > programmatore > smanettone
Una cosa deve essere estremamente chiara: programmare != scrivere codice.
Pensi davvero che programmare significhi conoscere la sintassi di un linguaggio? Magari. Magari amico mio fosse così. Scrivere il codice non è che la punta dell'iceberg di quel processo che per il 90% richiede la comprensione del problema, l'individuazione del modo migliore per risolverlo, la progetttazione, la scelta del linguaggio più adatto. E poi, l'ottimizzazione, la messa in sicurezza, la documentazione, ...
5 - Anche Python, come tutti i linguaggi, ha degli svantaggi
- E' lento, è un linguaggio interpretato, è lento di brutto fidati. Va bene per robetta da nulla ma per roba grossa è un problema. Sì è vero, ci sono metodi di ottimizzazione ma... E' LENTO.
- Richiede molto testing e ci possono essere errori insidiosi.
- Non riesce a distinguere tra dichiarazione e utilizzo di una variabile.
- Non permette di maneggiare facilmente la memoria.
- L'OOP a mio avviso pecca un po' rispetto ad altri linguaggi.
Bene ragazzi, questa è la mia visione. Voi invece cosa ne pensate?
Quello che non capisco è il perché ci sia così tanta gente che lo vede come il "linguaggio scorciatoia" per fare chissà quale cosa incredibile che solo lui al mondo sa fare.
Mi spiego meglio, non ce l'ho con Python, anzi; ce l'ho con quelle persone che si definiscono programmatori solo perché sanno fare un ciclo for e poco più (e nemmeno poi così tanto bene a dirla tutta), fenomeno dilagante soprattutto tra i più giovani.
Vorrei fare un po' di chiarezza visto che ormai sembra che Python sia la cosa più bella mai inventata dall'uomo dopo la ruota.
1 - Imparare Python NON è facile
Bene, prendete qualsiasi corso su youtube o dove volete, la prima cosa che vi dicono nel video introduttivo (che di solito si chiama "Perché imparare Python" o cose del genere) è sempre la stessa: imparate Python perché è facile.
Capisco che vogliate attrarre più gente possibile facendo credere che praticamente anche mia nonna possa creare GTA, ma dico, è possibile scegliere un linguaggio perché è facile? Ma che senso ha?
In informatica non esistono scorciatoie, il 90% del tempo lo si passa a commettere errori. E' così, è naturale, ci vuole pazienza, costanza, motivazione. Non sarete mai dei bravi programmatori se non passate prima da innumerevoli fallimenti, c'è poco da fare.
Un gradino alla volta ragazzi, per masterare un linguaggio ci vogliono anni, le cose vanno digerite e praticate. Seminate poco ogni giorno e diffidate da "Impara Python in 20 minuti", "Python corso completo in un'ora".
Anni ragazzi, anni. Punto. Se volete farlo bene.
Prendetevi un buon libro, approfonditelo il più possibile, poi altri libri sempre più avanzati. E poi esercizi, esercizi.
Poi un momento, definiamo "facile". Sì, è più facile di altri linguagi, per carità, è pur sempre il linguaggio di livello più alto, ma questo non vuol dire che in tre giorni lo impari. O meglio, se lo impari in tre giorni lo impari male, malissimo. Ti potrei mettere in difficoltà anche su un ciclo while in pratica.
Poi al massimo impari il vanilla. Quando si inizia a parlare di OOP, concorrenza, compilazione in C, profiling, gestione della RAM e compagnia bella vediamo poi se è facile. Ci puoi passare una vita a migliorare.
Ogni 3 x 2 mi ritrovo gente che sta "programmando" roba difficilissima senza nemmeno sapere i tipi di dati. E' impossibile ragazzi, è come voler costruire un grattacielo con i mattoncini della Lego. Se però per voi è più importante vedere subito qualcosa di concreto fate pure, ma a mio avviso non ha senso.
2 - Con Python ci fai tutto, forse troppo
Sì ci puoi fare praticamnete qualsiasi cosa, ma ciò non significa che ci puoi fare qualsiasi cosa bene. Inoltre con praticamente qualsiasi linguaggio generalizzato procedurale puoi fare qualsiasi cosa, non è che Python abbia qualcosa in più. La realtà è che Python è la prima scelta (diciamo) per alcuni campi come data science o AI, ma per fare molte altre cose sono molto meglio altri linguaggi.
3 - Non dovresti scegliere Python come primo linguaggio
print("Hello World!") ... ok, carino, ma poi? Python, tra i linguaggi di alto livello e quello più in alto. Astrae a livello incredibile. Può essere un bene se devi fare qualcosa e hai poco tempo ma è anche vero che rimani completamente all'oscuro di come ragiona il computer.
Personalmente consiglierei di investire qualche mesetto ad imparare il C, la gestione della memoria è troppo utile da sapere se si vuole diventare dei bravi programmatori. Anche sporcarsi le mani con algoritmica non sarebbe male.
4 - Informatico > programmatore > smanettone
Una cosa deve essere estremamente chiara: programmare != scrivere codice.
Pensi davvero che programmare significhi conoscere la sintassi di un linguaggio? Magari. Magari amico mio fosse così. Scrivere il codice non è che la punta dell'iceberg di quel processo che per il 90% richiede la comprensione del problema, l'individuazione del modo migliore per risolverlo, la progetttazione, la scelta del linguaggio più adatto. E poi, l'ottimizzazione, la messa in sicurezza, la documentazione, ...
5 - Anche Python, come tutti i linguaggi, ha degli svantaggi
- E' lento, è un linguaggio interpretato, è lento di brutto fidati. Va bene per robetta da nulla ma per roba grossa è un problema. Sì è vero, ci sono metodi di ottimizzazione ma... E' LENTO.
- Richiede molto testing e ci possono essere errori insidiosi.
- Non riesce a distinguere tra dichiarazione e utilizzo di una variabile.
- Non permette di maneggiare facilmente la memoria.
- L'OOP a mio avviso pecca un po' rispetto ad altri linguaggi.
Bene ragazzi, questa è la mia visione. Voi invece cosa ne pensate?