Newsgroup: it.comp.programmare
Titolo: Iniziare a programmare

Mi piacerebbe iniziare a programmare ed avevo pensato al c++, vorrei più 
concentrarmi sul codice/algoritmi che non realizzare applicazioni a finestre 
(almeno nella prima fase). La mia formazione è tecnica, perito meccanico e 
studente di ingegneria meccanica...le mie conoscenze di programmazione 
attuali sono il Pascal (studiato per un esame e mai più utilizzato) e la 
programmazione di macchine utensili cnc ( ambito un pò lontano dalla 
realizzazione di applicazioni per computer).
Sicuramente non ho tanto tempo libero per apprendere più linguaggi e mi 
chiedevo se il c++ fosse una buona scelta...in sintesi, lavorando in ambito 
tecnico/meccanico e studiando ingegneria meccanica il c++ mi potrebbe essere 
utile nella mia attuale e futura professione e sono più validi e moderni 
altri linguaggi?
Altra domanda, per un esame dovrò studiarmi un pò di matlab, all'interno di 
matlab è possibile scrivere porzioni di codice direttamente in c++? oppure 
si scrive sempre in linguaggio matlab e poi è possibile esportare in c++? 

 si scrive sempre in linguaggio matlab e poi è possibile esportare in c++?
Non conosco Matlab, non saprei aiutarti con questa domanda.
Lone

 diversa.
Pascal c'entra col C++ come i cavoli a merenda. Non si tratta "solo di
imparare una sintassi un po' diversa". Troppo lungo sarebbe spiegare quali
sono le differenze tra questi due linguaggi.  Forse si rende un'idea del
confronto paragonando un moscerino a un elefante.  Io utilizzo il Pascal
(nell'incarnazione Delphi, quindi dialetto object-oriented) e ne apprezzo
tutti i vantaggi, eppure C++ continua (nel bene e nel male, s'intende) a
restare un altro mondo. Passare da un linguaggio procedurale ad uno
object-oriented richiede uno stravolgimento del metodo di lavoro e di
concezione della soluzione a un problema...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 concezione della soluzione a un problema...
Anche qui mi hai frainteso (mi sento quasi come Berlusconi :P). Io non
volevo assolutamente paragonare Pascal a C++, volevo solo sottolineare
come il nostro amico non fosse completamente digiuno di
programmazione, e quindi i concetti di ciclo, condizione e altri
costrutti basilari dovrebbero essergli familiari (ammetti che un if è
un if, di qualunque linguaggio e sintassi si stia parlando).
Del resto nella mia risposta specificavo molto bene (a parer mio) che
la similitudine fosse sui costrutti di base, e mi pare che fosse
davvero infraintendibile.
Ho ritenuto più produttivo incoraggiare Galois dicendogli che almeno
una base ce l'ha, piuttosto di dirgli "Pascal e C++ non c'entrano
nulla l'uno con l'altro, lascia perdere e fai il boscaiolo".
Non è che ogni post "Voglio imparare a programmare" adesso diventa una
diatriba sulla non paragonabilità di un linguaggio rispetto ad un
altro, eh? Anche perchè, se ci fermiamo alla sintassi, ovviamente
nessun linguaggio può essere paragonato ad un altro, mentre alcuni
concetti sono comuni alla maggior parte dei linguaggi.
Per altro se continuiamo così, finiamo ogni volta OT e nessuno di
quelli che vogliono imparare impara veramente qualcosa.
LoneHawk

 quelli che vogliono imparare impara veramente qualcosa.
Non credo che siamo OT: forse ti senti d'essere OT, perché ti senti
chiamato in causa personalmente, ma è diverso ed è un problema tuo. Dal
canto mio, io so che sto parlando di linguaggi di programmazione in un ng
chiamato it.comp.programmare. Più IT di così, si muore.


 chiamato it.comp.programmare. Più IT di così, si muore.
Intendevo Off Topic rispetto al thread aperto: uno che vuole un
consiglio su come iniziare a programmare può non essere interessato ad
una discussione su quanto differiscano C e C++, o C++ e Pascal, che
può seguire eventualmente in un thread dedicato, ma piuttosto
preferirebbe un consiglio su quali risorse utilizzare o su quale
percorso è meglio intraprendere tra fare l'autodidatta o rivolgersi a
qualche corso.
Per chiudere, ritengo che in un NG ognuno risponda secondo la sua
esperienza, a volte magari in maniera imprecisa, a volte in maniera
incompleta (non si può rispondere ad un thread riportando tutto lo
scibile umano, del resto), ma è la somma e la media delle esperienze
riportate che aiutano chi fa domande generiche (tipo quella di questo
thread), piuttosto che un'unica, precisissima risposta. Se invece la
domanda è di tipo più preciso (esempio stupido: come faccio ad
ordinare un array di interi), le risposte riporteranno gli algoritmi
preferiti descritti in modo completo e preciso, e allora lì sì che un
errore potrebbe costare caro :)
LoneHawk

 errore potrebbe costare caro :)
Un altro errore che può costare caro è quello di consigliare a qualcuno un
linguaggio di programmazione in maniera ambigua, senza distinguere
contesti specifici, perché significa fargli eventualmente perdere tempo e
denaro.
Hai trasformato in "diatriba" ciò che non voleva essere diatriba; ora
torna a fare gli interessi di Galois.


innanzitutto ormai il c++ e' un codice che non si usera' piu' nell'
ambito delle programmazioni, percio' sarebbe meglio che tu' non perda
tempo a studiarlo


Ma non scrivere STRONZATE per cortesia.


Io stavo per girare intorno allo stesso concetto :D
-- 
Lawrence, 
oluyede.org
 - 
neropercaso.it
"It is difficult to get a man to understand 
something when his salary depends on not
understanding it" - Upton Sinclair

 si scrive sempre in linguaggio matlab e poi è possibile esportare in c++?
No e no. Però puoi scrivere in C++ sfruttando le librerie del matlab e/o
caricare e salvare i dati nel formato matlab.
Ciao
  Andrea

 wrote:

Ma per cortesia! E chi l'ha dichiarata questa cosa?
No, perchè io trovo ancora offerte di lavoro per programmatori C++
(oltre naturalmente a tutti gli altri linguaggi nuovi e vecchi...).
Del resto si cercano ancora programmatori COBOL!!!
Lone

 
Tu in che pianeta vivi, scusa?
Perche' nel mio pianeta la realta' e' alquanto diversa da quella che tu 
hai prospettato.

Mi piacerebbe iniziare a programmare ed avevo pensato al c++
Visto che questo thread, a causa di alcuni, sta diventando il trionfo
delle idiozie, ti rispondo per darti quella che, a mio parere, è una
risposta seria :-)
Scegliere il linguaggio migliore se si sta imparando a programmare non
è una scelta facile, anche perché "migliore" può, come al solito,
voler dire tante cose; purtroppo bisogna farlo, perché non si può
prescindere da un linguaggio specifico, per sperimentare e quindi
apprendere l'oceano sterminato di concetti che sono alla base della
programmazione e che, all'inizio, sono di gran lunga più importanti
che le peculiarità dell'una o dell'altra grammatica.
Quando ho iniziato io, la tecnologia hardware era più semplice e la
scelta più facile. Io ho sperimentato con i BASIC su piattaforme
diversissime, per poi passare al Pascal (nelle sue varie vesti), al
Fortran, quindi al C, poi al C++ e Java. I primi anni sono stati
conditi di una buona parte di Assembly x86.
Collateralmente, c'è sempre stato un firmamento di altri linguaggi
"minori" (minori solo per quanto è minore la mia conoscenza di essi).
Ora come ora, quelli che utilizzo tutti i giorni sono C, C++, Delphi e
Java.
Personalmente, mi sento di sconsigliarti di cominciare dal C, perché,
benché ancora molto usato in ambito industriale, è un linguaggio dai
costrutti a dir poco obsoleti e che incita all'uso di strumenti (vedi
i puntatori) che per quanto potenti, sono però fonte di problemi; ho
visto talmente tante persone combattere con i puntatori che posso
dirlo in maniera oggettiva: *sono* fonte di problemi. Se discuti con
un C-ista puro (ed io, pur conoscendo abbastanza bene lo standard ISO
del linguaggio, non mi ritengo tale), ti verrà detto che se stai
attento, i problemi puoi evitarli. Peccato che la formula magica sia
tutta in quel "se". Se posso scegliere se usare un linguaggio in cui
stare obbligatoriamente attento a ciò che faccio e sceglierne invece
uno in cui posso essere più rilassato perché l'accesso alla locazione
end-of-array+1 è gestito, allora preferisco quest'ultimo.  D'altronde,
si tratta di viaggiare in una macchina senza sportelli per 1000
chilometri, _stando attento_ a non cadere, aggrappandoti alla scocca,
piuttosto che viaggiare in una bella berlina chiusa: che sceglieresti
? :-)... Oggi come oggi, è già difficile affrontare la complessità
applicativa di un problema, figuriamoci se nel bilancio complessivo di
questa difficoltà, bisogna contare anche le minuzie tecniche.
Ovviamente questo linguaggio ha anche dei punti positivi: il fatto che
non sia né un low-level language, né un high-level language, ma un
intermediate-level language e quindi ti porta a conoscere aspetti di
basso livello, che in altri linguaggi non è possibile esplorare.
Conoscere cosa c'è "under the hood" aiuta sempre in programmazione.
Questo linguaggio ha, ancora, una buona richiesta sul mercato.
Il C++ è un linguaggio inadatto a cominciare, a mio avviso, perché,
pur avendo regole che lo rendono molto più sicuro del vecchio C, ha
una learning curve veramente ripida e, viste le caratteristiche
altamente complesse (considera che non c'è ancora un compilatore
_totalmente_ conforme allo standard ISO ultimo), un utilizzo
giustificabile sono nella programmazione su larga scala e in ambiti
particolarmente critici. Oramai, secondo me, si può fare a meno del
C++ persino in contesti in cui, fino a poco tempo fa, era considerato
indispensabile. E' ancora molto richiesto dal mercato, però se
deciderai di impararlo seriamente, prefigura che non c'è posto in cui
lo si utilizza al pieno delle sue possibilità. Sono ancora molti i
contesti in cui viene sottosfruttato, essenzialmente come un C con
classi (cosa che C++ non si limita ad essere).
Java è un linguaggio richiestissimo dal mercato, ma che si porta
dietro un mare di preconcetti (giustificati e non) da parte di
moltissima gente. Ci vorrebbero 100.000 righe di messaggio almeno per
descriverli tutti, i vari perché e, magari, confermarne e sconfessarne
alcuni. Le implementazioni di Java sono innumerevoli ed è un
linguaggio con una filosofia che, forse più di altri, ci si deve
sentire di voler abbracciare. Uno dei vantaggi che ha è che, vista la
ricchezza delle sue implementazioni, si riesce ad essere molto
produttivi. Personalmente non mi dispiace e trovo che per ambiti
enterprise, non ci siano molte alternative per fare certe cose. Il
grosso vantaggio di piattaforme ormai divenute standard come JEE è,
oltre quello di fornire dei validi ausilii per lo sviluppo, quello di
guidare il programmatore a fare le cose nel modo più corretto.
Se ora dovessi consigliare a un programmatore quale linguaggio
abbracciare per essere sulla cresta del mercato, non avrei dubbi.
Delphi è un ottimo linguaggio+ambiente di sviuppo (tutti i linguaggi
citati in precedenza sono linguaggi e basta, poi bisogna considerare
le implementazioni specifiche). E' basato su Object Pascal
("anticamente" il core formato dal linguaggio venne chiamato così da
Borland, poi è stato ribattezzato "Delphi", come il nome stesso del
pacchetto). Adesso è pasato dalle mani di Borland a CodeGear. Io lo
adopero essenzialmente per lo sviluppo Win32 e difatti sto aspettando
di mettere le mani su Delphi 2007 studiato espressamente per questa
piattaforma. Ritengo che per lo sviluppo Win32 sia la scelta migliore
in assoluto. Putroppo soffre di un utilizzo di "nicchia", dovuto anche
alla pessima politica di marketing Borland perpetuata negli anni.
La learning curve di Delphi è mediamente ripida; l'unica difficoltà è
padroneggiare al meglio l'ambiente di sviluppo, dominare la
programmazione per componenti. La natura RAD di Delphi è fantastica
per chi vuole cominciare da subito a lavorare su applicazioni con
interfacce (non mi sembra sia il tuo caso). Peccato che ora come ora,
l'ambiente che viene fuori dalla casa madre sia limitato solo alla
piattaforma Win32; in passato c'è stato qualche timido tentativo di
portarlo su Linux, ma Kylix, il clone per Linux, è nato morto. Oggi
c'è Lazarus, open source e basato su Free Pascal, che cerca di
rincorrere Delphi e a quanto pare con buoni (lenti) risultati.
Ci sono molti altri linguaggi, come Python (ottimo, a mio avviso, ma
poco richiesto dal mercato), Ruby (benché "over-hyped" in questo
periodo grazie anche a Ruby-On-Rails), C#, 
VB.NET
 (questi ultimi per
.NET), ecc.. ecc...
Python mi sento di consigliartelo vivamente (come ho fatto con altri
recentemente) perché, affiancandolo a un altro linguaggio (per esempio
C# o Java) che possa farti guadagnare la tua fetta di vendibilità sul
mercato, è un validissimo strumento, e per imparare, e per fare in
modo semplice cose anche molto complesse.  Inoltre, è un linguaggio
completissimo, dai paradigmi di programmazione multipli (compreso
quello funzionale) e una libreria ricchissima e facilmente
estendibile.
Insomma, il ventaglio di possibilità, come vedi, è veramente ampio :-)

 Io stavo per girare intorno allo stesso concetto :D
Beh, i sinonimi si sprecano :P
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.