PDA

View Full Version : Imparare ad usare un linguaggio


Fenomeno85
16-04-2004, 19:28
Ciao a tutti, mi stavo chiedendo ... dove avete imparato veramente a programmare e a conoscere bene i linguaggi di programmazione??

~§~ Sempre E Solo Lei ~§~

recoil
16-04-2004, 21:11
secondo me servono un misto di teoria e pratica, su un linguaggio qualunque.
la sola teoria non serve a niente, la sola pratica non ti fa arrivare lontano

devo dire che lo studio dell'assembly, anche se non x86, mi è stato utilissimo! si comprendono cose che prima erano poco chiare, secondo me è un passo importante nell'istruzione di un programmatore

akyra
16-04-2004, 23:22
certamente l'assembly è la ferrari dei linguaggi di programmazione, perchè ti permette di fare tutto (infatti i linguaggi ad alto livello vengono tradotti in assembly per essere eseguiti)...però è difficile come linguaggio perchè non è intuitivo, e serve mooolta pratica...secondo me la base ideale è il C...io ho cominciato con quello

recoil
17-04-2004, 10:13
l'assembly è un passo successivo, deve venire DOPO che si ha una discreta base con linguaggi come c o java
forse è meglio c da abbinare all'assembly perché puoi capire la traduzione diretta delle operazioni, in java con la storia della VM non usi proprio l'assembly

cmq chi può lo studi

akyra
17-04-2004, 11:54
sono d'accordo con te, la cosa migliore (almeno io ho fatto così all'università) è affiancare il C all'asembly (del mips magari, che consta di un numero ristretto di operazioni), così si possono capire come certi costrutti vengano tradotti a partire da un linguaggio ad alto livello......io ora uso parecchio il java, che come linguaggio ad oggetti è tra i migliori, in quanto gode del fatto di essere multipiattaforma, certo però che non penso sia prorpio il migliore con cui cominciare in quanto ha certe nozioni (come le classi, l'ereditarietà...) che possono essere fuorvianti se non vengono comprese a pieno, e ciò (IMHO) richiede la conoscienza almeno di un linguaggio come il C....

GioFX
17-04-2004, 12:17
per programmare bene in assembly occorre farsi una mazza infinita, e cmq non è vero che puoi fare tutto.

ad ogni modo, finche si tratta di semplici processori è un conto, provate a scrivere un programma in assembly per un 386, non dico un Athlon... :O

cionci
17-04-2004, 12:30
Chiaro...assembly non è la risposta a tutto...ed molto difficile saperci programmare bene... Non basta conoscere la sintassi, la teoria della programmazione e l'architettura della CPU, ma bisogna consocere trucchi e barbatrucchi che, vi assicuro, non si trovano per niente bene in giro...

recoil
17-04-2004, 12:49
fico l'avatar di cionci :cool:

io intendevo proprio l'assembly del MIPS o cmq di un processore RISC. non bisogna diventarci matti perché non è il caso, basta capire come funziona a grandi linee un processore e cosa sta dietro alle if, ai cicli e alle chiamate di funzioni
tanto per capire fino in fondo cosa fa il nostro codice ad alto livello

akyra
17-04-2004, 13:40
Originariamente inviato da GioFX
per programmare bene in assembly occorre farsi una mazza infinita, e cmq non è vero che puoi fare tutto.

ad ogni modo, finche si tratta di semplici processori è un conto, provate a scrivere un programma in assembly per un 386, non dico un Athlon... :O

Potenzialmente ci puoi fare tutto, perchè è l'unico codice che la macchina comprende, quindi anche i costrutti più complicati dei linguaggi ad alto livello devono essere tradotti in assembly...certo, ti do atto che dev'essere mooolto difficile scrivere prog in assembler, anche perchè si fa fatica ad avere una visione d'insieme pratica....

Gogeta ss4
17-04-2004, 18:14
Io C e Assembly a scuola, tra un po inizio Java :D :D

Cmq confermo, assembly è difficile, sopratutto all'inizio, io mi ricordo che non ci capivo una mazza, poi con l'andare avanti se capisci bene il meccanismo diventa abbastanza intuitivo, e sopratutto ti devo fare un mazzo così: ( )
Adesso ho finito di fare i servizi bios, e la prof ci ha fatto fare il labirinto :eek: :eek: , non so quante pagine sono, ma sono veramente tante :) :)

khamel
17-04-2004, 19:21
il mio consiglio sarebbe iniziare con un po di C per capire i fondamenti della programmazione, successivamente arrivare al C++ imparando la OOP. Dopo di questo oppure insieme a questo, ASSEMBLY per arrivare a ragionare in maniera un po + vicina alla macchina quando si programma...
dopo si può fare di tutto, perchè partendo dal C si ha una conoscenza di (quasi) tutti gli aspetti della programmazione, compreso il farsi il mazzo a capire e a usare in maniera efficiente i puntatori, evitare allocazioni di memoria inutili, e in questo l'assembly aiuta da matti perchè le risorse a disposizione sono quello che sono e il programmatore deve trovare un modo implementare un problema senza allocare memoria a vanvera, se uno impara a prog direttamente in java per esempio (nulla contro java, anche io lo uso e mi trovo molto bene), avendo una funzionalità come il garbage collector non si porrà il problema dei memory leaks e altri problemi collegati all'allocazione non controllata delle risorse, avendo il gc che dealloca da solo gli oggetti quando non + utilizzati...e se un giorno per un motivo qualsiasi dovra passare alla programmazione in un linguaggio senza questa funzionalità potrebbe trovarsi in una situazione poco piacevole..... e questo è solo uno degli aspetti problematici nella programmazione.

IMHO io consiglierei di incominciare con qualcosa a livello + basso e meno evoluto di certi linguaggi attuali, poi 6 libero di sceglierti un qualsiasi linguaggio....

xyz1
18-04-2004, 00:02
Io all'università ho seguito un percorso particolare.....
scheme e assembly in parallelo
java
c

Dalla mia esperienza potrei consigliare di iniziare con c (dove si può capire bene l'utilizzo della memoria) e poi passare ad assembly.

Io ho lavorato con il motorola 68000, alla fine abbiamo fatto solo cose a livello scolastico.......decisamente pessima come formazione!
Il bello è che si deve fare tutto a mano e non esiste praticamente niente di predefinito!
A mio avviso come prerequisiti per lavorare in assembly sono:
1. utilizzare senza troppi problemi numeri binari/esadecimali
2. capire bene le funzioni di tutti i comandi (non sono tante, ma
spesso capita che non si capisce bene l'utilità di alcuni
comandi utilissimi
3. fare tantissima pratica! Soprattutto con matrici! (inventarsi
trucchetti per ridurre righe di codice inutile.


CIAO


***** NOTA BENE *****
lo scheme è uno schifosissimo linguaggio di programmazione basato solo ed esclusivamente sulla ricorsione! si usa solo a scopo scolastico. Utile per capire la ricorsione, inutile per tutto il resto! Non si può fare assolutamente niente!

Stobby
18-04-2004, 10:19
Ho cominciato un po' di anni fa a masticare un po' di GWBasic, giusto per capire cosa significasse programmare, poi, in seguito, sono approdato al linguaggio C.

Ho imparato in parte da autodidatta, ma soprattutto all'università quando ho dato l'esame di Informatica 1.

Secondo me, è fondamentale fare 4 cose:
1) Imparare il linguaggio dal punto di vista teorico e concettuale, in particolar modo imparare a capire come si sviluppa il software in modo efficiente e senza dispersioni (pseudocodice, etc)

2) Fare tanta pratica, anche su programmi che non serviranno a nulla in futuro, ma che cercano di utilizzare tutte le nozioni imparate

3) Avere un buon libro di testo

4) Ma non meno importante, avere un bel gruppo di persone, che, o imparano come te, oppure sanno già e siano disposte ad aiutarti. Queste sono fondamentali perché sono anche quelle che ti danno l'input a proseguire quando le cose si fanno difficili, ti risolvono i dubbi, etc..

Ciao!

xyz1
18-04-2004, 10:24
Concordo.....devo dire che lo pseudocodice è fondamentale! La cosa importante non è fare il programmino e tradurlo nel linguaggio di programmazione!
La cosa + difficile (a livello di principiante) è quella di capire come sviluppare il programma! ;)
La traduzione in linguaggio specifico arriva in un secondo momento!
I programmatori + bravi lo pseudocodice (o cmq l'idea di come svolegere il programma) lo fanno a mente!

La cosa importante è prendere carta e penna e risolvere ilproblema prima a mano, poi capire come poterlo far eseguire al pc in maniera intelligente (cicli, ricorsioni) ed infine tradurlo in linguaggio!

enigma_sigla
18-04-2004, 11:44
Io sono un principiante nel campo, conosco (le basi) del Pascal e del Basic. Ora cosa posso cominciare a studiare? Purtroppo devo fare tutto da autodidatta, possibilmente prendendo le guide da internet. Mi consigliate il C o il C++?

Dovete tener conto che ho ancora molti dubbi su come sviluppare un programma e come farlo capire al computer.

Spero in un vostro aiuto, grazie. ;)

xyz1
18-04-2004, 13:22
se hai problemi chiedi pure:) io ti consiglio C

Stobby
18-04-2004, 13:37
Concordo pienamente: il C per imparare è sicuramente la migliore cosa :) Ricorda lo pseudocodice :)!

PGI
18-04-2004, 15:08
Io ho imparato la programmazione studiando (a lungo) ed esercitandomi (anche di più) con SmallTalk.

Si resta un po' "di sasso" quando si passa alle lingue con sintassi basate sul punto, ma ci vuole pochissimo ad abituarsi alla stranezza.

Io consiglierei di partire con un linguaggio imperativo solo a patto di avere di fianco qualcuno che ti spieghi com'è fatta un'applicazione, altrimenti credo si rischi di restare con la sensazione di non sapere come mettere insieme un accrocchio di funzioni per costruire un software.

Personalmente mi sfugge l'utilità dello pseudocodice in funzione dell'apprendimento di un linguaggio di programmazione e a dire il vero non serve a granchè nemmeno per costruire un software (semmai può essere la bozza di un algoritmo scritto in taxi).

Consiglierei piuttoso l'apprendimento di una tecnica per la modellazione del software in generale, come UML, che, con un po' di fantasia, può essere associata anche a linguaggi non OO.

Fenomeno85
18-04-2004, 17:11
Originariamente inviato da PGI
Personalmente mi sfugge l'utilità dello pseudocodice in funzione dell'apprendimento di un linguaggio di programmazione e a dire il vero non serve a granchè nemmeno per costruire un software (semmai può essere la bozza di un algoritmo scritto in taxi).


da noi ci hanno insegnato prima in pseudolinguaggio, questo permette di capire come scrivere dei programmi indipendenti dal linguaggio.
Secondo me è questa tecnica è stata importante per aver sviluppato un metodo di lavoro per delle persone che di programmazione non ne sapevano nulla.
Una volta capito come funziona ci hanno fatto imparare il c ... da semplici programmini a programmi che utilizzavano liste a puntatori con classi.
Ovviamente adesso tutti i programmi che facciamo non sono scritti in pseudocodice.

COMPONENTE DEL GRAN CONSIGLIO DELLE CACCOLE VERDI

~§~ Sempre E Solo Lei ~§~