Inizio con Python

Stato
Discussione chiusa ad ulteriori risposte.

Ubermensch

Utente Silver
2 Marzo 2009
9
0
0
56
Ciao a tutti ragazzi!!!
Sono un appassionato di informatica autodidatta come molti di voi. Volendo avvicinarmi all'hacking ho provato a studiare il C (prima conoscevo solo il bash scripting) e ho letto e comprato questo libro...ma è stata durissima tanto che alla fine del libro mi pareva di non sapere nulla di nulla....
Ho pensato dunque di imparare Python che grazie alla sua semplicità mi ha dato immediate seppur semplici soddisfazioni solo che ho comprato e letto questo libro attraverso il quale ho imparato le basi del linguaggio.

Mi potete suggerire qualche libro magari in pdf in italiano che assomigli al seguito del libro che ho letto ovvero "Programming Python" ovvero qualcosa che sia più pratico più ricco di esempi e che vada oltre gli elementi base del linguaggio???
Grazie in anticipo qualunque consigli sarà ben accetto.
 
Se mastichi un pò di inglese io ti consiglierei di leggere qualcosina della documentazione ufficiale, ma il consiglio migliore che posso darti è di non abbandonare il C i testi della Apogeo, sono molto validi(io ho imparato da li) e ti assicuro che conoscere un linguaggio come il C o ancora meglio il C++, ti permetterà di studiare qualsiasi linguaggio in maniera spedita. Anyway, hai provato già a cercare qualcosina con google? http://diveintopython.org/ Questo cercando ebook python, a dire il vero è la prima volta che lo vedo, e devo dire che sicuramente ha un livello abbastanza elevato, in basso fornisce anche la versione in italiano...buon apprendimento^^
 
Innanzi tutto ti ringrazio per la pronta risposta. Dunque da quanto inizio a capire su questo forum il C per la programmazione e per l'hacking o meglio per degli appassionati come noi è una tappa obbligata, inizialmente mi ha mesos un po paura ma credo che approfondito python come da te consigliato passerò di nuovo al C .
Per quanto riguarda Python, si ho fatto delle richerche con google e sui siti ufficiali ma non trovo mai quelo che cerco... a me serve approfondire l'aspetto dello sviluppo applicativo di python...
 
come detto pure io ti consiglio di non abbandonare il C,
ma io ritengo il python ottimo,
calcola che io mi compro libri da 100 pagine da 10€ e mi bastano,
te hai seguito uno da 60 ti avra imparato anche socket ecc...
quindi prova con divepython oppure cercando sulla documentazione ufficiale ( anche tradotta)
 
Credo voglia trovare qualcosa che spieghi come fare questa o quella cosa. In tal caso apri la documentazione ufficiale, ormai l'hanno tradotta anche in italiano e quindi non hai scure per non leggerla ^^
 
opocaj ha detto:
quindi non hai scue per non leggerla ^^
[ot]
mi è morto il cane sotto 5 tir e 39 autobus, la atvo è venuta a casa mia è mi ha sequestrato il computer... ^^[/ot]
comunque opo ha ragione,
grazie al aiuto di 1000 iaia di volontari ormai è quasi tutta tradotta
 
@ kr1pn0$
Allora proverò a spulciare la doc ufficiale. Comunque in quel libro di socket nemmeno l'ombra.....
PS. Allora dimmi quali sono questi libricini da 10 euro che me li compro subito....:asd:

@ murdercode
Per il C++ mi sembra presto dato che ancora non conosco il C

@ meh
Per sviluppo applicativo intendo il passo successivo all'apprendimento ddele basi. La pratica in parole povere....
 
Ubermensch ha detto:
@ murdercode
Per il C++ mi sembra presto dato che ancora non conosco il C

@ meh
Per sviluppo applicativo intendo il passo successivo all'apprendimento ddele basi. La pratica in parole povere....

Il C++ ed il C non c'entrano niente tra loro, a parte che se scritto correttamente un programma in C puo' essere compilato in C++.

Per quanto riguarda la pratica nno c'e' niente che te la puo' insegnare, se hai studiato il linguaggio ora pensa solo a qualche programma da scrivere e scrivilo, magari usa gli esercizi di programmazone nel forum :)
 
meh. ha detto:
Il C++ ed il C non c'entrano niente tra loro, a parte che se scritto correttamente un programma in C puo' essere compilato in C++.
Perdonami l'inesperienza....
Io ho sempre pensato che un corretto percorso formativo prevedesse prima il C e poi il C++ che pensavo fosse basato sul C....

Per quanto concerne python comincio a organizzare qualcosa....
:asd:
 
Ubermensch ha detto:
Perdonami l'inesperienza....
Io ho sempre pensato che un corretto percorso formativo prevedesse prima il C e poi il C++ che pensavo fosse basato sul C....
Mah, non esiste nessun corretto percorso formativo secondo meh, alla fine io vedo il C ed il C++ come due linguaggi completamente differenti, perche' l'approcio alle cose comunque e' diverso, in C++ puoi scrivere del codice strutturato come in C, usando le funzioni che sono nell libc, pero' e' come non usare il C++.

Per farla breve, il C ti puo' servire se vai a basso livello, se no il C++ e' piu' che sufficiente, poi se inizi a scrivere a in C++ e poi non usi le capacita' del linguaggio tanto vale scrivere in C.

Il fatto e' che quello che ti insegna il C alla fine ti serve a capire come fanno gli altri linguaggi ad implementare certe cose (parlo di linguaggi interpretati ovviamente, i cui interpreti solitamente sono scritti in C) il che puo' aiutare.

Diciamo che se per primo linguaggio studi il C poi hai piu' gusto nello sfruttare le feature dei linguaggi ad altissimo livello.

Ah comunque a me il Python non piace :)
 
Comunque io il C conto di approfondirlo ...anche perchè ho già quel libro dell'apogeo...
 
A mio parere ti conviene iniziare con un linguaggio compilato "serio", io stesso ho cominciato con il C++ (non con il C+coutinvecediprintf, OOP e STL) e POI ho appronfondito il C, i suoi puntatori, la sua memoria dinamica e la sua programmazione "basso livello". Come dice meh al quale do completamente ragione, sono due linguaggi differenti, ma molte guide al C++ sono in realtà guide al C.

Se hai il libro dell'apogeo (che a mio parere è il migliore sopratutto per iniziare, esplicativo e, relativamente al linguaggio, semplice), vai di C e per adesso lascia perdere i linguaggi interpretati, se non capisci qualcosa sbattici la testa ancora e ancora, verrai largamente ricompensato.

O.T: il Python è un linguaggio inutile, proprio non serve a niente. Un linguaggio interpretato per fare che? Algoritmicamente è lento, applicativi desktop? In un linguaggio interpretato? Bah. Interfacce di rete? Il Perl in questo è imbattibile. Scripting di sistema? C'è il bash, e persino il Javascript che utlimamente viene portato sempre di più fuori dal browser per le sue caratteristiche adatte allo scopo. Dici, "intanto lo imparo, che non fa mai male sapere un linguaggio di programmazione in più"? La sua sintassi è completamente diversa da qualsiasi altra cosa (oh come odio, quelle identazioni obbligatorie), e passare dal python, che ha dei costrutti strambi e ad altissimissimo livello, al C, è come imparare il C da capo a parte per il fatto che sai cos'è una variabile (manco più di tanto, visto che è strong tiping lato implementazione, ma la tipizzazione è praticamente assente dato che le variabili sono puntatori a oggetto).
Prendi per esempio quest'ultima frase, un programmatore C (o meglio, C++) sa cos'è un puntatore a oggetto, un programmatore python no, ti dice niente tutto ciò? Anche se tu volessi (nonostante questo papiro) imparare il python, se conosci bene il C entrerai nell'ottica meglio di un programmatore che usa python da anni, ma che conosce solo quello.

Spero di averti convinto abbastanza =)
 
jam ha detto:
O.T: il Python è un linguaggio inutile, proprio non serve a niente. Un linguaggio interpretato per fare che? Algoritmicamente è lento, applicativi desktop? In un linguaggio interpretato? Bah. Interfacce di rete? Il Perl in questo è imbattibile. Scripting di sistema? C'è il bash, e persino il Javascript che utlimamente viene portato sempre di più fuori dal browser per le sue caratteristiche adatte allo scopo. Dici, "intanto lo imparo, che non fa mai male sapere un linguaggio di programmazione in più"? La sua sintassi è completamente diversa da qualsiasi altra cosa (oh come odio, quelle identazioni obbligatorie), e passare dal python, che ha dei costrutti strambi e ad altissimissimo livello, al C, è come imparare il C da capo a parte per il fatto che sai cos'è una variabile (manco più di tanto, visto che è strong tiping lato implementazione, ma la tipizzazione è praticamente assente dato che le variabili sono puntatori a oggetto).
Prendi per esempio quest'ultima frase, un programmatore C (o meglio, C++) sa cos'è un puntatore a oggetto, un programmatore python no, ti dice niente tutto ciò? Anche se tu volessi (nonostante questo papiro) imparare il python, se conosci bene il C entrerai nell'ottica meglio di un programmatore che usa python da anni, ma che conosce solo quello.
Non e' neanche tanto OT, si parla di iniziare col Python :p

Solo su una cosa ti do' torto, non e' per niente lento visto che e' quasi tutto scritto in C (parlo dei moduli).

Il contro e' che i moduli sono troppo a basso livello per un linguaggio cosi' ad alto livello, al posto di ripensare le librerie le hanno semplicemente portate com'erano in C, il che fa schifo.
 
Hai ragione, rispetto agli altri linguaggi di scripting forse ha prestazioni superiori per queste sue caratteristiche (da qualche parte ho letto che rivaleggia anche col java), ma comunque sia per la sua stessa natura di linguaggio di scripting non è utilizzabile per software matematici... al limite si può ottimizzare con un compilatore JIT, ammesso che per lui ne esistano (scusami se non sono informatissimo :S)
 
jam ha detto:
Hai ragione, rispetto agli altri linguaggi di scripting forse ha prestazioni superiori per queste sue caratteristiche (da qualche parte ho letto che rivaleggia anche col java), ma comunque sia per la sua stessa natura di linguaggio di scripting non è utilizzabile per software matematici... al limite si può ottimizzare con un compilatore JIT, ammesso che per lui ne esistano (scusami se non sono informatissimo :S)
Il Python vince nettamente contro il Java :)

E da quel che so gia' c'e' il JIT, ma magari sbaglio, neanche io sono informatissimo sul Python, un tempo lo usavo spesso, ora preferisco usare il mio bell'interprete javascript :)

Comunque ti do' torto anche sul fatto di software matematici, vedi qui ;)
 
@jam: ti faccio presente che io per creare un programma con i socket ci metterei:
  • 200 righe con l'asm
  • 50 righe con il C
  • 4 righe con ruby
noti differenza?
 
meh. ha detto:
Comunque ti do' torto anche sul fatto di software matematici, vedi qui ;)

Vabbè, ma il concetto chiave qui è: a sto punto, lo faccio in C. :lol: a parte gli scherzi, non ero a conoscenza di questo modulo, buono a sapersi, ma non cambia granchè la mia opinione.

kr1pn0$ ha detto:
@jam: ti faccio presente che io per creare un programma con i socket ci metterei:
  • 200 righe con l'asm
  • 50 righe con il C
  • 4 righe con ruby
noti differenza?

Si, sei pigro?
 
kr1pn0$ ha detto:
@jam: ti faccio presente che io per creare un programma con i socket ci metterei:
  • 200 righe con l'asm
  • 50 righe con il C
  • 4 righe con ruby
noti differenza?
Ed io da sh richiamo il tuo programma che usa i socket con una riga, quindi sh ti insegna di piu' ed e' piu figo?

Qui si parla di didattica, non di produzione, e non sempre e' il numero di righe o la velocita' con cui le scrivi e' la priorita'.

jam ha detto:
meh. ha detto:
Comunque ti do' torto anche sul fatto di software matematici, vedi qui ;)

Vabbè, ma il concetto chiave qui è: a sto punto, lo faccio in C. :lol: a parte gli scherzi, non ero a conoscenza di questo modulo, buono a sapersi, ma non cambia granchè la mia opinione.
Ma vedi, il fulcro e' che un linguaggio di scripting serve a semplificare o migliorare lo sviluppo in certi ambiti, se hai bisogno di velocita' ti scrivi il modulo in C semplificando l'accesso con un linguaggio di scripting. Il risultato e' avere un API semplice da usare ed avere la velocita' in runtime che ti serve.

Poi anche a me il Python fa schifo come linguaggio, ora che ho lulzjs posso scrivermi il modulo in C ed usarlo in javascript, il che e' molto fico, anche se tracemonkey e' molto veloce :p
 
Si ora ho le idee più chiare.....:asd::asd:
Vabbè python ormai l'ho fatto bene o male...continuerò ad usarlo...però mi butto sul C....
 
Risposta esatta, se hai domande sai dove domandare ;)

[ot]
meh. ha detto:
Poi anche a me il Python fa schifo come linguaggio, ora che ho lulzjs posso scrivermi il modulo in C ed usarlo in javascript, il che e' molto fico, anche se tracemonkey e' molto veloce :p
Ma infatti (l'ho scritto anche sulla mia pagina di hacknowledge) io sto aspettando un po' di documentazione per lulzjs, vista la nota della tua ultima relase. Ho visto anche altri progetti, ma mi esalta il fatto di poter utilizzare quello di una persona italiana e vicina alle community dove giro anch'io, da molti meno problemi se poi volessi anche decidere di joinare e contribuire =) e poi tutti usano SVN, e tu git, che anche se è una stronzata mi fa sentire più a mio agio :lol:
[/ot]
 
Ultima cosa ricapitolando:
1- Ho iniziato con il bash scripting
2- Ho imparicchiato Python e letto un manuale di C
3- Ora mi butto ad imparare il C :
-userò quel libro dell'apogeo.
4- E dopo...?? (Anche se so che questo dopo non è vicinissimo)
:asd:
 
Ah, tutt'altro che vicinissimo stai tranquillo... troppe ce ne sono di librerie C dopo quel libro, e come ti ho detto (o no?) con il C ci fai tutto, quindi ti puoi mettere a scrivere qualcosa di serio, o passare al C++ e imparare la OOP a dovere, di certo quello che non ti mancherà sono le cose da fare =)

Se vuoi un mio parere, non leggere tutte le pippe mentali dei post precedenti, e non farti troppe pippe mentali tu. Quelli di cui hai bisogno ora è sloggare e aprire quel manuale.
 
Stato
Discussione chiusa ad ulteriori risposte.