Phyton : I Pro E I Contro

Stato
Discussione chiusa ad ulteriori risposte.

Blast20

Nuovo Utente
21
1
Saaalve :D

Come da titolo capirete che sono interessato ad imparare il Phyton.
Essendo che vorrei imparare il mio primo linguaggio di programmazione vorrei scegliere qualcosa di non troppo difficile e che mi frutti.
Ho sentito, o meglio ho letto molte informazioni riguardanti questo linguaggio, ma non viene detto in modo esplicito l'opportunità che da...

Ora vorrei appellarmi a voi, è utile impararlo? Sopratutto come PRIMO linguaggio?
Oppure dovrei imparare il ruby?

Ah e se mi allegaste qualche guida o libro :D
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
Utile? Si certo, è un linguaggio "vivo" usato in molti contesti soprattutto avanzati (machine learning). Non è richiesto tanto quanto Java o C++ (in Italia, mentre all'estero è molto più diffuso) ma comunque più di Ruby.
Come primo linguaggio? è una possibilità, è molto leggibile e ad alto livello, ma è debolmente tipato e l'orientamento ad oggetti è piuttosto basilare. Va bene per imparare gli algoritmi, non molto per sviluppare programmi complessi.
 

owatch

Nuovo Utente
35
5
Ciao, secondo me per iniziare a programmare come linguaggio potresti partire dal c, ottimo per iniziare. E poi proseguire verso linguaggi di più alto livello come phyton o spostarti alla programmazione ad oggetti come con il c++ o il java, anche se usando linguaggi di alto livello impareresti meglio gli algoritmi che poi applicherai in generale, infine bisogna anche considerare lo scopo del linguaggio.
Io ti consiglio per mia esperienza di partire dal c, ti da più libertà e una maggiore comprensione di ciò che fai, come per esempio nella gestione della memoria, inoltre per il futuro esso è molto richiesto.

Manule online:
http://blacklight.gotdns.org/guidac.pdf
Risorse varie:
http://www.maffucci.it/2011/09/21/risorse-web-per-imparare-a-programmare-in-c/

per rispondere alla prima domanda, phyton è un linguaggio di programmazione ad alto livello, orientato ad oggetti spesso usato per scripting e applicazioni distribuite.
Guida:
http://www.html.it/guide/guida-python/
 

Blast20

Nuovo Utente
21
1
Grazie per le risposte :D
Dunque io ho la base di C, anche se sicuramente l'avrò dimenticata...
Altri pareri?
Sapevo comunque che il C è paragonato comunque un linguaggio ad altri livelli, dunque da imparare più in avanti, o mi sbaglio?

Accetto link anche di altri manuali :)
 

owatch

Nuovo Utente
35
5
In realtà il c è relativamente di basso livello, mentre il phyton di alto

-i linguaggi di basso livello sono quelli legati ai dispositivi hardware
-i linguaggi di alto livello sono quelli nati per gestire strutture dati astratte e teoriche permettendo al programmatore di concentrarsi solo sugli aspetti algoritmici senza gestire fisicamente i dispositivi

il linguaggio C possiede le caratteristiche di entrambi i livelli infatti nasce con le seguenticaretteristiche
-essere un linguaggio per scrivere procedure complesse ed un codice decisamente ottimizzato
- ed essere un linguaggio per affrontare in modo efficace problematiche molto diverse
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
In generale C e C++ offrono un approccio più a basso livello e ti permettono di lavorare con puntatori e con la memoria. Questo permette lo sviluppo di software e algoritmi più efficienti ma aumenta a dismisura la facilità con cui si introducono bug (per lo più memory leak e segmentation fault) e la memoria allocata esplicitamente, va anche esplicitamente deallocata. In linguaggi come Java e Python invece la memoria è gestita dall'interprete. Java non è poi tanto più lento del C/C++; la maggiore produttività e la minore predisposizione ai bug, rende Java preferibile ai canonici C/C++ in molti casi. In generale si cerca di limitare l'uso di C/C++ ai casi in cui è strettamente necessario.

C e C++ sono linguaggi che vengono usati in software "critici" o comunque importanti, per cui se il tuo obiettivo è quello di trovare un primo lavoro nel contesto della programmazione, non contare troppo sul C o C++ da autodidatta in quanto le aziende che li richiedono vogliono anche competenze piuttosto solide ed esperienza pregressa (provata). Python e Java permettono di essere "vendibili" più velocemente nel mercato.

C è stato per molto tempo il linguaggio d'elezione nel contesto didattico, ora molto meno. C++ invece è un linguaggio molto più completo e complesso di C, ma è molto difficile da padroneggiare. Il 90% di quelli che scrivono "ottima conoscenza di C++" nel CV non sanno di cosa parlano o sono in malafede.

Per avere dei riscontri numerici sull'utilizzo dei linguaggi, suggerisco di dare un occhio a Tiobe. In particolare dai grafici si evidenzia uno scenario nel quale esistono molti linguaggi con grande diffusione. Java predomina, C e C++ sono subito dietro ma con trend negativo costante negli ultimi anni. Python è al quarto posto e penso che crescerà in futuro per via della diffusione delle librerie di apprendimento automatico (TensorFlow, Theano, Caffe...).

Volendo mettere in mezzo Ruby, direi che comunque Python è più spendibile per cui andrei con quest'ultimo.
Guide e tutorial si trovano sul sito ufficiale: https://wiki.python.org/moin/BeginnersGuide/NonProgrammers in inglese come è lo standard nel contesto informatico.
 
Ultima modifica:

Blast20

Nuovo Utente
21
1
Capisco, sapevo di java, secondo voi è un buon primo linguaggio? Possibile imparare da esso i primi concetti?
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
Java è un ottimo linguaggio per imparare il paradigma ad oggetti, a livello accademico è spesso usato come primo linguaggio a ingegneria e secondo a informatica pura (dopo il C).
C, Python e Java sono tutti linguaggi utilizzabili per approcciarsi alla programmazione, ognuno con i suoi pro e contro.
C: gestione della memoria, puntatori, teoria sull'architettura degli elaboratori... più facile commettere errori e imparare pratiche errate.
Python: permette di focalizzarsi sugli algoritmi, immediato ed espressivo... debolmente tipato (può creare confusione nei programmi più complessi se si adotta uno stile poco chiaro)
Java: orientato agli oggetti, difficile commettere errori che passano la fase di compilazione, robusto e fortemente tipato... è necessario investire un po' di tempo nella teoria dei linguaggi a oggetti.

Attualmente un programmatore "completo" dovrebbe conoscere a un livello almeno medio tutti e tre questi linguaggi. In altre parole, puoi partire da ognuno di questi, ma dovresti saper mettere le mani su tutti. In ordine di "facilità" e produttività direi che Python > Java > C, ma non imporrei un ordine preciso per impararli.
Se hai delle basi di C, riprendile in mano e ripassale ma non perderci troppo tempo secondo me... Poi decidi se provare l'ebbrezza di un linguaggio ad alto livello come Python o buttarti sull OOP con Java.
 

Blast20

Nuovo Utente
21
1
Ok Ok

Mi preparo con il C, grazie alla guida che mi avete passato :D
Solamente se sapreste indicarmi un compilatore funzionante per il C, anche a pagamento se serve!
Grazie per tutto e chiudo subito dopo aver ricevuto(Se arriverà :D) il link per il compilatore
 

Xpovos

Utente Attivo
294
4
CPU
Intel Core i5-3470
Scheda Madre
MSI B75A-G41
HDD
Western Digital Caviar Blue 1TB
RAM
Corsair Vengeance Blue Low Profile 8GB (2x4GB)
GPU
Sapphire 7950 Dual-X with boost core
Monitor
Asus ML239H LED 23"
PSU
XFX ProSeries 550W Core Edition
Case
Cooler Master K380
OS
Windows 7 Ultimate 64 bit

Hobet

Utente Attivo
609
222
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
HDD
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
GPU
GTX 1070ti MSI
Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Net
Fastweb 200/30
OS
PucyBuntu
I pro di python sono che è molto facile i contro invece sono che è troppo facile.
 

Hobet

Utente Attivo
609
222
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
HDD
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
GPU
GTX 1070ti MSI
Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Net
Fastweb 200/30
OS
PucyBuntu
In che senso è troppo facile? XD

Non voglio dilungarmi troppo nel discorso per mancanza di tempo, ma ti basta vedere la sintassi di un semplice codice python e c.
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili