View Full Version : Da che parte cominciare a programmare
GeNiO790
11-03-2014, 10:27
Buongiorno! E' un po' che ci penso, mi piacerebbe imparare a programmare/compilare qualcosina, anche delle stupidaggini, per poi passare piano piano a qualcosa di più "importante", insomma, mi piacerebbe imparare a programmare. Ho visto che ci sono una miriade di linguaggi, essendo io un completo neofita, da dove mi consigliate di cominciare? Come farlo? Grazie in anticipo a chi mi risponderà! ;)
P.S. Ho un windows 7 a disposizione! :)
Daniels118
11-03-2014, 11:38
E' mia abitudine consigliare di cominciare da un buon libro di programmazione, lo pseudocodice dovrebbe andar bene.
E' vero che la programmazione è una materia molto pratica, ma è meglio prima capire e poi mettere in pratica. Altrimenti si rischia di incorrere nel metodo "proviamo così" e succedono pasticci.
Se non vuoi spendere soldi per un libro puoi anche seguire un corso online, ma che sia un corso di "programmazione" e non su un linguaggio specifico.
GeNiO790
11-03-2014, 12:06
E' mia abitudine consigliare di cominciare da un buon libro di programmazione, lo pseudocodice dovrebbe andar bene.
E' vero che la programmazione è una materia molto pratica, ma è meglio prima capire e poi mettere in pratica. Altrimenti si rischia di incorrere nel metodo "proviamo così" e succedono pasticci.
Se non vuoi spendere soldi per un libro puoi anche seguire un corso online, ma che sia un corso di "programmazione" e non su un linguaggio specifico.
Era proprio mia intenzione quella di farlo gratuitamente, sapresti indicarmi qualche link? Inoltre, da che linguaggio consiglieresti di partire una volta studiata la programmazione?
Daniels118
11-03-2014, 12:21
Per avere una buona infarinatura potresti iniziare da qui http://www.html.it/guide/guida-programmazione-di-base/
è una lettura abbastanza leggera.
Come linguaggio a scopo didattico ti consiglierei il pascal, una volta che avrai familiarizzato con i concetti di base potrai affrontare tecniche di programmazione più elaborate e studiare linguaggi più giovani.
GeNiO790
11-03-2014, 12:26
Per avere una buona infarinatura potresti iniziare da qui http://www.html.it/guide/guida-programmazione-di-base/
è una lettura abbastanza leggera.
Come linguaggio a scopo didattico ti consiglierei il pascal, una volta che avrai familiarizzato con i concetti di base potrai affrontare tecniche di programmazione più elaborate e studiare linguaggi più giovani.
Beh diciamo che mi sono preso avanti, nel senso che quella guida l'ho gia letta! avevo cominciato a leggere la guida (dello stesso sito) per imparare a programmare in C dato che più di qualcuno consigliava quello per cominciare, dato che è alla base di tutti gli altri linguaggi, però mi trovo in difficoltà con la scelta del compilatore... non so quale scegliere...
Daniels118
11-03-2014, 13:17
Se hai già cominciato va bene, continua pure con quello.
Il compilatore che devi installare è senza dubbio MinGW.
Esistono anche degli IDE che contengono già il compilatore al loro interno (es. Orwell Dev-C++, Code::Blocks, Eclipse...). Gli IDE sono molto comodi perché consentono di automatizzare la compilazione e facilitare la scrittura dei programmi grazie a numerose caratteristiche. Se installi un IDE prova comunque a compilare un programma "a mano" per capire come funzionano i processi di compilazione e link-edit.
GeNiO790
11-03-2014, 13:47
Se hai già cominciato va bene, continua pure con quello.
Il compilatore che devi installare è senza dubbio MinGW.
Esistono anche degli IDE che contengono già il compilatore al loro interno (es. Orwell Dev-C++, Code::Blocks, Eclipse...). Gli IDE sono molto comodi perché consentono di automatizzare la compilazione e facilitare la scrittura dei programmi grazie a numerose caratteristiche. Se installi un IDE prova comunque a compilare un programma "a mano" per capire come funzionano i processi di compilazione e link-edit.
E' proprio quello che voglio fare, partire dalle basi! Quindi ho scaricato MinGW. Ora mi trovo di fronte a una finestra "MinGEW installation manager" mi da una serie di voci da selezionare quele devo selezionare?
Daniels118
11-03-2014, 14:01
Suppongo che per "voci" intendi i compilatori da installare, in questo caso devi selezionare quello per il C.
GeNiO790
11-03-2014, 15:08
Suppongo che per "voci" intendi i compilatori da installare, in questo caso devi selezionare quello per il C.
Quello che ho è questo: https://www.dropbox.com/s/zd50mq1h9rwf8ap/MinGW.jpg
ma ora non capisco che devo fare!! :(
Quello che ho è questo: https://www.dropbox.com/s/zd50mq1h9rwf8ap/MinGW.jpg
ma ora non capisco che devo fare!! :(
Mi pare semplice. Le cose in verde, selezionale. Io aggiungerei anche il g++ metti che inizi pure col c++ ;)
GeNiO790
11-03-2014, 15:33
Mi pare semplice. Le cose in verde, selezionale. Io aggiungerei anche il g++ metti che inizi pure col c++ ;)
Quelle in verde sono quelle che ho gia selezionato e installato... ora??
Daniels118
11-03-2014, 15:39
Ora se vai nella cartella dove li hai installati dovresti trovare una sottocartella denominata "bin" contenente una serie di file .exe, tra i quali troverai il compilatore e il linker.
GeNiO790
11-03-2014, 16:03
Ora se vai nella cartella dove li hai installati dovresti trovare una sottocartella denominata "bin" contenente una serie di file .exe, tra i quali troverai il compilatore e il linker.
Ce ne sono parecchi con estensione .exe, come faccio a capire quali sono quelli che mi interessano?
ingframin
11-03-2014, 16:15
Ma non era meglio partire da Python?
http://www.python.it
http://www.python.it/doc/Howtothink/HowToThink_ITA.pdf
http://www.diveintopython3.net/
http://inventwithpython.com/
Molto meno incasinato da far partire e sicuramente meno complicato del Pascal.
Daniels118
11-03-2014, 18:51
Ce ne sono parecchi con estensione .exe, come faccio a capire quali sono quelli che mi interessano?
Dovresti avere gcc.exe che è un'interfaccia per gli altri programmi, impostando le opzioni opportune riesci ad eseguire tutto, comunque nella guida che stai seguendo ci sarà scritto sicuramente quali programmi richiamare per svolgere determinate operazioni.
Daniels118
11-03-2014, 19:04
Ma non era meglio partire da Python?
http://www.python.it
http://www.python.it/doc/Howtothink/HowToThink_ITA.pdf
http://www.diveintopython3.net/
http://inventwithpython.com/
Molto meno incasinato da far partire e sicuramente meno complicato del Pascal.
Esiste un'eterna diatriba tra i programmatori, i quali difendono ad ogni costo il proprio linguaggio preferito. Poiché non è mia intenzione, né mi sembra questo il luogo adatto per discutere su quale sia il linguaggio migliore per fare questo o quello, mi limito a suggerire il linguaggio che viene più utilizzato in ambito didattico per spiegare come si programma, e non quanto sia bello il linguaggio stesso.
Il pascal non è né il più diffuso né il più evoluto, semplicemente se cerchi esempi in pascal hai una bassa probabilità di trovare un corso sui millemila package e librerie integrate del linguaggio, o sulla programmazione ad oggetti che presume già una discreta conoscenza della programmazione strutturata, o sui design patterns che detto così sembra solo una brutta parola.
GeNiO790
11-03-2014, 19:50
Dovresti avere gcc.exe che è un'interfaccia per gli altri programmi, impostando le opzioni opportune riesci ad eseguire tutto, comunque nella guida che stai seguendo ci sarà scritto sicuramente quali programmi richiamare per svolgere determinate operazioni.
Grazie! Se dovessi avere ancora bisogno richiederò! Grazie!!
cdimauro
11-03-2014, 23:17
Ma non era meglio partire da Python?
http://www.python.it
http://www.python.it/doc/Howtothink/HowToThink_ITA.pdf
http://www.diveintopython3.net/
http://inventwithpython.com/
Molto meno incasinato da far partire e sicuramente meno complicato del Pascal.
Assolutamente d'accordo. Non c'è niente di meglio di Python per iniziare a programmare. E parlo da (ex) pascaliano.
Il consiglio che posso dare per iniziare e' assolutamente NON fare NIENTE di quello che ha detto Daniels118 :asd:
-leggi sempre roba in inglese, in particolare html.it e' sbagliato, approssimativo e superficiale e per non imparare cose sbagliate e' meglio non entrarci nemmeno. In genere, l'inglese e' il primo "linguaggio" da imparare.
-sperimenta sempre, sperimenta tutto, quando hai domande c'e' StackOverflow
-Pascal e' morto 20 anni fa e qualunque linguaggio moderno e' migliore anche per imparare (python non e' male, aggiungo Learn Python the Hard Way (http://learnpythonthehardway.org/book/) per studiarselo)
-DevC++ e' morto 8 anni fa e per favore lasciatelo in pace, era un pessimo IDE all'epoca e oggi e' pietoso. Come IDE per C++ (che poi non doveva essere Pascal...?) Visual Studio Express e XCode sono gratuiti. Eclipse anche e' malemale, CDT e' pessimo e per Java e' meglio IntelliJ.
-gcc e' un compilatore eccellente ma MinGW (il porting su win) fa pieta'... anche qua e' meglio Visual Studio, anche se purtroppo/per fortuna non e' pensato per essere usato da linea di comando, al contrario di gcc.
Daniels118
12-03-2014, 07:25
Il consiglio che posso dare per iniziare e' assolutamente NON fare NIENTE di quello che ha detto Daniels118 :asd:
-leggi sempre roba in inglese, in particolare html.it e' sbagliato, approssimativo e superficiale e per non imparare cose sbagliate e' meglio non entrarci nemmeno. In genere, l'inglese e' il primo "linguaggio" da imparare.
-sperimenta sempre, sperimenta tutto, quando hai domande c'e' StackOverflow
-Pascal e' morto 20 anni fa e qualunque linguaggio moderno e' migliore anche per imparare (python non e' male, aggiungo Learn Python the Hard Way (http://learnpythonthehardway.org/book/) per studiarselo)
-DevC++ e' morto 8 anni fa e per favore lasciatelo in pace, era un pessimo IDE all'epoca e oggi e' pietoso. Come IDE per C++ (che poi non doveva essere Pascal...?) Visual Studio Express e XCode sono gratuiti. Eclipse anche e' malemale, CDT e' pessimo e per Java e' meglio IntelliJ.
-gcc e' un compilatore eccellente ma MinGW (il porting su win) fa pieta'... anche qua e' meglio Visual Studio, anche se purtroppo/per fortuna non e' pensato per essere usato da linea di comando, al contrario di gcc.
Esattamente quello di cui parlavo sopra.
Esattamente quello di cui parlavo sopra.
Quindi, l'unico che consiglia un linguaggio in modo disinteressato sei te che consigli tutta roba che non ha un motivo valido per essere usata, non uno che ha usato davvero tutto quello che ha consigliato e parla con cognizione di causa? :D
ingframin
12-03-2014, 14:23
Esiste un'eterna diatriba tra i programmatori, i quali difendono ad ogni costo il proprio linguaggio preferito. Poiché non è mia intenzione, né mi sembra questo il luogo adatto per discutere su quale sia il linguaggio migliore per fare questo o quello, mi limito a suggerire il linguaggio che viene più utilizzato in ambito didattico per spiegare come si programma, e non quanto sia bello il linguaggio stesso.
Il pascal non è né il più diffuso né il più evoluto, semplicemente se cerchi esempi in pascal hai una bassa probabilità di trovare un corso sui millemila package e librerie integrate del linguaggio, o sulla programmazione ad oggetti che presume già una discreta conoscenza della programmazione strutturata, o sui design patterns che detto così sembra solo una brutta parola.
Guarda che Pascal non si usa piu' neanche a scuola...
Io ho fatto il primo anno di ingegneria 11 anni fa e gia' si era passati da Pascal a Java da parecchio.
Ora la tendenza che vedo e' di usare Python al primo anno di ingegneria e anche di informatica.
Inoltre su python si trovano un sacco di corsi e tutorial per partire da zero, anche su udacity per esempio.
Se cerchi CS101 trovi corsi di python a bizzeffe.
Inoltre e' un linguaggio moderno, che ha tutto quello che serve, pochissimi scazzi di installazione per un neofita e ti consente di provare qualsiasi stile di programmazione.
Perche' complicarsi la vita con Pascal se si puo' avere di meglio?
A questo punto, vecchio per vecchio, perche' non usare il beginner all-purpose symbolic instruction code (altresi' detto BASIC)?
http://www.freebasic.net/
Io (e come me molti) ho iniziato in basic ad esempio che all'epoca era un poco "il python della situazione" se mi lasciate passare questa metafora...
pabloski
12-03-2014, 15:06
Grazie! Se dovessi avere ancora bisogno richiederò! Grazie!!
Se in futuro dovesse servirti, considera questo http://www.codeblocks.org/downloads/26
E' un IDE molto semplice, niente funzionalità spaziali che possono portarti fuori strada, ed include già il compilatore C/C++ e il debugger.
GeNiO790
12-03-2014, 15:23
Se in futuro dovesse servirti, considera questo http://www.codeblocks.org/downloads/26
E' un IDE molto semplice, niente funzionalità spaziali che possono portarti fuori strada, ed include già il compilatore C/C++ e il debugger.
che cosa lo differenzia da dev-cpp? Comunque in linea di massima si consiglia il phyton per iniziare da zero...
pabloski
12-03-2014, 16:00
che cosa lo differenzia da dev-cpp?
Dev aveva parecchi bug, poi è stato sospeso dal 2005 fino ( a quanto leggo ) a novembre 2013. Praticamente era un progetto morto, ora non so in che stato sta.
Codeblocks, invece, è un progetto che va avanti da anni.
mone.java
12-03-2014, 16:25
Il motivo per cui viene insegnato python è la sua immensa semplicità (lo so lo sanno tutti m a quanto pare no)... Partiamo dal fatto che, come già detto da molti, partire con il pascal è inutile e controproducente...
Python:
print "Hello World!"
Java:
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Come si può ben vedere il programma Java usa 4 parole chiave, il concetto di classe, il concetto di passaggio di parametro a una funzione, il concetto di array.. Io ho iniziato con java nel 2006, ho sempre usato Java (ho continuato a usarlo negli anni ma comunque ho utilizzato molti altri linguaggi per scopi più o meno seri), uso tutt'ora Java ed è un linguaggio che adoro! Ma dopo anni che ho suggerito di iniziare con Java recentemente mi sono ricreduto.. Semplicemente mi sono ricordato quanta confusione mi facessero tutte quelle parole chiave e "costrutti strani" quando ero agli inizi. Puoi sempre prendere un libro di 500 pagine, leggerti le prime 200, solidificarti i concetti e iniziare con Java (o C#)... Approccio estremamente palloso. È del tutto lecito voler vedere i risultati mano a mano che si procede...
Python is the way... (e ultimamente, in seguito a dalle discussioni al riguardo, mi hanno convinto che anche i linguaggi funzionali tipo scheme sono "buoi" ber iniziare)
C e C++ per ora evitali come la peste, non capisco come una persona che parli con cognizione di causa possa suggerirli come primo linguaggio.. A meno che tu non abbia uno scopo preciso (scrivere un driver, interfacciarte con hardware strano, scrivere un kernel ecc..) è solo controproducente e alle volte frustrante iniziare con questi linguaggi. Ma se il tuo obbiettivo è IMPARARE A PROGRAMMARE (genericamente) allora ribadisco python!
GeNiO790
12-03-2014, 16:47
Il motivo per cui viene insegnato python è la sua immensa semplicità (lo so lo sanno tutti m a quanto pare no)... Partiamo dal fatto che, come già detto da molti, partire con il pascal è inutile e controproducente...
Python:
print "Hello World!"
Java:
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Come si può ben vedere il programma Java usa 4 parole chiave, il concetto di classe, il concetto di passaggio di parametro a una funzione, il concetto di array.. Io ho iniziato con java nel 2006, ho sempre usato Java (ho continuato a usarlo negli anni ma comunque ho utilizzato molti altri linguaggi per scopi più o meno seri), uso tutt'ora Java ed è un linguaggio che adoro! Ma dopo anni che ho suggerito di iniziare con Java recentemente mi sono ricreduto.. Semplicemente mi sono ricordato quanta confusione mi facessero tutte quelle parole chiave e "costrutti strani" quando ero agli inizi. Puoi sempre prendere un libro di 500 pagine, leggerti le prime 200, solidificarti i concetti e iniziare con Java (o C#)... Approccio estremamente palloso. È del tutto lecito voler vedere i risultati mano a mano che si procede...
Python is the way... (e ultimamente, in seguito a dalle discussioni al riguardo, mi hanno convinto che anche i linguaggi funzionali tipo scheme sono "buoi" ber iniziare)
C e C++ per ora evitali come la peste, non capisco come una persona che parli con cognizione di causa possa suggerirli come primo linguaggio.. A meno che tu non abbia uno scopo preciso (scrivere un driver, interfacciarte con hardware strano, scrivere un kernel ecc..) è solo controproducente e alle volte frustrante iniziare con questi linguaggi. Ma se il tuo obbiettivo è IMPARARE A PROGRAMMARE (genericamente) allora ribadisco python!
Sei stato assolutamente esaustivo e convincente! Nel senso che con questa spiegazione non posso che ascoltare il tuo consiglio e partire col documentarmi! Grazie mille a tutti! ;)
poi per iniziare c'è anche Scratch (http://scratch.mit.edu)
cdimauro
12-03-2014, 18:19
Se in futuro dovesse servirti, considera questo http://www.codeblocks.org/downloads/26
E' un IDE molto semplice, niente funzionalità spaziali che possono portarti fuori strada, ed include già il compilatore C/C++ e il debugger.
Potresti spiegare la parte che ho evidenziato?
Inoltre come mai non consigli Visual Studio, che è nettamente più semplice e ben più completo da utilizzare?
pabloski
12-03-2014, 19:02
Inoltre come mai non consigli Visual Studio, che è nettamente più semplice e ben più completo da utilizzare?
Per l'appunto. E' completo, ha un sacco di funzionalità. Tutta roba che può portare un neofita fuori strada.
cdimauro
12-03-2014, 19:21
Il fatto di avere molte funzionalità non implica che il prodotto sia difficile da usare. Conta in che modo vengano esposte.
Per un neofita Visual Studio rimane di gran lunga da preferire proprio perché coi wizard e pochi, semplici, click è in grado di creare un progetto, scrivere subito il codice, premendo il tasto "Play" eseguirlo immediatamente senza bisogno di sapere cos'è un compilatore, un linker, e tanto meno un makefile.
Puoi dire lo stesso di CodeBlocks o, in generale, di qualunque altro IDE?
Daniels118
12-03-2014, 19:25
Guarda che Pascal non si usa piu' neanche a scuola...
Io ho fatto il primo anno di ingegneria 11 anni fa e gia' si era passati da Pascal a Java da parecchio.
Ora la tendenza che vedo e' di usare Python al primo anno di ingegneria e anche di informatica.
Inoltre su python si trovano un sacco di corsi e tutorial per partire da zero, anche su udacity per esempio.
Se cerchi CS101 trovi corsi di python a bizzeffe.
Inoltre e' un linguaggio moderno, che ha tutto quello che serve, pochissimi scazzi di installazione per un neofita e ti consente di provare qualsiasi stile di programmazione.
Perche' complicarsi la vita con Pascal se si puo' avere di meglio?
A questo punto, vecchio per vecchio, perche' non usare il beginner all-purpose symbolic instruction code (altresi' detto BASIC)?
http://www.freebasic.net/
Io (e come me molti) ho iniziato in basic ad esempio che all'epoca era un poco "il python della situazione" se mi lasciate passare questa metafora...
Che dire, hanno ragione i miei colleghi, sono vecchio... :boh:
sottovento
13-03-2014, 06:57
<Cut>
-leggi sempre roba in inglese
<Cut>
Scusami Tommo per questo mio intervento, ma questa frase mi fa pensare.
Ne conosco alcune simili, per esempio:
- NON CREDETEMI
Bella,vero?
un'altra: immagina di trovare scritto, su un muro:
LA FRASE SCRITTA SUL MURO DI FRONTE E' VERA
mentre sul muro di fronte c'e' scritto:
LA FRASE SCRITTA SUL MURO DI FRONTE E' FALSA
La tua andrebbe un po' perfezionata, ma quasi ci siamo ;)
(non prendertela, dai :D )
Che dire, se vuoi la riscrivo in inglese :asd:
Comunque intendevo ovviamente leggi sempre <roba sulla programmazione> in inglese, gli e' permesso di continuare a parlare l'italiano normalmente :asd:
Che dire, se vuoi la riscrivo in inglese :asd:
Comunque intendevo ovviamente leggi sempre <roba sulla programmazione> in inglese, gli e' permesso di continuare a parlare l'italiano normalmente :asd:
Ma va benissimo così. Il tuo era un enunciato imperativo, quelli da lui citati sono dichiarativi e paradossali (capitolo credenza & conoscenza a parte tra l'altro). Semmai è lui che deve spiegarti per quali valori di "simili" e "perfezionata" intendeva scherzarti ;)
sottovento
13-03-2014, 13:15
Ma va benissimo così. Il tuo era un enunciato imperativo, quelli da lui citati sono dichiarativi e paradossali (capitolo credenza & conoscenza a parte tra l'altro). Semmai è lui che deve spiegarti per quali valori di "simili" e "perfezionata" intendeva scherzarti ;)
No, dai! Prima di tutto si faceva per ridere, tutti su questo forum conoscono e stimano Tommo, ed anch'io non posso che apprezzarne gli interventi. Questo e' fuori discussione.
Ad ogni modo
NON CREDETEMI
la ritieni dichiarativa? :D
anche a me piacerebbe saper programmare,sto guardando come funziona un po la cosa con python,pero ho un dubbio, quando uno ha imparato ,che cosa si può fare con questa conoscenza?cioe che tipo di lavori si può fare?
mone.java
15-03-2014, 16:00
anche a me piacerebbe saper programmare,sto guardando come funziona un po la cosa con python,pero ho un dubbio, quando uno ha imparato ,che cosa si può fare con questa conoscenza?cioe che tipo di lavori si può fare?
Dipende, se già hai un qualche tipo di lavoro che richiede l'utilizzo del computer è facile trovare alcune attività da ottimizzare/automatizzare/velocizzare... Altrimenti in genere si finisce a fare i programmatori/amministratori di sistema.. Nel secondo caso è necessario qualche anno di pratica...
Sent from my GT-I9300 using Tapatalk
The_ouroboros
15-03-2014, 18:13
rails, che sto adocchiando in questi giorni, non è male.
E' semplice, veloce e subito spendibile.
Ti parlo da sistemista e Ruby non è malaccio nemmeno per scripting (Puppet, Cheff):D
The_ouroboros
15-03-2014, 18:14
anche a me piacerebbe saper programmare,sto guardando come funziona un po la cosa con python,pero ho un dubbio, quando uno ha imparato ,che cosa si può fare con questa conoscenza?cioe che tipo di lavori si può fare?
Usi quello che sai per far lavorare il pc e non tu.
Più automatizzi, meno sbagli, più sei veloce... e contento ;)
Usi quello che sai per far lavorare il pc e non tu.
Più automatizzi, meno sbagli, più sei veloce... e contento ;)
col pc non so dare nulla tipo adobe ecc..però io non ho delle idee di cosa fare una volta imparato.
ingframin
17-03-2014, 13:58
col pc non so dare nulla tipo adobe ecc..però io non ho delle idee di cosa fare una volta imparato.
Essenzialmente dipendera' dal mestiere che vai a fare. Io programmo essenzialmente script per elaborare dati di test di componenti elettronici,
c'e' gente che fa web applications... Il mondo e' bello perche' e' vario! :D
Essenzialmente dipendera' dal mestiere che vai a fare. Io programmo essenzialmente script per elaborare dati di test di componenti elettronici,
c'e' gente che fa web applications... Il mondo e' bello perche' e' vario! :D
grazie a tutti per le delucidazioni ;) vedo che si protrà fare piu di un lavoro:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.