View Full Version : Che linguaggio imparereste?
Ciao a tutti,
siccome conosco molto bene il linguaggio Matlab ma volevo ampliare un pò i miei orizzonti che linguaggio mi consigliate di imparare anche in ottica futura?
Grazie mille,
Marco.
Beh dipende da cosa vuoi fare in futuro... che tipo di applicativi vuoi sviluppare?
Applicativi che abbinino la grafica col calcolo... Non so fammi una panoramica che ne so Linguaggio ==>> Applicativo...
Grazie,
Marco.
Ghepardo
02-02-2006, 18:32
Imparare il c++ secondo me è la cosa migliore.
E del Java che mi dici? Per quanto riguarda le GUI Cosa mi dite?
Ghepardo
02-02-2006, 19:17
Impari il c++ e poi tutti gli altri linguaggi li impari in 5 minuti.
OK... Tieni conto che io Matlab lo so abbastanza bene... Quanto è differente il C++?
^TiGeRShArK^
02-02-2006, 20:28
Impari il c++ e poi tutti gli altri linguaggi li impari in 5 minuti.
................non ha molto senso quello ke dici...
consigliare ad uno ke sa programmare solo in matlab il C++ al primo impatto si darà al suicidio...
MOLTO meglio un linguaggio ad alto livello fortemente orientato agli oggetti e + semplice quale python o Java...
Cmq in ambito lavorativo è molto + rikiesto il java ora km ora...
................non ha molto senso quello ke dici...
consigliare ad uno ke sa programmare solo in matlab il C++ al primo impatto si darà al suicidio...
MOLTO meglio un linguaggio ad alto livello fortemente orientato agli oggetti e + semplice quale python o Java...
Cmq in ambito lavorativo è molto + rikiesto il java ora km ora...
Ok... Quindi meglio Java!? Il C++ forse è un pò vecchiotto?
Ghepardo
02-02-2006, 20:58
Ok... Quindi meglio Java!? Il C++ forse è un pò vecchiotto?
Io la penso un po diversamente, preferisco comunque il C/C++ (nonostante sia alle prime armi con questo linguaggio).
I consigli li hai avuti, ora a te l'ardua decisione. Buona fortuna e...che dio ti scampi dal segmentation fault :)
Vediamo un pò che riesco a fare...
Grazie a tutti... ;)
^TiGeRShArK^
02-02-2006, 22:30
Ok... Quindi meglio Java!? Il C++ forse è un pò vecchiotto?
non è ke è vekkiotto...
è ke il mercato del lavoro ultimamente si sta orientando piu' sulla produttività ke sull'ottimizzazione...
per questo motivo linguaggi privi di costrutti vicini alla makkina sono preferibili perchè in media producono meno errori e quindi sono + produttivi....
vuoi mettere tra passare settimane a debuggare per trovare le ragioni di un memory leak oppure uscire pazzo xkè ti incasini con i puntatori in progetti medio/grandi e non dovertene preoccupare affatto?
Java come C# permettono un approccio completamente trasparente all'utente....
addirittura in java NON esiste il passaggio per riferimento, ma solo quello x valore, preferibile dal punto di vista della leggibilità del codice.....
anzi ... a dirla tutta in java i tipi primitivi vengono passati per valore, mentre x gli oggetti viene passato per valore il riferimento... concetto molto simile al passaggio x riferimento ma con delle importanti differenze.....
Inoltre, a quanto ricordo io, il linguaggio di programmazione di matlab non è molto complesso dal punto di vista della difficoltà di programmazione...
x questo motivo passando da matlab al C++ ti troveresti abbastanza spaesato IMHO.....
Cmq l'importante non è il linguaggio ke scegli, quanto imparare la METODOLOGIA di programmazione.
La prima cosa da fare è imparare la programmazione object oriented, quindi ti conviene studiare i design pattern e dare un okkiata alle tecnike di programmazione agili (Extreme programming, TDD ... ecc ... ecc...)imho....
non è ke è vekkiotto...
è ke il mercato del lavoro ultimamente si sta orientando piu' sulla produttività ke sull'ottimizzazione...
per questo motivo linguaggi privi di costrutti vicini alla makkina sono preferibili perchè in media producono meno errori e quindi sono + produttivi....
vuoi mettere tra passare settimane a debuggare per trovare le ragioni di un memory leak oppure uscire pazzo xkè ti incasini con i puntatori in progetti medio/grandi e non dovertene preoccupare affatto?
Java come C# permettono un approccio completamente trasparente all'utente....
addirittura in java NON esiste il passaggio per riferimento, ma solo quello x valore, preferibile dal punto di vista della leggibilità del codice.....
anzi ... a dirla tutta in java i tipi primitivi vengono passati per valore, mentre x gli oggetti viene passato per valore il riferimento... concetto molto simile al passaggio x riferimento ma con delle importanti differenze.....
Inoltre, a quanto ricordo io, il linguaggio di programmazione di matlab non è molto complesso dal punto di vista della difficoltà di programmazione...
x questo motivo passando da matlab al C++ ti troveresti abbastanza spaesato IMHO.....
Cmq l'importante non è il linguaggio ke scegli, quanto imparare la METODOLOGIA di programmazione.
La prima cosa da fare è imparare la programmazione object oriented, quindi ti conviene studiare i design pattern e dare un okkiata alle tecnike di programmazione agili (Extreme programming, TDD ... ecc ... ecc...)imho....
Che libro di testo universitario (quindi di un certo livello) mi consiglieresti dato che sono un neo Ingegnere Matematico?
Ziosilvio
03-02-2006, 01:12
Che libro di testo universitario (quindi di un certo livello) mi consiglieresti dato che sono un neo Ingegnere Matematico?
Se non ti va di passare in libreria, puoi scaricare Thinking in C++ e Thinking in Java, di Bruce Eckel, dal sito dell'autore (http://www.mindview.net/): sono due ottimi testi.
Se preferisci la carta:
- per Java: "Core Java" di Horstmann e Cornell, in due volumi;
- per C++: "The C++ Programming Language" di Stroustrup.
A proposito: ti consiglio di dare un'occhiata anche a Python (http://www.python.org/), un linguaggio di programmazione e scripting che è diventato la mia prima scelta da molto tempo.
Che libro di testo universitario (quindi di un certo livello) mi consiglieresti dato che sono un neo Ingegnere Matematico?
Hai gia' guardato qui?
http://www.hwupgrade.it/forum/showthread.php?t=801695
Ciao ;)
discepolo
03-02-2006, 06:48
io ti consiglierei di iniziare dal C!! :D
Impari il c++ e poi tutti gli altri linguaggi li impari in 5 minuti.
Questo è falso.
Chiedi ad un programmatore C++ (ma anche di un qualsiasi altro linguaggio imperativo) di impararsi haskell.
E fai partire il cronometro... :)
edit:
Anzi! Dato che il giovane qui è un ingegnere matematico, consiglierei proprio un linguaggio funzionale (tipo haskell) o semi-funzionale (tipo ocaml). Più matematico di così si muore! :)
E poi i linguaggi funzionali espandono la mente.
Quando ho capito che
fibs = 1 : 1 : [ x+y | (x, y) <- zip fibs (tail fibs) ]
esprime TUTTA (da notare l'eleganza di una struttura che si autodefinisce ricorsivamente all'infinito) la serie di fibonacci (in haskell), mi si è illuminato qualcosa nel cervello :)
^TiGeRShArK^
03-02-2006, 08:46
A proposito: ti consiglio di dare un'occhiata anche a Python (http://www.python.org/), un linguaggio di programmazione e scripting che è diventato la mia prima scelta da molto tempo.
infatti gliel'avevo consigliato pure io :D
alla fine l'importante è ke impari un linguaggio ad alto livello imho...
forse java gli farà giusto + comodo a livello lavorativo dato ke sto notando ke ora km ora è molto rikiesto... (soprattutto in abbinamento alle JSP)
discepolo
03-02-2006, 09:33
infatti gliel'avevo consigliato pure io :D
alla fine l'importante è ke impari un linguaggio ad alto livello imho...
forse java gli farà giusto + comodo a livello lavorativo dato ke sto notando ke ora km ora è molto rikiesto... (soprattutto in abbinamento alle JSP)
quoto!!
:sofico:
Ziosilvio
03-02-2006, 09:49
Dato che il giovane qui è un ingegnere matematico, consiglierei proprio un linguaggio funzionale (tipo haskell) o semi-funzionale (tipo ocaml). Più matematico di così si muore! :)
Se sei pratico di linguaggi funzionali, ti chiedo un consiglio su quale imparare tra, diciamo: Lisp, Scheme, Haskell e Ocaml.
Tieni conto che partirei da zero.
A proposito: sono un matematico.
fabianoda
03-02-2006, 10:45
Questo è falso.
Chiedi ad un programmatore C++ (ma anche di un qualsiasi altro linguaggio imperativo) di impararsi haskell.
E fai partire il cronometro... :)
edit:
Anzi! Dato che il giovane qui è un ingegnere matematico, consiglierei proprio un linguaggio funzionale (tipo haskell) o semi-funzionale (tipo ocaml). Più matematico di così si muore! :)
E poi i linguaggi funzionali espandono la mente.
Quando ho capito che
fibs = 1 : 1 : [ x+y | (x, y) <- zip fibs (tail fibs) ]
esprime TUTTA (da notare l'eleganza di una struttura che si autodefinisce ricorsivamente all'infinito) la serie di fibonacci (in haskell), mi si è illuminato qualcosa nel cervello :)
Concordo sull'eleganza, ma dipende cosa uno ci debba fare con il linguaggio, ovviamente. I linguaggi funzionali sono molto limitati dal punto di vista pratico, nel senso che, a parte alcuni casi (sistemi critici ad esempio) non servono a molto, o meglio non sono richiesti dall'industria.
Che cos'è adesso Ingegneria Matematica??? :confused:
Se sei pratico di linguaggi funzionali, ti chiedo un consiglio su quale imparare tra, diciamo: Lisp, Scheme, Haskell e Ocaml.
Tieni conto che partirei da zero.
A proposito: sono un matematico.
Non sono molto pratico per ora, ma sto studiando haskell :)
Ho dato un'occhiata ad ocaml prima, ed effettivamente alcuni concetti di haskell sono riuscito a capirli in fretta avendo ocaml come base. Anche girando per i forum, pare che il percorso ottimale sia del tipo ocaml->haskell.
Ma se sei un matematico, forse parti avantaggiato. :)
Io ad esempio le monadi proprio non le capisco! :muro:
Il punto è che finchè pensi in maniera imperativa o ad oggetti non ci caverai mai un ragno dal buco; bisogna prima svuotare la mente :)
Concordo sull'eleganza, ma dipende cosa uno ci debba fare con il linguaggio, ovviamente. I linguaggi funzionali sono molto limitati dal punto di vista pratico, nel senso che, a parte alcuni casi (sistemi critici ad esempio) non servono a molto, o meglio non sono richiesti dall'industria.
Ha chiesto qualcosa per ampliare i suoi orizzonti. Dato che conosce già lo scripting in matlab, studiare Java non lo scosta moltissimo. La programmazione funzionale invece è qualcosa di profondamente diverso.
Che poi sia utile/molto utile/poco utile/te lo chiedano ad un colloquio di lavoro, è un altro paio di maniche. :)
supertonno
03-02-2006, 13:20
Impari il c++ e poi tutti gli altri linguaggi li impari in 5 minuti.
Vero! Pero non ti devi fermare alla parte di programmazione classica. Devi anche capire bene la programmazione a oggetti, visto ora tutti linguaggi sono OOP oriented. Io ti consiglio di guardarla sul libro di thinking in java (gratutito e scaricabile online)
Vero! Pero non ti devi fermare alla parte di programmazione classica. Devi anche capire bene la programmazione a oggetti, visto ora tutti linguaggi sono OOP oriented. Io ti consiglio di guardarla sul libro di thinking in java (gratutito e scaricabile online)
Mica tanto vero. Imparare un linguaggio significa conoscerne le API. Le API di Java sono quanto di piu' mostruoso possa esistere. Altro che 5 minuti.
^TiGeRShArK^
03-02-2006, 14:37
infatti la cosa fondamentale è imparare la metodologia di programmazione, come avev ogià scritto...
xò onestamente le API di java non le ho trovate tnt orribili..
anzi... con tutta la serie dei tutorial della sun mi sembrano abbastanza comprensibili nel complesso ... :confused:
senza contare la documentazione dato ke preferisco nettamente i Java DOC rispetto a msdn.....
infatti la cosa fondamentale è imparare la metodologia di programmazione, come avev ogià scritto...
xò onestamente le API di java non le ho trovate tnt orribili..
anzi... con tutta la serie dei tutorial della sun mi sembrano abbastanza comprensibili nel complesso ... :confused:
senza contare la documentazione dato ke preferisco nettamente i Java DOC rispetto a msdn.....
Ho sbagliato l'aggettivo. Per "mostruose" non intendevo orribili, intendevo "sconfinate". Imparare Java seriamente non è un task da 5 minuti come si fa credere da alcuni. Neanche passando da C++. C'è sempre il confine fra l'imparare la sintassi di un linguaggio e imparare le sue API. La sintassi posso essere d'accordo che per uno che conosce già C++ può risultare semplice. Ciò non toglie che imparare a essere produttivi in Java, cosi come negli altri libguaggi, bisogna imparare a usare decentemente le API ... Il che non mi sembra un passo cosi banale (indipendentemente dal linguaggio).
:p
^TiGeRShArK^
03-02-2006, 16:08
ah ora ho capito :D
ah ora ho capito :D
Penso su questo siamo d'accordo... :p
senza contare la documentazione dato ke preferisco nettamente i Java DOC rispetto a msdn.....
Anche io. Una volta abituatisi al suo formato, risulta uno strumento utilissimo, a volte quasi indispensabile. Inoltre il Java Tutorial lo trovo fantastico....
Devo mettermici di punta un giorno o l'altro a studiare quello sulle JFC/Swing... :help:
Ghepardo
03-02-2006, 18:40
Che bello dei colleghi ING sul forum ^_^.
Io sono un'ingegnere informatico. Continuo a dire di iniziare col C++, e da li il resto è in discesa, e ora vi spiego il perchè.
Per imparare un linguaggio di programmazione non serve imparare le API a memoria o chissà che altro, serve, come prima cosa, capire il paradigma di programmazione, in modo da modellare correttamente ciò che volete realizzare quando vi mettete davanti la tastiera; in secondo luogo è fondamentale padroneggiare la sintassi del linguaggio.
Una volta imparato il C++, a mio avviso, passare a Java o C# è molto molto facile. Non è assolutamente vero il contrario. Il C++ può sembrare obsoleto perchè moltissime aziende informatiche sono orientate allo sviluppo dei servizi e quindi usano linguaggi più orientati alla tecnologia web (Java etc etc). E questa senza dubbio è una grande fetta del mercato.
Però molte altre cose si continuano a fare in C/C++ (i sistemi operativi tanto per dirne una, oppure provate a scaricare le SDK di qualche videogioco, sono tutte per C++).
Poi ovviamente, se da un linguaggio ad oggetti si deve passare ad un'altro paradigma, allora non è che il C++ faciliti più di tanto (nonostante continui a sostenere che chi sa il C++ è più "ferrato" in programmazione rispetto a chi sa Java).
Questo è come la penso io, tanto è vero che all'università ho studiato (e sto studiando nella specialistica) solo java, e per mia cultura personale mi sto approcciando al C++.
Per quello che riguarda i linguaggi funzionali, se stai studiando la programmazione per avere più possibilità di trovare un buon lavoro, direi di lasciarli perdere per ora e concentrarsi su altri linguaggi più utilizzati (come i sopracitati C++, Java).
Ripeto, non è vangelo quello che dico, ma solo il mio modo di pensare ^^.
^TiGeRShArK^
03-02-2006, 18:50
appunto...
x te ke conosci java è una cosa studiare il C++....
x uno ke conosce solo il linguaggio di programmazione di matlab è MOLTO + incasinato....
prima dovrebe imparare la programmazione ad oggetti e le metodologie di sviluppo....
col C++ avrebbe tanti di quei sbattimenti per l'allocazione di memoria e x i puntatori ke finirebbe x scoraggiarsi imho...
sarò un cretino, ma io prima mi studierei il c.
poi un linguaggio a caso tra java e c++.
le motivazioni sono terribilmente idiote, ma secondo me non sono da sottovalutare.
-alla fine la sintassi del c ricorre in milioni di linguaggi
-i migliori testi (da qualche parte bisogna pur studiare) danno per scontato la conoscenza di questo linguaggio per andare avanti con la spiegazione (ad esempio l'illuminante serie dei thinking)
i linguaggi funzionali sono spacciosi, ho studiato il caml per un esame all'università, ma non mi sentirei di consigliarlo a nessuno come linguaggio di programmazione "generico"
ciao
La sintassi base di C, C++ e Java è IDENTICA. Quindi imparando uno qualsiasi di questi linguaggi, il passaggio agli altri (sempre per quando riguarda la sintassi base, e SOLO quella) è pressocchè immediato.
Non è invece assolutamente vero, secondo me, che l'essere "ferrato" in programmazione dipenda dal linguaggio usato.
C++ e Java in fin dei conti hanno profonde differenze, e sono stati concepiti per scopi diversi. C++ è forse il linguaggio (ad alto livello) più performante esistente, quindi indicato per applicazioni in cui la rapidità di esecuzione è importante; mentre Java è indipendente dalla piattaforma e per questo indicato per le applicazioni web-oriented.
Ma per utilizzare ad alto livello uno dei due non basta conoscere a fondo l'altro. Non aiuta molto... bisogna studiarlo e fare MOLTA pratica! :)
Secondo me se uno si impara il c o il c++ (meglio tutti e due, anche se dipende da quello che uno vuole fare), di conseguenza acquisirà una certa mentalità di programmazione che sarà utile nell'apprendimento di tutti gli altri linguaggi...
Trovo un po' osceno imparare solo il java e non avere idea di cosa sia il c++... meglio conoscere prima il c/c++ e poi impararsi java, chiaramente tutto questo secondo il mio personalissimo punto di vista ;)
Secondo me se uno si impara il c o il c++ (meglio tutti e due, anche se dipende da quello che uno vuole fare), di conseguenza acquisirà una certa mentalità di programmazione che sarà utile nell'apprendimento di tutti gli altri linguaggi...
Assolutamente d'accordo! In questo senso aiuta molto.
Trovo un po' osceno imparare solo il java e non avere idea di cosa sia il c++... meglio conoscere prima il c/c++ e poi impararsi java, chiaramente tutto questo secondo il mio personalissimo punto di vista ;)
Osceno mi sembra eccessivo, dai... :p Cmq una volta che "metti le mani" in Java è molto probabile che farai i conti anche con C++!
Quando ho capito che
fibs = 1 : 1 : [ x+y | (x, y) <- zip fibs (tail fibs) ]
esprime TUTTA (da notare l'eleganza di una struttura che si autodefinisce ricorsivamente all'infinito) la serie di fibonacci (in haskell), mi si è illuminato qualcosa nel cervello :)
Concordo...
sicuramente non è utile per trovare lavoro, ma la programmazione funzionale in Haskell (funzionale pura, valutazione 'lazy') è un'esperienza decisamente alternativa ed interessante. Per un matematico come me, pure divertente :P.
Io ad esempio le monadi proprio non le capisco! :muro:
Alla fine, io qualcosa si' :D. Se serve un chiarimento(nei limiti di quel che ho imparato ovviamente) fai pure un fischio
Noto come la quasi totalità delle persone in questo thread non ha per nulla citato C# ...
Noto come la quasi totalità delle persone in questo thread non ha per nulla citato C# ...
:asd:
io imparerei il piu difficile ma al contempo funzionale...non so, ad esempio non partirei da java (come invece ho fatto)....perche poi quando passi a c diventi stupido....almeno imparando su cio che di piu difficile si puo trovare, poi il resto, se non semplice, sembrera quantomeno in discesa no??
esempio: l inglese è oggettivamente piu semplice del giapponese come lingua giusto (se non lo sapete ve lo dico io che ho provato a studiarlo, fidatevi ciecamente)? eppure i bambini giapponesi imparano a parlare e a scrivere piu o meno alla stessa eta di quelli inglesi...lasciamo perdere che poi l esempio non calzi a pennello (perche per un giapponese magari abituato agli ideogrammi, imparare l inglese potrebbe essere difficile; mentre alla fine i linguaggi hanno tutti lo stesso "modus operandi" quindi imparato uno si tratta solo di scoprire come l altro fa le stesse cose di quell uno) era solo per far capire...
Noto come la quasi totalità delle persone in questo thread non ha per nulla citato C# ...
Se per questo neanche visual basic... :D
io imparerei il piu difficile ma al contempo funzionale...non so, ad esempio non partirei da java (come invece ho fatto)....perche poi quando passi a c diventi stupido....almeno imparando su cio che di piu difficile si puo trovare, poi il resto, se non semplice, sembrera quantomeno in discesa no??
esempio: l inglese è oggettivamente piu semplice del giapponese come lingua giusto (se non lo sapete ve lo dico io che ho provato a studiarlo, fidatevi ciecamente)? eppure i bambini giapponesi imparano a parlare e a scrivere piu o meno alla stessa eta di quelli inglesi...lasciamo perdere che poi l esempio non calzi a pennello (perche per un giapponese magari abituato agli ideogrammi, imparare l inglese potrebbe essere difficile; mentre alla fine i linguaggi hanno tutti lo stesso "modus operandi" quindi imparato uno si tratta solo di scoprire come l altro fa le stesse cose di quell uno) era solo per far capire...
Ma è anche vero che se impari prima C, poi trovi le stesse difficoltà nel programmare ad oggetti. Tutto ha i suoi pro e i suoi contro.
Forse C (come anche C++) ti costringe ad essere più meticoloso perchè non ha un compilatore che ti guida passo passo nell'individuare gli errori. Non ricordo bene chi ha detto che C++ è fatto per programmatori, mentre Java per delle scimmie idiote :D
Ovviamente dissento... UH UH!! :D
anche io dissento con chi ha detto quello, ma capire cosa sia un oggetto per me non è stato tutto sto granche (anzi mi è venuto naturale, anche io avrei pensato in quel modo), mentre, nonostante tutti dicano che non sono un granche, non riesco tutt ora a capire i l uso dei puntatori (ovviamente non parlo di casi banali, vabbe li son bravi tutti)...
discepolo
04-02-2006, 16:38
Se per questo neanche visual basic... :D
se per questo neanche Asp,,,,, :stordita:
Se per questo neanche visual basic... :D
Bhè, ma stavamo parlando di linguaggi di programmazione seri... :asd: :sofico:
anche io dissento con chi ha detto quello, ma capire cosa sia un oggetto per me non è stato tutto sto granche (anzi mi è venuto naturale, anche io avrei pensato in quel modo), mentre, nonostante tutti dicano che non sono un granche, non riesco tutt ora a capire i l uso dei puntatori (ovviamente non parlo di casi banali, vabbe li son bravi tutti)...
Per carità si tratta di punti di vista. Per quanto mi riguarda io più che non capirli i puntatori, non li uso molto. Ma per forma mentis plasmata da Java! :D
Bhè, ma stavamo parlando di linguaggi di programmazione seri... :asd: :sofico:
:asd:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.