View Full Version : Incominciare a programmare
Joseph Joestar
13-05-2008, 19:41
Salve a tutti, è il mio primo post in questa sezione. Come si capisce dal titolo sono un completo novizio, ma sono molto interessato all'argomento. Dopo anni passati a smanettare sull'hardware e sui videogiochi in generale ho deciso di sfruttare il pc in maniera più intelligente e utile. E' da un pò che mi guardo in giro per trovare in internet delle guide online sulle basi della programmazione o su quale linguaggio orientarmi, ma ho fatto solo una gran confusione. Vorrei impegnarmi seriamente e non mi piacerebbe buttare del tempo (ho 27 anni). Sarei interessato alla piattaforma .Net, ma non sò se come prima esperienza andrebbe bene essendo a digiuno delle fondamenta. Da dove dovrei cominciare per ottenere una buona base? Ho pensato anche di frequentare dei corsi, ma non sapendo cosa scegliere ho rimandato (in più nella mia città molte di queste scuole di informatica sembrano più delle macchine succhia soldi che altro).
Ringrazio anticipatamente tutti per le risposte e per la pazienza di aiutare un niubbone come me;) !
marko.fatto
13-05-2008, 19:45
Se ti interessa .net vai tranquillo su C# :O
Joseph Joestar
13-05-2008, 19:51
Se ti interessa .net vai tranquillo su C# :O
Ma prima dovrei almeno conoscere il C, oppure posso incominciare direttamente con C#?
variabilepippo
13-05-2008, 20:09
Vai diretto con il C#, se impari il C dovrai disimparare tante cose prima di poter passare al C#...
wizard_at
13-05-2008, 20:13
ciao,
da quello che ho capito le tue basi nell'ambito della programmazioni sono basse. il mio consiglio e' di partire con un linguaggio ad oggetti.
quindi escludi Pascal, Basic o simili.
io ho "studiato" C++ con un manuale e ho imparato in breve tempo(non ero proprio un novizio della programmazione ma da Pascal a C++ c'e' un abisso). e' un linguaggio ancora usato che se un po vecchiotto. il pregio del C++ e' che molti altri linguaggi usano la stessa sintassi e nonostante abbiano marcate differenze alcuni concetti chiave non cambiano.
Ora io sto studiando Java, linguaggio che oggi sta avendo ed ha avuto una diffusione enorme, e lo trovo semplice grazie alle mie conoscente in C++.
Concludendo e riassumendo: io ti consiglierei C++ non tanto per il fatto che e' il migliore come prestazioni o che oggi e' il piu' completo ma per il fatto che e' moderno(=contiene tutte le tecnice usate ancora oggi), la sintassi e' quela che utilizzano C# e Java, e' veloce da imparare(io in un mese il manuale lo sapevo a memoria) e ti puo' dare un idea completa di cosa sia e come si programmi.
PS: ho 17anni, per molti saro' un nulla nella programmazione, programmo da 8 e ti consiglio vivamente di non buttare soldi in nessun corso. Se vuoi spendere bene i tuoi solti ti consiglio di andare in una libreria ben fornita e acquistare un manuale cartaceo, studiarlo e poi magari ampliare le conoscente con dari reperibili sulla rete.
ciao
Joseph Joestar
13-05-2008, 20:50
Se C++ ha una sinstassi simile a C# (o Java) a questo punto, essendo completamente "bianco", non sarebbe meglio iniziare direttamente da uno dei primi 2?
Non che non abbia voglia di farlo, ma oramai ho già 27 anni e non vorrei perdere altro tempo. Non voglio nemmen bruciare tutte le tappe ovvio, ma preferirei avere un approccio più pragmatico.
^TiGeRShArK^
13-05-2008, 21:18
Se C++ ha una sinstassi simile a C# (o Java) a questo punto, essendo completamente "bianco", non sarebbe meglio iniziare direttamente da uno dei primi 2?
Non che non abbia voglia di farlo, ma oramai ho già 27 anni e non vorrei perdere altro tempo. Non voglio nemmen bruciare tutte le tappe ovvio, ma preferirei avere un approccio più pragmatico.
Lascia stare..Inizia senza alcun dubbio da C# o Java.
Iniziare dal C++ è solo uno sforzo inutile e una perdita di tempo.
E NON lo imparerai sicuramente in un mese.
Piuttosto cerca di concentrarti molto anche sulla programmazione ad oggetti che è la vera cosa importante da imparare.
Il linguaggio si cambia sempre, ma le basi di Object Oriented Programming restano sempre.
cdimauro
13-05-2008, 21:25
Se C++ ha una sinstassi simile a C# (o Java) a questo punto, essendo completamente "bianco", non sarebbe meglio iniziare direttamente da uno dei primi 2?
Non che non abbia voglia di farlo, ma oramai ho già 27 anni e non vorrei perdere altro tempo. Non voglio nemmen bruciare tutte le tappe ovvio, ma preferirei avere un approccio più pragmatico.
Risposta scontata: Python. E' un linguaggio molto semplice, leggibile, con una sintassi facile da imparare, completo e ti permette di concentrarti sulla soluzione anziché sui dettagli, facendoti risparmiare molti mal di testa.
Per imparare a programmare non c'è di meglio.
Ecco qui http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm un'ottima guida, in italiano. ;)
Joseph Joestar
14-05-2008, 00:18
Lascia stare..Inizia senza alcun dubbio da C# o Java.
Iniziare dal C++ è solo uno sforzo inutile e una perdita di tempo.
E NON lo imparerai sicuramente in un mese.
Piuttosto cerca di concentrarti molto anche sulla programmazione ad oggetti che è la vera cosa importante da imparare.
Il linguaggio si cambia sempre, ma le basi di Object Oriented Programming restano sempre.
Ma C# è già object oriented vero? Inoltre che testi mi consigliate sempre per C#? Come ide invece ho visto che Visual Studio 2008 express è gratuito e penso dovrebbe andare bene per imparare le basi.
wizard_at
14-05-2008, 06:02
C# penso sia Object Oriented, come manuali chiedi qui:
http://www.hwupgrade.it/forum/showthread.php?t=801695
sul C# io posso consigliarti di cartaceo: Herbet Schildt " La Guida Completa C#" della McGrawHill. non so come sia la guida ma lui e' un ottimo scrittore di manuali. sono un po...voluminosi ma completi
^TiGeRShArK^
14-05-2008, 08:25
Ma C# è già object oriented vero? Inoltre che testi mi consigliate sempre per C#? Come ide invece ho visto che Visual Studio 2008 express è gratuito e penso dovrebbe andare bene per imparare le basi.
C# oltre ad essere Object Oriented, dalla versione 3.0 supporta anche la programmazione funzionale tramite LINQ.
Come libro io mi sono trovato bene con quello della APress: Pro c# 2008 and the .NET 3.5 platform.
Però non so se va bene per chi è completamente senza basi di programmazione...
Magari questo è meglio usarlo in un secondo tempo :p
marko.fatto
14-05-2008, 13:30
Risposta scontata: Python. E' un linguaggio molto semplice, leggibile, con una sintassi facile da imparare, completo e ti permette di concentrarti sulla soluzione anziché sui dettagli, facendoti risparmiare molti mal di testa.
Per imparare a programmare non c'è di meglio.
Ecco qui http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm un'ottima guida, in italiano. ;)
Perchè non ruby allora!? :Prrr:
cdimauro
14-05-2008, 14:01
Perché Python è più semplice. :)
c# va bene ma secondo me è meglio orientarsi su java o python.
Evita come la peste il c++, servono anni per impararlo a fondo.
marko.fatto
14-05-2008, 14:12
Perché Python è più semplice. :)
:mbe:
cos'avrebbe di più semplice rispetto a ruby?
cdimauro
14-05-2008, 14:31
:mbe:
cos'avrebbe di più semplice rispetto a ruby?
Esempio: non usare il carattere @per le variabili di istanza, e @@ per quelle di classe.
marko.fatto
14-05-2008, 14:35
Esempio: non usare il carattere @per le variabili di istanza, e @@ per quelle di classe.
non so come sia in python ma non l'ho mai trovato così difficile da capire :fagiano:
cdimauro
14-05-2008, 14:42
Dovremmo fare una comparazione fra i due. :D
marko.fatto
14-05-2008, 14:51
Dovremmo fare una comparazione fra i due. :D
volentieri :)
^TiGeRShArK^
14-05-2008, 14:52
Esempio: non usare il carattere @per le variabili di istanza, e @@ per quelle di classe.
perchè invece usare il doppio underscore leading e trailing è meglio? :asd:
__self__
lo trovo semplicemente osceno..
mentre in @index non ci trovo nulla di strano :p
cmq viste le sue esigenze mi sa che è meglio per lui iniziare con il C#.
wizard_at
14-05-2008, 14:58
c# va bene ma secondo me è meglio orientarsi su java o python.
Evita come la peste il c++, servono anni per impararlo a fondo.
impararlo a fondo e' molto difficile ma gia' avere una conoscenza base del c++ e' una ottima cosa. Sapere come funzionano le classi , i template , i puntatori ecc... e' fondamentale. C++ e' complesso ma studiarlo non e' difficile. E' solo questione di pratica.
DioBrando
14-05-2008, 15:11
con un nick del genere non posso non dare il mio consiglio :D
Vai con C# visto che hai scritto di provare interesse per l'ambiente .NET (e fai bene): moltissimi tool che ti semplificano la vita, ottima sezione di e-learning sul sito Microsoft (cerca How do I, dovresti trovare materiale su C#) e anche in rete in generale, c'è qualcosa.
Sul network ed2k ci sono 5-6 tutorial video ben fatti che partono da un'introduzione fino all'esposizione di concetti più avanzati.
A fini didattici mi sento di consigliare anche Java (che è il linguaggio e la piattaforma più richiesta insieme a NET) e Python, casomai volessi prendere in considerazione altre opzioni.
cdimauro
14-05-2008, 15:16
perchè invece usare il doppio underscore leading e trailing è meglio? :asd:
Sono costrutti speciali, eh! :O
__self__
lo trovo semplicemente osceno..
Ehm... self lo puoi scrivere come vuoi. :stordita:
mentre in @index non ci trovo nulla di strano :p
Nemmeno io... per annotazioni et similia. :p Ma non per usare delle variabili. :)
cmq viste le sue esigenze mi sa che è meglio per lui iniziare con il C#.
Se vuole iniziare e gli interessa pure .NET, c'è IronPython. :)
Se vuole iniziare e gli interessa pure .NET, c'è IronPython. :)
IronRuby? :D
marko.fatto
14-05-2008, 15:25
IronRuby? :D
volevo dirlo io.. ma visto che l'hai già detto te..
quoto :sofico:
cdimauro
14-05-2008, 15:54
IronRuby? :D
Python o morte. :O :D
Joseph Joestar
14-05-2008, 16:28
con un nick del genere non posso non dare il mio consiglio :D
Vai con C# visto che hai scritto di provare interesse per l'ambiente .NET (e fai bene): moltissimi tool che ti semplificano la vita, ottima sezione di e-learning sul sito Microsoft (cerca How do I, dovresti trovare materiale su C#) e anche in rete in generale, c'è qualcosa.
Sul network ed2k ci sono 5-6 tutorial video ben fatti che partono da un'introduzione fino all'esposizione di concetti più avanzati.
A fini didattici mi sento di consigliare anche Java (che è il linguaggio e la piattaforma più richiesta insieme a NET) e Python, casomai volessi prendere in considerazione altre opzioni.
Ringrazio te e tutti gli altri (ricambio i complimenti per il nick;) ). Cmq per iniziare mi butterò su C#, per adesso mi basta un linguaggio, studiarne più di uno alla volta sarebbe un casino tremendo. Sono già alla ricerca di testi vari, sia in libreria che online. Ho notato però che in italiano ci sono meno testi su C# rispetto ad altri linguaggi (forse sono io che cerco male). Come mai?
wizard_at
14-05-2008, 17:41
1-cerchi male. di libri ce ne sono una marea.
2-il c# e' un linguaggio recente a differenza di c++
3-su java ci sono molti piu' manuali perche' ha avuto una evoluzione piu' veloce
4-chi cerca trova....:D
DioBrando
14-05-2008, 17:54
IronRuby? :D
IronPython è decisamente più promettente.
Al di là delle prestazioni fatte segnare come VM (questo vale anche per Mono), ci sarà il supporto a Silverlight che da solo vale il "prezzo del biglietto" :)
mone.java
14-05-2008, 17:57
io penso che dovresti puntare su java poiché c'è tantissimo di materiale a riguardo, io stesso ho imparato java da autodidatta (tranne le cose basilari a scuola ma niente di più che dichiarazioni di variabili e istruzioni condizionali), e devo dire che praticamente per ogni quesito che mi sono posto ho trovato quasi sempre una risposta. Il c# non lo conosco, ma so comunque che è un linguaggio molto potente solo che essendo più recente ha meno persone che lo usano e quindi meno manuali a riguardo, dovrebbe anche avere una serie di migliorie rispetto a java ma puoi sempre vedere un confronto diretto tra c# e java su wikipedia (http://it.wikipedia.org/wiki/Linguaggio_C_Sharp)
magari per farti una panoramica più definita...
DioBrando
14-05-2008, 18:00
Ringrazio te e tutti gli altri (ricambio i complimenti per il nick;) ). Cmq per iniziare mi butterò su C#, per adesso mi basta un linguaggio, studiarne più di uno alla volta sarebbe un casino tremendo. Sono già alla ricerca di testi vari, sia in libreria che online. Ho notato però che in italiano ci sono meno testi su C# rispetto ad altri linguaggi (forse sono io che cerco male). Come mai?
Prego :)
Testi è vero ce ne sn tanti. In italiano credo tu possa trovare qualcosa sia su Microsoft Press che McGrawHill.
Per cominciare non disdegnerei affatto il libro della serie Pocket Apogeo proprio su C# (io l'ho utilizzato e mi sn trovato bene anche se venivo da esperienza pregressa con Java).
Trovi poi parecchi tutorial, di cui uno forse anche qui sul forum.
La tua lingua però deve diventare l'inglese per forza; hai una miriade di testi a disposizione, che spaziano dalle introduzioni al linguaggio, a strumenti di sviluppo, tecnologie utilizzate, metodologie di sviluppo, di ottima fattura (la serie Apress di quest'ultimo anno merita da sola la menzione).
impararlo a fondo e' molto difficile ma gia' avere una conoscenza base del c++ e' una ottima cosa. Sapere come funzionano le classi , i template , i puntatori ecc... e' fondamentale. C++ e' complesso ma studiarlo non e' difficile. E' solo questione di pratica.
Guarda, dopo 6-7 anni di pratica ti consiglio di togliere quel "solo" finale :asd:
wizard_at
14-05-2008, 19:02
Guarda, dopo 6-7 anni di pratica ti consiglio di togliere quel "solo" finale :asd:
il solo era per enfatizzare. la programmazione e' un conto studiarla e un conto averla imparata programmando, programmando, vedendo che il programma non funziona e non capisci perche', cristonando contro la macchina, programando programmando....
e' come rimorchiare una o dare consigli su come rimorchiare.
o detto senza paragoni poco consoni.....TRA IL DIRE E IL FARE C'E' IN MEZZO IL MARE:O :O :O
^TiGeRShArK^
14-05-2008, 20:10
io penso che dovresti puntare su java poiché c'è tantissimo di materiale a riguardo, io stesso ho imparato java da autodidatta (tranne le cose basilari a scuola ma niente di più che dichiarazioni di variabili e istruzioni condizionali), e devo dire che praticamente per ogni quesito che mi sono posto ho trovato quasi sempre una risposta. Il c# non lo conosco, ma so comunque che è un linguaggio molto potente solo che essendo più recente ha meno persone che lo usano e quindi meno manuali a riguardo, dovrebbe anche avere una serie di migliorie rispetto a java ma puoi sempre vedere un confronto diretto tra c# e java su wikipedia (http://it.wikipedia.org/wiki/Linguaggio_C_Sharp)
magari per farti una panoramica più definita...
meno manuali il c#? :stordita:
ci sono diversi manuali praticamente per ogni aspetto del C#.
Certo in italiano non ho idea, ma se si vuole programmare si DEVE conoscere l'inglese.
Non ha senso studiare su libri in italiano, tanto + che la documentazione tecnica migliore è solo in english...
Ogni linguaggio ha i suoi scopi, quindi dipende essenzialmente da cosa vuoi fare. Sarò un purista, ma io per il semplice "apprendere" inizierei da un linguaggio di più basso livello, tipo il C... C# e Java secondo me sono un po' troppo di alto livello, un sacco di facilitazioni e cose già pronte, mentre col C ti fai le ossa... Inoltre prima di passare alla programmazione a oggetti, che poi è solo una questione di sintassi se si è già abituati nel modo giusto, io diventerei una roccia nella programmazione procedurale...
variabilepippo
14-05-2008, 20:42
col C ti fai le ossa
Più che farti le ossa perdi tempo imparando cose che andranno disimparate quando si cambierà paradigma, un programmatore deve imparare a risolvere problemi ed un linguaggio low-level ne introduce di superflui per un principiante: gestione manuale della memoria, endianness, uso dei puntatori, ... Tutte cose superate dalle piattaforme di sviluppo mainstream e che distraggono il neo-programmatore dal problema principale da risolvere.
Inoltre prima di passare alla programmazione a oggetti, che poi è solo una questione di sintassi se si è già abituati nel modo giusto, io diventerei una roccia nella programmazione procedurale...
Oggi 21:10
Non è questione di sintassi, è soprattutto questione di approccio (e mentalità).
Come dire: per imparare il tedesco prima devi studiare l'inglese... Si tratta di due paradigmi diversi e la maggior parte delle best practices del C sono delle worst practices dei linguaggi OOP. :cry:
cdimauro
14-05-2008, 21:49
Più che farti le ossa perdi tempo imparando cose che andranno disimparate quando si cambierà paradigma, un programmatore deve imparare a risolvere problemi ed un linguaggio low-level ne introduce di superflui per un principiante: gestione manuale della memoria, endianness, uso dei puntatori, ... Tutte cose superate dalle piattaforme di sviluppo mainstream e che distraggono il neo-programmatore dal problema principale da risolvere.
Non è questione di sintassi, è soprattutto questione di approccio (e mentalità).
Come dire: per imparare il tedesco prima devi studiare l'inglese... Si tratta di due paradigmi diversi e la maggior parte delle best practices del C sono delle worst practices dei linguaggi OOP. :cry:
Quoto in toto.
E poi col C non si fanno le ossa: al più ci si rompe le ossa lavorandoci. :asd:
^TiGeRShArK^
14-05-2008, 22:03
Ogni linguaggio ha i suoi scopi, quindi dipende essenzialmente da cosa vuoi fare. Sarò un purista, ma io per il semplice "apprendere" inizierei da un linguaggio di più basso livello, tipo il C... C# e Java secondo me sono un po' troppo di alto livello, un sacco di facilitazioni e cose già pronte, mentre col C ti fai le ossa... Inoltre prima di passare alla programmazione a oggetti, che poi è solo una questione di sintassi se si è già abituati nel modo giusto, io diventerei una roccia nella programmazione procedurale...
Ottimo consiglio :)
Così spreca una marea di tempo per imparare a programmare nemmeno decentemente in C, quindi deve fare uno sforzo immenso per imparare la programmazione ad oggetti eliminando la forma-mentis che gli ha dato la programmazione procedurale.
E visto che c'è poi si può anche sparare quando deve passare alla programmazione funzionale.
Il linguaggio peggiore per iniziare è proprio il C.
Oddio..
In effetti ci sarebbe anche l'assembly e il linguaggio macchina :asd:
O magari il Ladder :O
:asd:
^TiGeRShArK^
14-05-2008, 22:06
Più che farti le ossa perdi tempo imparando cose che andranno disimparate quando si cambierà paradigma, un programmatore deve imparare a risolvere problemi ed un linguaggio low-level ne introduce di superflui per un principiante: gestione manuale della memoria, endianness, uso dei puntatori, ... Tutte cose superate dalle piattaforme di sviluppo mainstream e che distraggono il neo-programmatore dal problema principale da risolvere.
Non è questione di sintassi, è soprattutto questione di approccio (e mentalità).
Come dire: per imparare il tedesco prima devi studiare l'inglese... Si tratta di due paradigmi diversi e la maggior parte delle best practices del C sono delle worst practices dei linguaggi OOP. :cry:
quoto...
l'esempio però è sbagliato perchè in effetti l'inglese aiuta nell'apprendimento del tedesco :O
Io direi che è come se prima di imparare il giapponese ti metti a studiare il sumero antico :fagiano:
Sono entrambi linguaggi con una scrittura fatta a "segnetti"..
Ma studiare il sumero antico e il giapponese non c'entra assolutamente un cazzo..esattamente come studiare il C e la programazione ad oggetti / funzionale :p
DioBrando
15-05-2008, 11:32
guardate che stiamo cominciando una delle solite cicliche discussioni su C&OOP :stordita:
(ma tanto arriverà un genio che affermerà che è assolutamente possibile e consigliabile dal pdv didattico, me lo sento :asd: )
vedo, prevedo e shvulazz' :O :D
black_sand
15-05-2008, 12:50
Secondo me dovresti cercare di imparare le basi di più linguaggi "diversi" fra loro, in modo da iniziare a capire che linguaggi diversi ti offrono diverse prospettive e modi di pensare.
per es per cominciare sono d'accordissimo sul python, facile e divertente, ti permette di capire la filosofia oo. Inoltre sono disponibili ottime guide gratuite (puoi trovare i link nell'apposito thread in questa sezione).
Una volta che ti sei fatto un'idea dei fondamentali potresti dare un'occhiata ad un linguaggio procedurale (tipo il c, cosi inizi anche a farti un'idea dei puntatori e di come allocare e rilasciare le risorse)
e per finire potresti dare un'occhiata a un metalinguaggio (per es ocaml) che ti fornirà di sicuro un nuovo punto di vista ^_^
banryu79
15-05-2008, 13:30
Secondo me dovresti cercare di imparare le basi di più linguaggi "diversi" fra loro, in modo da iniziare a capire che linguaggi diversi ti offrono diverse prospettive e modi di pensare.
per es per cominciare sono d'accordissimo sul python, facile e divertente, ti permette di capire la filosofia oo. Inoltre sono disponibili ottime guide gratuite (puoi trovare i link nell'apposito thread in questa sezione).
Una volta che ti sei fatto un'idea dei fondamentali potresti dare un'occhiata ad un linguaggio procedurale (tipo il c, cosi inizi anche a farti un'idea dei puntatori e di come allocare e rilasciare le risorse)
e per finire potresti dare un'occhiata a un metalinguaggio (per es ocaml) che ti fornirà di sicuro un nuovo punto di vista ^_^
Ma ha detto di avere 27 anni, secondo me se vuole arrivare a concretizzare qualcosa in un lasso di tempo ragionevole è preferibile che parta concentrandosi su un solo linguaggio, moderno e ben documentato, possibilmente di alto livello, in modo da concentrarsi sull'aspetto "imparo a programmare per implementare la semantica della soluzione al problema da rislvere", piuttosto che gli aspetti di livello più basso.
Non conosco direttamente Phyton, ma da quello che ho letto parrebbe molto interessante; anche C# e Java sono da tenere in considerazione.
Supponendo che possa dedicare all'attivà di apprendimento il tempo neccessario, tenuto conto del fatto che magari lavora/studia e gli altri impegni che in media si hanno, metterei in preventivo almeno 10 - 12 mesi per arrivare a "sentirsi a suo agio" con un singolo linguaggio, il suo eventuale framework e ambiente di sviluppo.
Tenuto conto che oltre agli aspetti generali magari vorrà/avrà bisogno di approfondire qualche aspetto (contesto tecnologico) in particolare, è neccessario rendersi conto che ci vuole del tempo per trovare, leggere, utilizzare e, infine, assorbire, la marea di conoscenze che occorrono per saper implementare con cognizione di causa qualcosa di più di un helloWorld...
Credo che, partendo da zero, dopo 10/12 mesetti (minimo) su un singolo linguaggio, si sia ancora in tempo per spaziare ed esplorare, e a quel punto magari si riesce a farlo anche con più cognizione di causa, imho
wizard_at
15-05-2008, 14:48
10-12 mi sembrano tantini.
un manuale lo leggi in un mese se vai piano. poi e' pratica.
iniziare con un helloworld, passare a un mastermind e poi verso l'infinito e oltre. in un 6mesi se si programma pre un po di tempo alla settimana( un 3 ore) in 6 mesi si gestisce il tutto. poi per approfondire e diventare dei fenomeni ci vorrebbe una vita intera anche usanto Basic.
black_sand
15-05-2008, 15:23
A prescindere dal tempo che ci vuole per raggiungere un buon livello di conoscenza/competenza, secondo me nn è tempo sprecato quello impiegato per capire che diversi linguaggi ti offrono la possibilità di provare approci diversi nei confronti anche dello stesso problema, anzi questo allarga le proprie vedute :)
Una volta che ci si è resi conto delle varie possibilità, si può tranquillamente decidere con cognizione di causa su cosa concentrarsi.
^TiGeRShArK^
15-05-2008, 15:43
10-12 mi sembrano tantini.
un manuale lo leggi in un mese se vai piano. poi e' pratica.
iniziare con un helloworld, passare a un mastermind e poi verso l'infinito e oltre. in un 6mesi se si programma pre un po di tempo alla settimana( un 3 ore) in 6 mesi si gestisce il tutto. poi per approfondire e diventare dei fenomeni ci vorrebbe una vita intera anche usanto Basic.
3 ore la settimana per 6 mesi gestisci tutto partendo da zero? :mbe:
permettimi di dubitare.
^TiGeRShArK^
15-05-2008, 15:44
A prescindere dal tempo che ci vuole per raggiungere un buon livello di conoscenza/competenza, secondo me nn è tempo sprecato quello impiegato per capire che diversi linguaggi ti offrono la possibilità di provare approci diversi nei confronti anche dello stesso problema, anzi questo allarga le proprie vedute :)
Una volta che ci si è resi conto delle varie possibilità, si può tranquillamente decidere con cognizione di causa su cosa concentrarsi.
Ocaml e C non gli servono ad una mazza.
Anche python è borderline perchè in ambito lavorativo in italia è richiesto molto poco.
L'ideale per lui è C# o Java se non vuole perdere tempo.
black_sand
15-05-2008, 15:51
Ocaml e C non gli servono ad una mazza.
Anche python è borderline perchè in ambito lavorativo in italia è richiesto molto poco.
L'ideale per lui è C# o Java se non vuole perdere tempo.
Dipende tutto da quello che vuole fare.
Imo non basta sbobinarsi un manuale di c# o java per qualche mese per andare a lavorare in ambito informatico... se la scelta è cmq provare a cercare un lavoro come programmatore ti dò ragione.
Se invece è per imparare per cultura personale e divertimento, allora ho dei dubbi.
banryu79
15-05-2008, 16:27
Un ritmo di 3 ore alla settimana per un lasso di tempo di 6 mesi secondo me non è credibile.
Ripeto che imho occorre mettere in preventivo minimo 1 ora (meglio 2) al giorno per 10 - 12 mesi; questo per arrivare ad una base minima di conoscenze che ti permettano di fare qualcosa di concreto.
Tra l'altro davo per scontato che l'obiettivo NON fosse il lavoro :rolleyes:
Salve a tutti, è il mio primo post in questa sezione. Come si capisce dal titolo sono un completo novizio, ma sono molto interessato all'argomento. Dopo anni passati a smanettare sull'hardware e sui videogiochi in generale ho deciso di sfruttare il pc in maniera più intelligente e utile. E' da un pò che mi guardo in giro per trovare in internet delle guide online sulle basi della programmazione o su quale linguaggio orientarmi, ma ho fatto solo una gran confusione. Vorrei impegnarmi seriamente e non mi piacerebbe buttare del tempo (ho 27 anni). Sarei interessato alla piattaforma .Net, ma non sò se come prima esperienza andrebbe bene essendo a digiuno delle fondamenta. Da dove dovrei cominciare per ottenere una buona base? Ho pensato anche di frequentare dei corsi, ma non sapendo cosa scegliere ho rimandato (in più nella mia città molte di queste scuole di informatica sembrano più delle macchine succhia soldi che altro).
Ringrazio anticipatamente tutti per le risposte e per la pazienza di aiutare un niubbone come me;) !
In che ambito vorresti programmare ? Per lavoro o diletto ?
Joseph Joestar
15-05-2008, 20:54
L'idea di lavorare in questo campo per ora non la metto in preventivo, ma non la escluderei nemmeno (tutto fa comodo nella vita). In ogni caso, credo, sarebbe meglio che dedicassi del tempo ad un linguaggio più funzionale e utile, casomai potrebbe tornarmi comodo in futuro. Inoltre essendo a digiuno di programmazione non sentirei le differenze tra c o un c# (esempio a caso), almeno all'inizio. Se poi continuassi a studiare allora potrei farmi un'idea più concreta e scegliere una determinata strada. Detto in due parole l'argomento mi attrae e voglio approfondirlo, ma possibilmente in maniera pratica e diretta. Come qualcun altro ha scritto, giusto per fare un esempio, non consiglierei di imparare il latino ad uno straniero che vuole solo parlare l'italiano.
wizard_at
15-05-2008, 21:40
3 ore la settimana per 6 mesi gestisci tutto partendo da zero? :mbe:
permettimi di dubitare.
Un ritmo di 3 ore alla settimana per un lasso di tempo di 6 mesi secondo me non è credibile.
Ripeto che imho occorre mettere in preventivo minimo 1 ora (meglio 2) al giorno per 10 - 12 mesi; questo per arrivare ad una base minima di conoscenze che ti permettano di fare qualcosa di concreto.
Tra l'altro davo per scontato che l'obiettivo NON fosse il lavoro :rolleyes:
saro' che sono giovane, ho tempo libero e ce la metto tutta ma Pascal lo ho imparato bene in un mese(vacanze di natale senza avere a portata di mano un PC. scrivevo su carta. poi una volta a casa ho trascritto tutto e compilato)
per VB6 ci ho messo un 4 mesi e me la cavavo bene
per C++ 6mesi studiando in parte anche Irrlicht.
ora Java da una settimana.
1ora al giorno mi sembra tanto. si legge il manuale(tipicamente in bagno:D ) e si capiscono gli esempi. in un'ora si legge troppo e poi non si assimila per bene. poco alla volta con costanza. anche 15 minuti di lettura(mezzo capitolo) bastano al giorno.
poi per scrivere i programmi carta e penna e fare schemi
PS: il tuo ragionamento sul fatto che iniziare con C o C# per te e' uguale. il effetti a te non cambia piu' di tanto. l'unica difficolta' e' che molti manuali potrebbero andare molto veloci su passaggi che a te potrebbero sembrare poco scontati in quanto presuppongono che il programmatore di un linguaggio come il c# o java sappia gia' informazioni su altri linguaggi.
L'idea di lavorare in questo campo per ora non la metto in preventivo, ma non la escluderei nemmeno (tutto fa comodo nella vita). In ogni caso, credo, sarebbe meglio che dedicassi del tempo ad un linguaggio più funzionale e utile, casomai potrebbe tornarmi comodo in futuro.
Non esiste "il piu' funzionale". Ce ne sono alcuni migliori di altri, ma molto dipende da cosa vuoi fare, perche' oltre al linguaggio bisogna considerare le librerie a disposizione, la disponibilita' di documentazione/tutorial/guide etc. Se ad esempio vorresti scrivere programmi con interfaccia grafica in windows C# puo' essere una ottima scelta, ma se invece hai un mac, allora proprio no. Oppure vorresti provare a scrivere qualcosa in stile web, e quindi si potrebbe consigliarti qualcos'altro.
Poi ovviamente con tutto si fa tutto (o quasi :D), pero' visto che dici che parti da zero e che il tempo che hai a disposizione e' quello che e', un qualcosa di piu' mirato possiamo suggerirtelo.
Inoltre essendo a digiuno di programmazione non sentirei le differenze tra c o un c# (esempio a caso), almeno all'inizio.
Direi che e' il contrario, cosi' come la differenza tra una bicicletta e una moto l'apprezza di piu' uno a corto di fiato che un atleta allenato :p.
khelidan1980
15-05-2008, 22:20
PS: ho 17anni, per molti saro' un nulla nella programmazione, programmo da 8 e ti consiglio vivamente di non buttare soldi in nessun corso.
ciao
saro' che sono giovane, ho tempo libero e ce la metto tutta ma Pascal lo ho imparato bene in un mese(vacanze di natale senza avere a portata di mano un PC. scrivevo su carta. poi una volta a casa ho trascritto tutto e compilato)
Si ma non c'è competizione,se un bambino prodigio tu
variabilepippo
15-05-2008, 23:37
PS: ho 17anni, per molti saro' un nulla nella programmazione, programmo da 8 e ti consiglio vivamente di non buttare soldi in nessun corso.
ciao
saro' che sono giovane, ho tempo libero e ce la metto tutta ma Pascal lo ho imparato bene in un mese(vacanze di natale senza avere a portata di mano un PC. scrivevo su carta. poi una volta a casa ho trascritto tutto e compilato)
Dove si possono ammirare i capolavori tirati fuori in questi tuoi 8 anni dedicati allo studio dei linguaggi di programmazione? :cool:
wizard_at
16-05-2008, 05:59
non sono un prodigio. sono un patito. Certi bambini iniziano a 3 anni a giocare a pallone in una squadra, io ho iniziato a 3 anni a usare un pc.
tutti i miei programmi sono finiti nell'HD del portatile che ho fuso un paio di mesi fa:cry:
si sono salvati i primi esempi di Pascal e qualcosa di VB6....degli schifi
variabilepippo
16-05-2008, 08:21
tutti i miei programmi sono finiti nell'HD del portatile che ho fuso un paio di mesi fa
Ed in 8 anni di dedizione non hai creato neanche un backup dei tuoi dati (creare copie di riserva dei propri progetti è una delle prime regole che un programmatore deve imparare) o pubblicato un software realizzato da te su Internet? :confused:
^TiGeRShArK^
16-05-2008, 08:43
saro' che sono giovane, ho tempo libero e ce la metto tutta ma Pascal lo ho imparato bene in un mese(vacanze di natale senza avere a portata di mano un PC. scrivevo su carta. poi una volta a casa ho trascritto tutto e compilato)
per VB6 ci ho messo un 4 mesi e me la cavavo bene
per C++ 6mesi studiando in parte anche Irrlicht.
ora Java da una settimana.
1ora al giorno mi sembra tanto. si legge il manuale(tipicamente in bagno:D ) e si capiscono gli esempi. in un'ora si legge troppo e poi non si assimila per bene. poco alla volta con costanza. anche 15 minuti di lettura(mezzo capitolo) bastano al giorno.
poi per scrivere i programmi carta e penna e fare schemi
PS: il tuo ragionamento sul fatto che iniziare con C o C# per te e' uguale. il effetti a te non cambia piu' di tanto. l'unica difficolta' e' che molti manuali potrebbero andare molto veloci su passaggi che a te potrebbero sembrare poco scontati in quanto presuppongono che il programmatore di un linguaggio come il c# o java sappia gia' informazioni su altri linguaggi.
Ecco, quindi mi sa che ancora devi imparare a programmare ;)
Io ho iniziato a 9 anni e ore ne ho 27.
E ho imparato a programmare veramente ad oggetti solo *recentemente*.
Io ho iniziato con basic, c, assembly, passando poi al C++ fino ai 17 anni.
Però oggi mi rendo conto che non avevo proprio idea della programmazione ad oggetti.
Il procedurale mi aveva letteralmente infestato con la sua modalità balorda di programmare e ci ho messo davvero TANTO ad uscire fuori da quegli schemi mentali.
Quindi, anche per questo, sconsiglio ASSOLUTAMENTE il C.
E' solo una perdita di tempo (a meno che non si voglia programmare sui dispositivi embedded o scrivere driver) e ti impedisce di apprendere correttamente la programmazione ad oggetti.
Comunque per il fatto dei manuali se ne trovano molti che partono proprio dalle basi.
Anche se per imparare a programmare davvero bene servono ANNI di esperienza su progetti anche molto grossi e uno studio continuo di tutte le nuove tecnologie a disposizione.
Non basta certo leggere qualche manuale e fare qualche programmino :p
cdimauro
16-05-2008, 09:57
Come non quotare. :)
wizard_at
16-05-2008, 17:44
Ecco, quindi mi sa che ancora devi imparare a programmare ;)
Io ho iniziato a 9 anni e ore ne ho 27.
E ho imparato a programmare veramente ad oggetti solo *recentemente*.
Io ho iniziato con basic, c, assembly, passando poi al C++ fino ai 17 anni.
Però oggi mi rendo conto che non avevo proprio idea della programmazione ad oggetti.
Il procedurale mi aveva letteralmente infestato con la sua modalità balorda di programmare e ci ho messo davvero TANTO ad uscire fuori da quegli schemi mentali.
Quindi, anche per questo, sconsiglio ASSOLUTAMENTE il C.
E' solo una perdita di tempo (a meno che non si voglia programmare sui dispositivi embedded o scrivere driver) e ti impedisce di apprendere correttamente la programmazione ad oggetti.
Comunque per il fatto dei manuali se ne trovano molti che partono proprio dalle basi.
Anche se per imparare a programmare davvero bene servono ANNI di esperienza su progetti anche molto grossi e uno studio continuo di tutte le nuove tecnologie a disposizione.
Non basta certo leggere qualche manuale e fare qualche programmino :p
Come non quotare...quoto anche io.
il C lo sconsiglio anche io. C++ e' gia' OO.
uscire dalla programmazione lineare e' difficile, impossibile.
e' come essere abituati a camminare a 4 zampe e passare a 2. quando ci si alza all'inizio gira la testa e poi ci vuole tanto tempo per abituarsi.
PS: programmi per diletto o per professione?
DioBrando
16-05-2008, 18:15
Come non quotare...quoto anche io.
il C lo sconsiglio anche io. C++ e' gia' OO.
uscire dalla programmazione lineare e' difficile, impossibile.
Partendo dal presupposto che programmazione lineare non significa nulla nel contesto in cui la usi, prchè è una branca della ricerca operativa (siamo in un ambito legato all'algoritmica e matematica ed in particolare alla risoluzione di problemi con funzioni lineari per l'appunto), la differenza che fai tra C e C++ è irrilevante.
Il secondo è un superset del primo e le problematiche di lavorare in questo contesto rimangono (anzi aumentano considerato che hai a che fare con un ibrido di paradigmi).
Il discorso non cambia poi se rivolgi le tue attenzioni al Managed C++ (dò per scontato che tu ci abbia mai lavorato).
Se ci fai caso anche nel panorama internazionale vi sono programmatori C++ da due decadi che continuano a scontrarsi con problemi di difficile soluzione, seppur la letteratura non manchi, la massa di sviluppatori nemmeno, il know-how e tools neanche (chiedere a fek) e che per questo, non a caso, suggeriscono di NON iniziare da qui.
Così come il mio suggerimento è quello di NON perseverare su questa posizione, ampiamente discussa in altri, chilometrici, estenuanti, ciclici thread precedenti al tuo :)
Che poi tu in 6 mesi abbia imparato a programmare in C++ è fuori dal mondo, a meno che tu non intenda risolvere esercizi banali e classici come quelli legati all'ordinamento, stampa di stringhe e così via.
Quello però non è saper programmare ma fare un po' di "ginnastica mentale" :D
^TiGeRShArK^
16-05-2008, 19:52
Come non quotare...quoto anche io.
il C lo sconsiglio anche io. C++ e' gia' OO.
uscire dalla programmazione lineare e' difficile, impossibile.
e' come essere abituati a camminare a 4 zampe e passare a 2. quando ci si alza all'inizio gira la testa e poi ci vuole tanto tempo per abituarsi.
PS: programmi per diletto o per professione?
entrambi :D
Ho iniziato per diletto, ho proseguito per professione lavorando in varie aziende (non nella mia città ovviamente :p) e ora sono socio in un'azienda di informatica e servizi e faccio un pò di tutto, ma per il 90% programmo.
Quando ho un pò di tempo e la testa abbastanza libera a casa mi metto ad approfondire qualche concetto o a studiare cose nuove... e il forum è un valido aiuto dato che a volte trovi discussioni molto interessanti :p
Joseph Joestar
16-05-2008, 19:54
Ho appena comprato il manualde di Apogeo Pocket sul C#. L'ho spulciato un pò e per iniziare dovrebbe andar bene. Da domenica mi dedico alla lettura (e pratica possibilmente;) .
wizard_at
16-05-2008, 20:12
buon divertimento!
ps: cambiato raicalmente idea sul C++....anche se un po mi dispiace.
dopo 6 mesi si programma. per sapere programmare ci vogliono anni. in 6 mesi si riesce a fare tranquillamente un tris con IA e interfaccia grafica.
Ottimo consiglio :)
Così spreca una marea di tempo per imparare a programmare nemmeno decentemente in C, quindi deve fare uno sforzo immenso per imparare la programmazione ad oggetti eliminando la forma-mentis che gli ha dato la programmazione procedurale.
E visto che c'è poi si può anche sparare quando deve passare alla programmazione funzionale.
Il linguaggio peggiore per iniziare è proprio il C.
Oddio..
In effetti ci sarebbe anche l'assembly e il linguaggio macchina :asd:
O magari il Ladder :O
:asd:
Perchè dici che per programmare ad oggetti bisogna disimparare la programmazione procedurale?
variabilepippo
18-05-2008, 18:35
Perchè dici che per programmare ad oggetti bisogna disimparare la programmazione procedurale?
Perché sono due approcci diversi e antitetici alla programmazione.
Perché sono due approcci diversi e antitetici alla programmazione.
Dici? Io li vedo piuttosto come uno l'evoluzione dell'altro...
wizard_at
18-05-2008, 18:43
Dici? Io li vedo piuttosto come uno l'evoluzione dell'altro...
una evoluzione molto drastica e radicale.
da una linea curva di e' passati e una palla aggrovigliata.
una evoluzione molto drastica e radicale.
da una linea curva di e' passati e una palla aggrovigliata.
Ma anche prima della OOP era buona norma programmare "OO", nel senso che si cercava di tenere tutto il più modulare e indipendente possibile... La OO è l'evoluzione di questa tendenza...
Inoltre per imparare la OOP (nelle sue generalità, I-P-E) mi ci è voluto qualche giorno... Poi ammetto di non esserne espertissimo perchè il tipo di programmazione che faccio è molto più algoritmico, e probabilmente molte cose non le so, ma quello che dite non è stato assolutamente vero, almeno per me, pur conoscendo e avendo una forma mentis OOP, sono cmq molto abile nella programmazione procedurale, e non ho dovuto disimparare proprio nulla, anzi..
cdimauro
18-05-2008, 19:10
Non è affatto vero che la programmazione a oggetti è l'evoluzione della tendenza a "modularizzare" il codice. La differenza con la programmazione procedurale, pur facendo uso di tecniche di "modularizzazione", è concettuale.
Se hai un bel po' di tempo, ti consiglio di leggere questo http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html articolo (fornitoci gentilmente da PGI-Bis :)) che è illuminante sull'argomento. ;)
^TiGeRShArK^
18-05-2008, 19:15
Ma anche prima della OOP era buona norma programmare "OO", nel senso che si cercava di tenere tutto il più modulare e indipendente possibile... La OO è l'evoluzione di questa tendenza...
Inoltre per imparare la OOP (nelle sue generalità, I-P-E) mi ci è voluto qualche giorno... Poi ammetto di non esserne espertissimo perchè il tipo di programmazione che faccio è molto più algoritmico, e probabilmente molte cose non le so, ma quello che dite non è stato assolutamente vero, almeno per me, pur conoscendo e avendo una forma mentis OOP, sono cmq molto abile nella programmazione procedurale, e non ho dovuto disimparare proprio nulla, anzi..
:asd:
ci vogliono anni per cogliere la programmazione ad oggetti in tutta la sua potenza applicando i + svariati design pattern quando necessario e tu sostieni di averla imparata in qualche giorno? :asd:
beh...
convinto tu :p
:asd:
ci vogliono anni per cogliere la programmazione ad oggetti in tutta la sua potenza applicando i + svariati design pattern quando necessario e tu sostieni di averla imparata in qualche giorno? :asd:
beh...
convinto tu :p
Prima di tutto togliti quell'atteggiamento, sto cercando di portare avanti un confronto perchè sono interessato alle vostre posizioni
Cmq dicevo che per il tipo di programmazione che piace e serve fare a me, la OOP è solo una complicazione inutile, per cui l'ho usata abbastanza poco, e non ne sono espertissimo; per quello dicevo di averla imparata nelle sue generalità, cioè cos'è, come si usa, i pilastri, ecc.. ovviamente la bonà arriva anche con l'esperienza, e probabilmente non sarò abilissimo nell'usarla, però qualcosina ci ho fatto, e mi ci son trovato bene...
PS: per curiosità, potete spiegarmi cosa intendete per programmazione modulare?
PPS: inoltre, perchè la OOP non è l'evoluzione della tendenza a modularizzare il codice? Perchè è stata creata allora?
cdimauro
18-05-2008, 20:00
http://it.wikipedia.org/wiki/Programmazione_modulare
Sul perché è stata creata la programmazione a oggetti il link te l'ho passato. ;)
^TiGeRShArK^
18-05-2008, 20:16
Prima di tutto togliti quell'atteggiamento, sto cercando di portare avanti un confronto perchè sono interessato alle vostre posizioni
Cmq dicevo che per il tipo di programmazione che piace e serve fare a me, la OOP è solo una complicazione inutile, per cui l'ho usata abbastanza poco, e non ne sono espertissimo; per quello dicevo di averla imparata nelle sue generalità, cioè cos'è, come si usa, i pilastri, ecc.. ovviamente la bonà arriva anche con l'esperienza, e probabilmente non sarò abilissimo nell'usarla, però qualcosina ci ho fatto, e mi ci son trovato bene...
PS: per curiosità, potete spiegarmi cosa intendete per programmazione modulare?
PPS: inoltre, perchè la OOP non è l'evoluzione della tendenza a modularizzare il codice? Perchè è stata creata allora?
Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs. Programming techniques may include features such as, encapsulation, modularity, polymorphism, and inheritance.
come vedi la modularità è solo una delle caratteristiche della programmazione ad oggetti ;)
Ma altrettanto importanti sono le altre.
Essa si basa principalmente sugli oggetti e le loro interazioni.
Mentre nella programmazione modulare ogni modulo è una suddivisione in "compartimenti stagni" del codice, soprattutto per aumentarne la manutenibilità.
Nella programazione ad oggetti devi crearti tanti "building-blocks", ognuno con un ben specifico compito, che interagendo tra loro danno vita al tuo sistema.
Un pò come giocare con i Lego creandoti tu i pezzi che ti servono :p
La sua potenza è che permette di rappresentare in maniera + vicina al nostro modo di ragionare i problemi.
Inoltre, grazie ad ereditarietà e polimorfismo consente anche di eliminare la duplicazione del codice e di abbassarne la complessità ciclomatica.
La differenza principale è che anzichè vedere il problema come un "flusso" di istruzioni, ti crei un sistema composto da varie parti che concorrono ognuna di essa a risolvere una parte del problema e che, interfacciandosi tra di loro, risolvono completamente il problema.
Comunque qui su wikipedia:
http://en.wikipedia.org/wiki/Object_oriented
è spiegato molto meglio di come potrei spiegarlo io.
Certo, ma quello dei pezzetti lego che costruiscono la figura non è presente comunque anche nella normale programmazione modulare?
Grazie per i link, me li salvo, e li leggo appena la storia mi da tregua ;)
^TiGeRShArK^
19-05-2008, 10:16
Certo, ma quello dei pezzetti lego che costruiscono la figura non è presente comunque anche nella normale programmazione modulare?
Grazie per i link, me li salvo, e li leggo appena la storia mi da tregua ;)
beh..
per come lo intendo io un modulo è piuttosto diverso da un oggetto...
I moduli sarebbero + l'equivalente dei package di java o dei vari sotto-progetti che compongono un progetto.
Quindi è solo una "catalogazione logica" di parti di codice affini e con una bassa correlazione con gli altri moduli.
Gli oggetti invece sono delle strutture ad un livello + fine e che descrivono ogni parte attiva del tuo sistema.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.