iniziare a programmare

Pubblicità

superfox4

Utente Attivo
Messaggi
30
Reazioni
2
Punteggio
25
ciao a tutti...sono un ragazzo appassionato di informatica che vorrebbe imparare a programmare...Sono principiante, in quanto non ho mai trattato la programmazione ad aggetti; ho studiato in modo scolastico pascal, tuttavia ho sufficienti conoscenze in php e html.
Vorrei riuscire a fare applicazioni, programmi per windows, realizzare un software vero e proprio. Preferisco iniziare con un linguaggio più rude che mi possa far entrare nell'ottica di un programmatore e che mi possa far comprendere le cose, in modo poi da poter essere facilitato con gli altri linguaggi. Mi hanno consigliato il c ;pensate che possa essere un buon inizio? Avete consigli su qualche manuale o libro per iniziare?

Grazie mille in anticipo
 
Dipende da che risultati vuoi ottenere.

Partendo da qui

Preferisco iniziare con un linguaggio più rude che mi possa far entrare nell'ottica di un programmatore

mi pare di capire che sei interessato a capire un pò come funziona la creazione di software, la progettazione e realizzazione di algoritmi, ecc....

In questo caso il C non è molto indicato perchè ti costringe ad imparare troppe cose riguardo la macchina che non t'interessano.

Altro problema è che tu dici di volere programmare per windows, ma windows attualmente ha millemila API ed è difficile districarsi. Chi ti ha consigliato il C probabilmente vuole farti programmare con l'api win32, ma ci sono le mfc, le wpf di .net, ecc...

In teoria le wpf sono le api più nuove e sono quelle che tutti dovrebbero usare, in pratica ognuno fa come vuole.

Sempre in teoria, chi sviluppa per windows dovrebbe usare .net nella maggior parte dei casi e in particolare c#, però .net è programmabile con un mucchio di linguaggi diversi.

Linguaggi come il C e il C++ ti costringono a conoscere dettagli implementativi della piattaforma windows; potrebbe interessarti o meno a seconda del livello che vuoi raggiungere. All'inizio sarà drammatico, soprattutto se punti sulla programmazione COM. Se usi .net gli angoli sono un pò più smussati, se usi c# è ancora più semplice, ma in generale usare linguaggi come python o java è preferibile perchè astraggono moltissimi concetti relativi a windows.

Questo riguarda solo la piattaforma ufficiale di ms. Ovviamente ci sono tante altre possibilità come, ad esempio, usare C++ con QT in modo da riuscire a creare applicazioni che girano su windows, linux e mac.

In conclusione se vuoi essere un programmatore con la p maiuscola, allora C/C++ si devono quantomeno conoscere, però sono tra i più complessi da apprendere ed utilizzare.
 
Grazie per avermi risposto. Il mio obiettivo è quello di imparare proprio la "logica del programmatore"; creare programmi per windows era un esempio, ma vorrei fare molto altro. Non ho la necessità di scrivere programmi, vorrei sapere quale sia una buona partenza di base in modo che linguaggi successivi potranno essere appresi in modo facilitato.
Io penso che capire veramente come funzioni una macchina voglia dire tanto poichè ( conosco poco, non vorrei sbagliare) tutti i linguaggi sono una sorta di istruzioni che vengono date all'elaboratore; ci sono vari tipi di istruzioni ma penso che il linguaggio macchina sia unico;
Io vorrei proprio imparare quel linguaggio.. poi ripeto correggetemi se sbaglio ( so veramente poco).
 
Grazie per avermi risposto. Il mio obiettivo è quello di imparare proprio la "logica del programmatore"; creare programmi per windows era un esempio, ma vorrei fare molto altro. Non ho la necessità di scrivere programmi, vorrei sapere quale sia una buona partenza di base in modo che linguaggi successivi potranno essere appresi in modo facilitato.
Io penso che capire veramente come funzioni una macchina voglia dire tanto poichè ( conosco poco, non vorrei sbagliare) tutti i linguaggi sono una sorta di istruzioni che vengono date all'elaboratore; ci sono vari tipi di istruzioni ma penso che il linguaggio macchina sia unico;
Io vorrei proprio imparare quel linguaggio.. poi ripeto correggetemi se sbaglio ( so veramente poco).

Se ti interessa il linguaggio macchina allora vuoi sapere come funziona la macchina che è molto diverso dalla logica del programmatore.

Quando si parla di logica allora si parla di algoritmi e della loro codifica in uno dei millemila linguaggi disponibili ma senza minimamente soffermarsi su quale macchina dovrà girare, che sistema operativo ci sarà, ecc...

Il discorso macchina invece è l'opposto, cioè vai a studiare in dettaglia le caratteristiche della macchina, del sistema operativo, ecc....

Nel primo caso python è sicuramente il più veloce e semplice in assoluto. Non sputerei nemmeno su javascript che, nonostante venga ritenuto banale perchè usata per dinamicizzare le pagine web, è un linguaggio che supporta la programmazione event-driven ( che è qualcosa di molto in voga ultimamente ).

Nel secondo caso il C è un must e anzi, se vuoi proprio scendere nei dettagli, devi puntare all'Assembly. Inoltre è conveniente installare linux e programmare da lì per vari motivi non ultimo la disponibilità di molti tutorial e libri gratis ( Guida alla programmazione Linux, Programming ground-up, ecc... ).

Comunque in generale il primo metodo ti permette di concentrarti su come si passa dal problema alla soluzione sotto forma di programma, tralasciando tutto quello che riguarda la macchina. Il secondo include tutti i dettagli riguardanti la macchina e può essere duro da digerire per chi comincia.

Però rimane il fatto che la macchina va studiata e capita in ogni caso, altrimenti non potrai mai programmare avendo una chiara visione di quello che succede sotto il cofano.
 
penso proprio che inizierò con Python o C. Secondo voi è meglio iniziare con il primo o con il secondo? ( per un programmatore alle prime armi)
 
ciao a tutti...sono un ragazzo appassionato di informatica che vorrebbe imparare a programmare...Sono principiante, in quanto non ho mai trattato la programmazione ad aggetti; ho studiato in modo scolastico pascal, tuttavia ho sufficienti conoscenze in php e html.
Vorrei riuscire a fare applicazioni, programmi per windows, realizzare un software vero e proprio. Preferisco iniziare con un linguaggio più rude che mi possa far entrare nell'ottica di un programmatore e che mi possa far comprendere le cose, in modo poi da poter essere facilitato con gli altri linguaggi. Mi hanno consigliato il c ;pensate che possa essere un buon inizio? Avete consigli su qualche manuale o libro per iniziare?

Grazie mille in anticipo

Ciao :) sono uno sviluppatore di professione e ti do qualche consiglio dato dalla mia esperienza :

Lascia perdere inizialmente linguaggi che si appoggiano a pesanti framework come ad esempio c#,vb.net,python e java ed incomincia a studiare la semantica ma sopratutto la logica di linguaggi non OOP come ad esempio il "glorioso" C.

Perchè questo?Semplicemente perchè conoscendo pregi e difetti di linguaggi aventi paradigmi di programmazione diversi dal paradigma OOP potrai apprezzare a pieno la OOP.

Io ti consiglierei di seguire questo percorso :

1) Conoscenza base del C (linguaggio imperativo,di alto livello, ottimo per la comprensione della logica di programmazione e utilissimo se non indispensabile per software low-level come firmware, Sistemi operativi etc)

2) C++ (linguaggio OOP, di alto livello. Provenendo dal C ti risulterà facilmente comprensibile e potrà darti solide basi per quanto riguarda la programmazione ad oggetti), puoi utilizzare il framework QT di Nokia per le GUI.

3) Qualsiasi altro linguaggio OOP come ad esempio C# o Java (tenendo presente i limiti che possiedono, ad esempio c# si basa sul framework .net che "nativamente" girà solo su SO Windows, java si appoggia sulla Virtual Machine etc...)

Come vedi, sono tutti linguaggi di alto livello e non dovrai, per il momento, impastarti in linguaggio complicati ed a basso livello come l'assembly.

Grazie al C ed al C++ puoi capire determinate logiche che altri linguaggi "nascondono" perchè già implementate nel framework.

E' ovvio quanto banale non poter conoscere a pieno tutti i linguaggi elencati, ma una buona infarinatura ti sarà sicuramente utile.

Incominciare subito con linguaggi che io definisco "produttivi" (java,c#,python) è inutile perchè in questo caso tu devi seguire un percorso "accademico" e nessuno ti mette il fiato sul collo ;)

Buona fortuna!
 
Ciao :) sono uno sviluppatore di professione e ti do qualche consiglio dato dalla mia esperienza :

Lascia perdere inizialmente linguaggi che si appoggiano a pesanti framework come ad esempio c#,vb.net,python e java ed incomincia a studiare la semantica ma sopratutto la logica di linguaggi non OOP come ad esempio il "glorioso" C.

Perchè questo?Semplicemente perchè conoscendo pregi e difetti di linguaggi aventi paradigmi di programmazione diversi dal paradigma OOP potrai apprezzare a pieno la OOP.

Io ti consiglierei di seguire questo percorso :

1) Conoscenza base del C (linguaggio imperativo,di alto livello, ottimo per la comprensione della logica di programmazione e utilissimo se non indispensabile per software low-level come firmware, Sistemi operativi etc)

2) C++ (linguaggio OOP, di alto livello. Provenendo dal C ti risulterà facilmente comprensibile e potrà darti solide basi per quanto riguarda la programmazione ad oggetti), puoi utilizzare il framework QT di Nokia per le GUI.

3) Qualsiasi altro linguaggio OOP come ad esempio C# o Java (tenendo presente i limiti che possiedono, ad esempio c# si basa sul framework .net che "nativamente" girà solo su SO Windows, java si appoggia sulla Virtual Machine etc...)

Come vedi, sono tutti linguaggi di alto livello e non dovrai, per il momento, impastarti in linguaggio complicati ed a basso livello come l'assembly.

Grazie al C ed al C++ puoi capire determinate logiche che altri linguaggi "nascondono" perchè già implementate nel framework.

E' ovvio quanto banale non poter conoscere a pieno tutti i linguaggi elencati, ma una buona infarinatura ti sarà sicuramente utile.

Incominciare subito con linguaggi che io definisco "produttivi" (java,c#,python) è inutile perchè in questo caso tu devi seguire un percorso "accademico" e nessuno ti mette il fiato sul collo ;)

Buona fortuna!

ciao @KataKlisma,vorrei cominciare a programmare pure io,o meglio cominciare a capire qualcosa.
potersti indicarmi cosa scaricare?quali guide seguire?quali siti,forum.
quali pc utilizzare,se è meglio una macchina "obsoleta" o una "moderna".
potresti essere così gentile da postarmi alcuni link?
ho da poco cominciato a studiare il c++ e l'html,ma non ci ho capito tanto,se sei programmatore per professione dammi una mano.
se puoi elencarmi testi da acquistare sono disposto a farlo,a qualsiasi prezzo.
la mia passione "è" il pc,da anni,ma per me adesso è il momento di entrare più in profondità,ho bisogno,ho voglia di capire,dal primo all'ultimo bit.

grazie in anticipo

mario@mone
 
ciao @KataKlisma,vorrei cominciare a programmare pure io,o meglio cominciare a capire qualcosa.
potersti indicarmi cosa scaricare?quali guide seguire?quali siti,forum.
quali pc utilizzare,se è meglio una macchina "obsoleta" o una "moderna".
potresti essere così gentile da postarmi alcuni link?
ho da poco cominciato a studiare il c++ e l'html,ma non ci ho capito tanto,se sei programmatore per professione dammi una mano.
se puoi elencarmi testi da acquistare sono disposto a farlo,a qualsiasi prezzo.
la mia passione "è" il pc,da anni,ma per me adesso è il momento di entrare più in profondità,ho bisogno,ho voglia di capire,dal primo all'ultimo bit.

grazie in anticipo

mario@mone

Fa sempre piacere leggere gente così motivata!

Bisognerebbe sapere un po di cose prima : età, conoscenze matematiche/informatiche, capacità di apprendimento etc...

dicci un po più di te e noi ti diamo una mano ;)
 
Fa sempre piacere leggere gente così motivata!

Bisognerebbe sapere un po di cose prima : età, conoscenze matematiche/informatiche, capacità di apprendimento etc...

dicci un po più di te e noi ti diamo una mano ;)

allora @kata,la mia eta è abbastanza avanzata per cominciare a studiare alcune cose credo,ho quasi 27 anni,conoscienze matematiche a dire il vero,sono messo maluccio,comunque ho il diploma di ragioneria se può interessarti,solo che a 26 anni e passa non ricordo molto ormai:(.
conoscienze informatiche non sò a cosa tu ti possa riferire,ma i pc li conosco bene,capacità di apprendimento penso di averne abbastanza,
in teoria tanto più si è motivati,tanto più si apprende.

se vuoi sapere nello specifico alcune cose riguardo alla capacità informatica,chiedi pure che ti risponderò;).
nel web c'è molta confusione,mi servirebbe qualcuno che mi dia alcune dritte,consigliandomi testi,guide on line etc.
ad esempio quali compilatori usare,sto usando devc++ adesso,e noto alcune cose strane;
esempio e scusate la banalità ma sono un neofita dell'argomento,quindi dicevo se con devc++ compilo il classico ("ciao mondo"); etc e quindi lo compilo e l'ancio l.exe,succede che la finestra di console appare solo per una frazione di secondo e si chiude in automatico,senza che io prema alcun tasto.
è un sorgente troppo corto per la mia configurazione?.
scusate la banalità.
aspetto chiarimenti,testi etc,ma vorrei iniziare dalle fondamenta del discorso.
grazie @kata.
 
invece il pascal non è affatto adatto secondo voi per iniziare?
io a scuola ho fatto 2 mesi html(che però c'entra ben poco con la programmazione ^^) e fino a giugno pascal :P
e negli ultimi mesi ci avevano spiegato anche assembler (orrible :lol:)
ormai so gestire bene vettori(fino a bidimensionali), stringhe...
l'anno prossimo programmazione ad oggetti...


ora so che pascal dovrebbe essere un linguaggio molto limitato, ma rispetto a c (del quale ho solo dato un po' di occhiate ogni tanto) mi sembra molto più semplice (la struttura dell'algoritmo) e dovendo studiare da solo credo che per iniziare sia molto più semplice, perchè da quello che ho visto, penso che sia davvero difficile studiare queste cose da soli, soprattutto se si parte da zero...

però quando capisci di riuscire a are bene qualcosa poi regala anche parecchie soddisfazioni :ok:

ps. @MARIOIncludi la libreria windows.h e usa la funzione
codice:Sleep(numerodimillisecondi)
es. per attendere un se prima di uscire se messo alla fine:
Sleep(1000)
Sleep con la S maiuscola.
 
Anche io ho cominciato con il C, che consiglio perchè da molti definito come il linguaggio "più a basso livello fra i linguaggi di alto livello e al più alto livello tra quelli di basso livello".

Programmare di per sè non è la cosa più difficile, perchè realizzare un software che faccia egregiamente il proprio lavoro implica che si abbia la minima conoscenza del funzionamento dell'hardware (prendi ad esempio l'importanza dei puntatori).

Python aiuta a cominciare, ma IMO è consigliato a chi non ha davvero bisogno di giocare a fare Dio con il PC.

=)
Esperienza personale, condivisibile o no ;-)
 
mi unisco anche io alla discussione, visto che mi trovo nelle stesse condizioni dell'utente sopra... sto utilizzando come compilatore Windows Cygwin, riesco a compilare il file (il classico "Hello world"), ma quando avvio l'eseguibile Windows mi restituisce l'errore che non trova il file cygwin1.dll, pur essendo questo presente nella cartella System32...
come mai?
 
mi unisco anche io alla discussione, visto che mi trovo nelle stesse condizioni dell'utente sopra... sto utilizzando come compilatore Windows Cygwin, riesco a compilare il file (il classico "Hello world"), ma quando avvio l'eseguibile Windows mi restituisce l'errore che non trova il file cygwin1.dll, pur essendo questo presente nella cartella System32...
come mai?

perchè usi cygwin??? è una cosa decisamente strana ed è un pò come andarsi a cercare rogne :D

se programmi sotto windows usa i compilatori microsoft altrimenti avrai problemi a non finire, dalle dll che non trova al non supporto delle nuove api

se programmi sotto linux vai di linux

p.s. sotto windows è preferibile mingw invece di cygwin se proprio non si vuole usare visual studio
 
Anche io ho cominciato con il C, che consiglio perchè da molti definito come il linguaggio "più a basso livello fra i linguaggi di alto livello e al più alto livello tra quelli di basso livello".

Python aiuta a cominciare, ma IMO è consigliato a chi non ha davvero bisogno di giocare a fare Dio con il PC.

vero, bisogna considerare un mucchio di cose quando si sceglie un linguaggio

ovviamente il discorso è ben diverso per chi vuole semplicemente imparare...in questo caso deve decidere cos'ha necessità di imparare innanzitutto

python è un ottimo strumento per la prototipazione del software e per apprendere le basi della programmazione dal punto di vista logico

ovviamente è inadatto per progetti che richiedono performance estreme o manipolazione delle strutture dati a basso livello

in questi casi il C/C++/Pascal ed altri linguaggi più hard entrano in gioco

Programmare di per sè non è la cosa più difficile, perchè realizzare un software che faccia egregiamente il proprio lavoro implica che si abbia la minima conoscenza del funzionamento dell'hardware (prendi ad esempio l'importanza dei puntatori).
non immagini quanta gente non riesce a trasformare un problema in algoritmo e poi in codice :D

la parte difficile è riuscire ad aprire la mente e farla funzionare come un generatore di idee piuttosto che come un'enciclopedia ( come purtroppo la scuola italiana ci abitua a fare )

superato questo scoglio è solo questione di mettersi sotto per approfondire il funzionamento della macchina che ovviamente non si può sempre non conoscere
 
Pubblicità
Pubblicità
Indietro
Top