|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#161 |
|
Senior Member
Iscritto dal: Nov 2006
Città: Jesi
Messaggi: 974
|
Ciao a tutti. Tempo fa avevo pensato di aprire anch'io un post con una domanda simile, del tipo: " da dove inizio x imparare a programmare?"
Mi scuso con 'The knowledge' se mi intrometto, ma visto che questo post mi interessava, volevo approfittarne. Io di programmazione sono moolto niubbo, so usare solo il labview (nn so se conoscete). Siccome per necessità devo utilizare dei programmi che hanno il codice in C o C++, volevo imparare questo linguaggio. Nonostante il manuale e la volontà, ho capito che cominciare così, senza un corso base è impossibile (almeno per me, chiaro). Non so perchè ma mi fido delle parole dei pythoniani, nonostante il java sembra essere più utilizzato e diffuso (web, programmi win, applicazioni per cellulari). Dite che cominciare con questo per imparare la logica e poi passare ad un altro linguaggio imparandosi la nuova sintassi sia cosa fattibile? grazie
__________________
PC Upgrade:CM Centurion532 /P5K-SE/Q6600@3GHz /Corsair 2x2gb+2x1Gb DDR2 800/QuadroFX3700 /Seagate 750gb 7200rpm/ WD20EZRX /Liberty500 /LG 24MB65PD-B Foto= Il mio corredo Vendo= Materiale Concluso con: Cuto82,rtype,causeperse,crazy rider89, VecchioEric, BloodFlowers, Scandalf |
|
|
|
|
|
#162 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Tratto da
How To Become A Hacker, rev. 1.15, October 03, 2002 di Eric Steven Raymond 1. Impara a programmare. Questa, ovviamente, è la capacità fondamentale dell'hacker. Se non conosci alcun linguaggio di programmazione, ti suggerisco di iniziare con Python. È progettato in maniera chiara, ben documentato e abbastanza adatto ai principianti. Malgrado sia un buon linguaggio con il quale cominciare, non è proprio un giocattolo; è molto potente e flessibile e adatto anche a grandi progetti. Ho scritto una più dettagliata recensione su Python. Dei buoni manuali sono disponibili sul sito web di Python. Anche Java è un buon linguaggio per imparare a programmare. È più difficile di Python, ma produce un codice più veloce rispetto a Python. Lo ritengo un eccellente secondo linguaggio. Ma devi essere conscio che non raggiungerai i livelli di abilità di un hacker o più semplicemente di un programmatore se conosci solamente uno o due linguaggi - hai bisogno di imparare a pensare ai problemi legati alla programmazione in maniera più generale, indipendentemente dal linguaggio specifico. Per essere un vero hacker, hai bisogno di arrivare al punto di poter apprendere un nuovo linguaggio in pochi giorni semplicemente confrontando il manuale con quanto già sai. Questo significa che dovrai imparare parecchi linguaggi differenti tra loro. Se vuoi dedicarti seriamente alla programmazione, dovrai imparare il C, il linguaggio cardine di Unix. Il C++ è molto vicino al C; se già ne conosci uno, non ti sarà difficile imparare l'altro. Nessuno di questi due linguaggi, comunque, è adatto per iniziare ad imparare. E, al momento, quanto più riesci a evitare di programmare in C tanto più sarai produttivo. Il C è veramente efficiente, e utilizza al meglio le risorse della macchina. Sfortunatamente, C fornisce questa efficienza in cambio di una notevole mole di lavoro manuale per la gestione delle risorse (quali la memoria) ad un basso livello. Tutta la programmazione di basso livello è complessa e soggetta a bug, e ti richiederà un'enorme quantità di tempo per il debugging. Con le odierne macchine, così potenti, questo in genere rappresenta un cattivo compromesso - è più conveniente utilizzare un linguaggio che impiega in maniera meno efficiente il tempo della macchina ma che impiega più efficacemente il tuo tempo. Ad esempio, Python. Altri linguaggi di particolare importanza per gli hacker sono Perl e LISP. Perl è degno di essere appreso per ragioni pratiche; è largamente utilizzato per costruire pagine web dinamiche e per l'amministrazione di sistema; così, anche se non dovrai mai scrivere in Perl, dovresti imparare almeno a leggerlo. Molte persone usano Perl nella maniera in cui io suggerisco di usare Python, per evitare di programmare in C quei lavori che non richiedono l'efficienza della macchina che C fornisce. Avrai bisogno di essere in grado di capire il loro codice. LISP è da imparare per un altro motivo: la profonda e illuminante esperienza che proverai quando finalmente riuscirai a farlo tuo. Questa esperienza ti renderà un programmatore migliore per il resto dei tuoi giorni, anche se non lo utilizzerai poi molto. (Puoi procurarti qualche esperienza iniziale con LISP in maniera abbastanza semplice realizzando e modificando le modalità di editing per l'editor di testo Emacs.) È meglio, addirittura, imparare tutti questi cinque linguaggi (Python, Java, C/C++, Perl e LISP). Oltre che essere i linguaggi più importanti per l'hacking, essi rappresentano approcci molto differenti alla programmazione, e ognuno ti educherà in maniera preziosa. Non posso fornire qui delle istruzioni complete su come imparare a programmare - è un compito complesso. Ma posso dirti che libri e corsi vari non te lo insegnano (molti, forse la maggior parte dei migliori hacker è autodidatta). Puoi imparare le caratteristiche dei linguaggi - frammenti di conoscenza - dai libri, ma l'approccio mentale che trasforma quella conoscenza in reali capacità può essere appreso solo mediante la pratica e l'apprendistato. Ciò che devi fare è (a) leggere codice e (b) scrivere codice. Imparare a programmare è come imparare a scrivere bene nel linguaggio nativo. Il miglior modo per farlo è leggere del materiale scritto dai maestri della forma, scrivere qualcosa per conto proprio, leggere molto di più, scrivere qualcosa in più, leggere molto di più, scrivere qualcosa in più... e ripetere il tutto finché la tua scrittura inizia a sviluppare la forza e l'economia che vedi nei tuoi modelli. Una volta, trovare del buon codice da leggere era un'impresa ardua, poiché esistevano ben pochi programmi disponibili anche sotto forma di codice sorgente, a disposizione degli hacker per la lettura e la manipolazione. Tutto ciò è cambiato radicalmente; software open-source, strumenti per la programmazione e sistemi operativi (tutti costruiti da hacker) sono oggi largamente disponibili. Questo mi porta al prossimo argomento...
__________________
http://www.tevigroup.it/ |
|
|
|
|
|
#163 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Intanto acquisisci le basi della programmazione con un linguaggio semplice (ma NON sempliciotto) come Python, e poi passare a un linguaggio più complicato sarà una questione di mero esercizio. Per complicarsi la vita c'è sempre tempo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#164 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
'mazza.. sti pythoniani sono peggio dei testimoni di geova (senza offesa ovviamente)
sapete cosa vi dico? chi vuole iniziare dovrebbe iniziare con il C e se si arrende per qualche segfault vuol dire che la programmazione non fa per lui piccola nota: io quando guardo un programma python vedo una massa informe di righe di codice, mentre se guardo un programma java già a occhio riesco a individuare alcune caratteristiche. forse non l'avete capito, ma scrivere meno righe di codice significa dare meno informazione per forza di cose |
|
|
|
|
|
#165 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
No, significa dare informazioni IN FORMA DIVERSA.
Per il resto, se suggerisci il C tanto vale passare direttamente al linguaggio macchina: non ti arrenderai mica di fronte alle tabelle degli opcode, vero?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#166 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
aimè! la sottile linea di confine tra elettronica e informatica
|
|
|
|
|
|
#167 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
tra l'altro le informazioni saranno pure in forma diversa e fantastica, ma sono meno indubbiamente
|
|
|
|
|
|
#168 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Me lo chiedo anch'io da molto tempo... Ripeto il concetto espresso nel messaggio precedente, forse non è filtrato correttamente: secondo me un corso di Reti I NON dovrebbe trattare minimamente lo sviluppo Web, in un piano di studi *serio* di una laurea triennale dovrebbe esserci spazio per l'analisi dello stack ISO/OSI (Reti I) E per l'approccio web-oriented alla programmazione in 2 insegnamenti *diversi*. Gli argomenti *possono* essere approfonditi da chi decide di seguire la specializzazione con corsi specifici: Reti II e Programmazione per il Web II (o denominazioni analoghe). Ovviamente la colpa non è degli studenti (le vere vittime del 3+2) ma di chi crea percorsi accademici assolutamente lacunosi e/o cervellotici. [/OT] |
|
|
|
|
|
|
#169 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Un po' allibisco. Forse qui non si conosce esattamente Java. I due esempi che ho fatto non sono stati presi a caso. Entrambi usano librerie che in Java sono standard e disponibili per nove sistemi operativi diversi (tutti quelli per i quali esiste una piattaforma Java). Non ho visto l'esempio fatto con tk, lo dò per scontato perchè mi fido, quindi diciamo 1 a zero. Per Java.
C'è di più. Il secondo esempio è un caso di programmazione concorrente in Java. Mi premeva farlo per render chiaro che programmare in Java significa scontrarsi con la programmazione concorrente: Java è un linguaggio concorrente orientato agli oggetti. E' importate tenerlo presente, siamo nell'era del calcolo parallelo. Due a niente. Il codice mostra anche l'unità fondamentale della programmazione Java: la classe. Avere un'unità fondamentale per un linguaggio significa essere noioso, ripetitivo, verbose e certo: perchè in Java io so che le librerie usate nei due esempi hanno la stessa forma dei programmi che ho scritto. E so anche che la forma delle librerie usate per il corrispettivo Python è diversa dalla forma del programma Python che le usa. Tre a nulla. Java è un linguaggio molto omogeneo (certo non quanto avrebbe potuto) e ripetitivo. Sono due cose che aiutano l'apprendimento. E questa non è aria tirata dal camino: teoria dell'anafora a dei pattern, psicologia cognitiva, scienza dell'apprendimento umano. Facciamo quattro? Ps.: la sintesi è un processo distruttivo, per la banale considerazione che se dire con meno significasse dire la stessa cosa allora la differenza tra il più e il meno non vorrebbe dire nulla e dunque il più coiciderebbe col meno.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#170 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Qui è concettualmente la stessa cosa: la soluzione viene data da entrambi i sorgenti, ma in forma diversa. Infatti l'informazione trasportata è la stessa: quella che permette di costruire la soluzione al problema. Né più né meno.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#171 | ||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
Quote:
ora nei sorgenti java che ha postato PGI-Bis non vedo niente di ridondante, ogni singola riga di codice significa qualcosa Quote:
inoltre non si può fare il confronto utilizzando librerie esterne al framework, altrimenti ti posso fare tutti i programmi che vuoi importando una libreria fatta da me e chiamando una singola funzione all'interno del programma infine PGI-Bis ha linkato la documentazione per capire come funziona il suo programma.. voi no |
||
|
|
|
|
|
#172 | ||||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
I confronti si fanno, quindi, sulle due soluzioni proposte. Quote:
Poi stai tirando fuori addirittura la programmazione concorrente a uno che non sa nemmeno com'è fatta una variabile: mi sembra UN TANTINO OT, non trovi? Quote:
Quote:
Ecco un pezzo della libreria Tk che riporta una parte del codice della classe "principale": Codice:
class Tk(Misc, Wm):
"""Toplevel widget of Tk which represents mostly the main window
of an appliation. It has an associated Tcl interpreter."""
_w = '.'
def __init__(self, screenName=None, baseName=None, className='Tk',
useTk=1, sync=0, use=None):
"""Return a new Toplevel widget on screen SCREENNAME. A new Tcl interpreter will
be created. BASENAME will be used for the identification of the profile file (see
readprofile).
It is constructed from sys.argv[0] without extensions if None is given. CLASSNAME
is the name of the widget class."""
self.master = None
self.children = {}
self._tkloaded = 0
# to avoid recursions in the getattr code in case of failure, we
# ensure that self.tk is always _something_.
self.tk = None
if baseName is None:
import sys, os
baseName = os.path.basename(sys.argv[0])
baseName, ext = os.path.splitext(baseName)
if ext not in ('.py', '.pyc', '.pyo'):
baseName = baseName + ext
interactive = 0
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
if useTk:
self._loadtk()
self.readprofile(baseName, className)
Questo: Codice:
class Control(Window):
"""
This is the base class for a control or 'widget'.
A control is generally a small window which processes user input
and/or displays one or more item of data.
"""
thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
__repr__ = _swig_repr
def __init__(self, *args, **kwargs):
"""
__init__(self, Window parent, int id=-1, Point pos=DefaultPosition,
Size size=DefaultSize, long style=0, Validator validator=DefaultValidator,
String name=ControlNameStr) -> Control
Create a Control. Normally you should only call this from a subclass'
__init__ as a plain old wx.Control is not very useful.
"""
_core_.Control_swiginit(self,_core_.new_Control(*args, **kwargs))
self._setOORInfo(self)
Infine questo: Codice:
class Image:
format = None
format_description = None
def __init__(self):
self.im = None
self.mode = ""
self.size = (0, 0)
self.palette = None
self.info = {}
self.category = NORMAL
self.readonly = 0
Tutto codice Python e... che si usa come Python comanda. Quote:
Quote:
Facciamo 4 a zero per Python.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||||||
|
|
|
|
|
#173 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Un argomento che, quindi, andrebbe trattato DOPO che aver provveduto a imparare le basi della programmazione, e come si impara a usare una libreria standard, lo stesso si può fare con una che non lo è. Infine l'uso delle librerie standard NON era un requisito del problema. Quote:
Da buon informatico io preferisco attenermi al testo del problema, senza uscire fuori dal seminato.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||
|
|
|
|
|
#174 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Più che guardo codice Python e più mi sembra che abbia una leggibilità, non bassa, ma addirittura nulla
|
|
|
|
|
|
#175 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Certo, certo, perché questo:
Codice:
<E, T extends Document & Comparable<? super String> & Map<? extends Comparable<Number>, ? extends Comparable<E>>>
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#176 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
mumble fai riferimento ai requisiti del problema, ma mi deve essere sfuggito dove questo è stato definito formalmente
ripeto, se parliamo dell'uso di librerie esterne faccio tutto chiamando una sola funziona ps. la docomentazione e il framework sono dei punti di forza di java e la differenza la fanno soprattutto quando si deve imparare Ultima modifica di k0nt3 : 01-10-2007 alle 20:42. |
|
|
|
|
|
#177 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
|
|
|
|
|
|
#178 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
"Al momento, però, devi imparare, e IMHO non c'è scelta migliore di Python. Se non ne sei ancora convinto possiamo provare con degli esempi di problemi e vedere in che modo vengono risolti in Python, Java, o qualunque altro linguaggio: giudicherai tu, leggendo il codice, quale linguaggio ti ispira di più per iniziare. " Come vedi non c'è NESSUN riferimento a librerie, tanto meno standard: si parlava di esempi e di relativo CODICE da postare. Soprattutto si parlava di INIZIARE a programmare (che poi, lo ricordo, è il tema del thread), e l'uso delle librerie è certamente un argomento più avanzato. Quote:
Perché non lo chiedi a Guido? Vedrai cosa ti risponde. ![]() Quote:
P.S. Vedo che sul pezzo di codice Java che ho postato non hai avuto nulla da dire: il suo obiettivo è quello di essere leggibile, vero?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
|
|
|
|
|
#179 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#180 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7263
|
@cdimauro
in tutti i linguaggi si possono scrivere cose incomprensibili.. ad esempio ricordo un esempio di codice python che avevi postato tu stesso in un altro thread confrontandoli non so cosa è meglio
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:20.




















