|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2011
Messaggi: 36
|
iniziare a programmare
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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Confermo che il C è un buon linguaggio per iniziare, abbastanza lineare con però un problema: molto "libertino"... in altre parole puoi smanettarci parecchio ma richiede molta attenzione per essere debuggato in quanto il compilatore lascia molta libertà al programmatore permettendogli di fare anche cose che in altri linguaggi ti verrebbero segnalati come errori ancor prima di compilare (per esempio sforare un vettore o scrivere in una locazione di memoria ignota).
Java è abbastanza semplice ed è "scalabile" in difficoltà, tuttavia devi avere ben chiari i concetti teorici di classi, oggetti, ereditarietà, eccezioni... Di fatto alle superiori mi fecero iniziare con il C (se vogliamo escludere il Pascal ) però devi procurarti un buon libro.In questo forum c'è un thread con riferimenti a guide e libri: http://www.hwupgrade.it/forum/showthread.php?t=801695 non so se siano buoni o no però...
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Generalmente questi 3D scatenano dei vespai.
Il C non è il massimo in quanto ti "avvicina" troppo alla macchina. Per imparare a programmare senza perdersi troppo nei dettagli implementativi sarebbe meglio un linguaggio che consente un maggior livello di astrazione, per esempio Python o Java. Per la cronaca, io sono partito dal C (escludendo il Visual Basic usato a scuola, ma lasciamo perdere) e questa è l'idea che mi son fatto.
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Eh già
sicuramente adesso qualcuno suggerirà ruby, qualcuno C# e chissà cos'altro... ovviamente sono opinioni soggettive e rispettabili.La mia opinione si basa semplicemente sull'ordine in cui insegnano negli istituti tecnici, pienamente coscente che il C può risultare una brutta bestia per un programmatore poco attento E ora che ci penso è anche vero che mentre studiavo C, nelle ore di sistemi studiavamo il processore e la gestione della memoria, il che aiutava non poco a capire il C. Forse si, è meglio qualcos'altro... l'importante è avere un buon testo di riferimento. ps: aiuterebbe sapere cosa vorresti fare programmando
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2009
Città: Varese
Messaggi: 205
|
Parti dal web
perchè? perchè è piu immediato linguaggio PHP perchè? perchè è piu veloce insomma quando si vuole iniziare a fare una cosa come la programmazione, dal mio punto di vista, uno si aspetta risultati subito.. be con quello scritto sopra penso che hai i risultati più veloci |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
I risultati "subito" si ottengono più facilmente con quello che ho in firma.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Se il tuo obbiettivo è creare applicazione desktop per windows lascia perder il C. Scaricati la versione express di visual studio dal sito della microsoft e comincia ad imparare il c#.
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Piuttosto io ti direi di mettere nero su bianco l'itinerario che vuoi seguire. Da dove parti e dove vuoi arrivare.
Se si ha interesse a giocherellare con i buffer di memoria, direi che non è molto consigliato partire con javascript Di linguaggi ne dovrai studiare parecchi, è scontato, è un dato di fatto in questo mondo. Che poi i linguaggi nascono e muoiono oltretutto. Se si parla di programmazione windows trovi tanti modi per programmarlo, bisogna cominciare a sceglierne uno. Semmai la scelta del linguaggio viene dopo. Però devi decidere la strada da seguire ovvero "me ne frego di quello che fa la macchina" oppure "mi interessa moltissimo sapere quello che fa la macchina". Venendo da php il C non è proprio consigliatissimo. E' come dire che ieri ti limitavi a guidare l'auto e oggi vuoi costruire leghe metalliche per automobili. |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: May 2011
Messaggi: 36
|
ciao a tutti ragazzi e 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). |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Cosa intendi per "logica del programmatore"?
Forse ti è di aiuto conoscere il concetto di "livello" di un linguaggio: più il livello è alto e più la sintassi del linguaggio è comprensibile anche senza conoscenze informatiche approfondite e mette a disposizione delle strutture di controllo intuitive. Di "contro", un linguaggio ad alto livello non evidenzia come effettivamente la macchina processa le istruzioni in quanto c'è un compilatore che dal linguaggio ad alto livello ricava un codice macchina. Un linguaggio a basso livello permette di accedere a operazioni più specifiche fino quasi al linguaggio macchina permettendo una definizione pressochè totale del decorso del programma. Ovviamente scrivere un programma in un linguaggio di basso livello richiede buone conoscenze dell'hardware e molta pazienza perchè lo sviluppo di programmi complessi richiede molto tempo e attenzione. in generale, più basso è il linguaggio e più si riesce a ottimizzare le prestazioni di un codice, a patto di saper programmare bene in quel linguaggio Non ho ben capito cosa tu intenda fare, tuttavia se intendi conoscere in dettaglio come un elaboratore processa le singole istruzioni macchina, devi conoscere anche come in generale l'hardware di un elaboratore funziona (registri, memoria, indirizzamenti, cicli di fetch-execute, contatori interni, flags...) e il linguaggio che ti permette di dire passo-passo al processore cosa fare è l'assembly. Tuttavia non è nemmeno vero che tutti i calcolatori riconoscono lo stesso linguaggio macchina, infatti tipi diversi di processori possono disporre di set di istruzioni diverse. E' anche per questo che esistono i linguaggi ad alto livello, in quanto un codice scritto ad alto livello si traduce in un codice macchina potenzialmente diverso a seconda del calcolatore dove viene compilato mentre il codice sorgente ad alto livello rimane uguale per tutte le architetture. Il C è un linguaggio che si potrebbe definire di "medio" livello, in quanto mette a disposizione istruzioni e comandi che svolgono un insieme di operazioni anche complesse, ma al contempo permette anche di effettuare operazioni direttamente su locazioni di memoria e permette anche di integrare istruzioni assembly direttamente nel codice. Tutto sta in cosa veramente ti interessa fare... - Studiare l'architettura di un elaboratore in dettaglio? Assembly - Scrivere codice dalle prestazioni ottimizzate allo scopo di elaborare dati? C/C++ - Scrivere programmi con interfaccia grafica? C++/VB/Java/Python.... - Applet o applicazioni grafiche per il web? Java (applet)/ActionScript (flash)/ Silverlight... - Applicazioni Android? Java - Applicazioni iPhone? Objective-C - App per windows phone? C# - Applicazioni varie per web? PHP/Python.... non ho elencato tutti i linguaggi perchè sono veramente tanti, ma proprio tanti... però come noti hai l'imbarazzo della scelta a seconda di ciò che ti interessa fare e/o imparare. Occhio però a calibrare bene il tiro: se inizi a studiare, chessò, l'assembly e dopo un mese ti stanchi, avrai forse capito qualcosa di come funziona l'hardware ma non avrai quasi nessuna conoscenza utile per realizzare un programma vero e proprio.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight Ultima modifica di demos88 : 28-05-2011 alle 14:23. |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12883
|
La logica del programmatore è la logica del problema che deve risolvere.
In particolare un programmatore che voglia definirsi tale dovrebbe aver acquisito la mentalità giusta per affrontare problemi e risolverli (il come li risolve viene dopo). Dato che hai visto poco di Object Oriented, ed IMHO è importante conoscere questo paradigma, ti consiglio di iniziare da un linguaggio come Java o Python. In particolare dopo aver acquisito i concetti base potresti cominciare ad acquisire alcune nozioni di algoritmi e strutture dati, IMHO fondamentali. |
|
|
|
|
|
#12 |
|
Member
Iscritto dal: May 2011
Messaggi: 36
|
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)
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Ragassuoli sono d'accordo con voi ma questa frase "Io penso che capire veramente come funzioni una macchina voglia dire tanto" mi sa tanto di "io voglio capire come funge la macchina". Ovviamente è la cosa diametralmente opposta alla "logica del programmatore", però mi pare di capire che lui sia interessato a tutto il bagaglio.
Però rimane il fatto che imparare a risolvere i problemi algoritmicamente sia comunque il primo passo da fare. Tuttavia avendo lui usato php ( pensi abbia programmato qualcosa ) non dovrebbe essere proprio a digiuno di risoluzione algoritmica di problemi. |
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
In generale, per chi sta cominciando, è meglio partire con linguaggi come Python e sviluppare la capacità di trasformare le soluzioni ai problemi in programmi. Poi necessariamente dovrai applicarti per capire alcuni dettagli implementativi dei calcolatori. |
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: May 2011
Messaggi: 36
|
va bene...inizierò con il python. Avete per caso qualche libro/ manuale da consigliare? mi sembrano molto buoni quelli dell'apogeo..chiari e semplici..
Ultima modifica di superfox4 : 28-05-2011 alle 15:37. |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2781
|
Java e poi C#. Conoscendo Java, C# è quasi gratuito, in più in questo modo conosceresti due tra i linguaggi più usati nel mondo del lavoro. Prima Java perché ha alcune feature in meno e quindi dovrebbe essere un po' più semplice da imparare.
Altrimenti, se non ti interessa conoscerli entrambi e visto che vuoi programmare solo su windows, parti pure subito con C#. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
cdimauro in firma ha un link ad un ottimo libro per cominciare con python. Se non hai uno scopo ben preciso allora partire da questo linguaggio è un ottima idea. Prima impara il metodo, a scoprire come funziona la macchina sotto e altri dettagli tecnici c'è sempre tempo.
|
|
|
|
|
|
#18 |
|
Member
Iscritto dal: May 2011
Messaggi: 36
|
ok a breve incomincerò a leggerlo!!! Grazie mille per i vostri consigli sono stati davvero utili
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Eccellente scelta. Anche gli astronomi (e, in generale, molti scienziati) la pensano così.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#20 |
|
Member
Iscritto dal: Feb 2009
Città: Varese
Messaggi: 205
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:08.











) però devi procurarti un buon libro.








