View Full Version : Linguaggio C
Matte_487
15-03-2008, 18:36
Ciao a tutti sono uno studente del primo anno di ingegneria e ho tra gli esami quello di informatica 1...il prof ci fa programmare con il linguaggio C usando visual studio! Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
Per programmare serve il cervello e non è che ci siano molte dritte da dare... per scrivere buon codice ed evitare sbattimenti inutili invece:
inizializza SEMPRE le variabili specie quando le usi come indice o per navigare nella memoria allocata dinamicamente (:muro:)
usa in maniera massiccia i commenti
usa l''indentazione
le solite cose insomma
Ciao a tutti sono uno studente del primo anno di ingegneria e ho tra gli esami quello di informatica 1...il prof ci fa programmare con il linguaggio C usando visual studio! Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
Beh, intanto parti già con il piede giusto, studiando un linguaggio di largo utilizzo nella vita reale ( a me capitò di studiare il Pascal procedurale secco e il QuickBASIC :doh: ).
^TiGeRShArK^
16-03-2008, 12:56
Ciao a tutti sono uno studente del primo anno di ingegneria e ho tra gli esami quello di informatica 1...il prof ci fa programmare con il linguaggio C usando visual studio! Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
dimenticare tutto quello che impari programmando in C :)
Beh, intanto parti già con il piede giusto, studiando un linguaggio di largo utilizzo nella vita reale ( a me capitò di studiare il Pascal procedurale secco e il QuickBASIC :doh: ).
Bene, parti gia' con il piede sbagliato studiando un lingaggio ormai di nicchia. Per imparare a programmare dovrai dimenticarti tutto quello che impari in C e imparare a programmare. Ringrazia il tuo professore oppure togliti l'esame di torno il prima impossibile.
Nel frattempo impara per conto tuo un linguaggio utile fra:
- Java
- C#
- Python (urgh)
- Ruby
Parte di cio' che imparerai potra' essere riutilizzato durante l'esame di C.
Bene, parti gia' con il piede sbagliato studiando un lingaggio ormai di nicchia. Per imparare a programmare dovrai dimenticarti tutto quello che impari in C e imparare a programmare. Ringrazia il tuo professore oppure togliti l'esame di torno il prima impossibile.
Nel frattempo impara per conto tuo un linguaggio utile fra:
- Java
- C#
- Python (urgh)
- Ruby
Parte di cio' che imparerai potra' essere riutilizzato durante l'esame di C.
Non ho capito perchè hai risposto a me... :mbe:
A parte che è un pezzo che i linguaggi me li studio da solo, ma la domanda sull'esame non l'ho fatta io... :D
Il C sarà anche "di nicchia", ma vogliamo mettere il QuickBasic ? :D
io ritengo che per un ingegnere informatico sia fondamentale avere buone conoscenze anche di linguaggi non di alto livello: lo scopo didattico del corso è quello di mostrarti TUTTO, da come sono fatti i transistor a come si sviluppa una web app, passando per la progettazione delle singole porte logiche e di reti di esse, per il funzionamento di un processore all'interno di un elaboratore e per la programmazione dello stesso in assembler. il C/C++ rappresenta un ottimo anello di congiunzione tra la macchina e l'algoritmo astratto.
con tali conoscenze gli sbocchi lavorativi non saranno ridotti al solo sviluppo di programmi utente o alla realizzazione di siti web, ma faranno parte di un grosso ventaglio di possibilità, come la scrittura di driver o di sistemi operativi, o la progettazione di controlli automatici.
tornando al linguaggio :D, ti consiglio di scrivere codice leggibile, pulito e ben indentato; quindi evita l'eccesso di commenti, cerca piuttosto di renderlo autodescrittivo tramite l'uso di identificativi appropriati, costrutti semplici ed altre attenzioni.
dopo un po' di tempo ti accorgerai che ti sarai fatto un tuo "stile"; il metodo per rendersi conto se il proprio stile è più o meno corretto è rileggersi il proprio codice a distanza di tempo (settimane, mesi, anni...), se è difficile da interpretare chiediti cosa lo rende poco chiaro, ed in funzione di ciò cambia stile.
quando avrai un po' più di padronanza del linguaggio cura l'efficienza di quanto scrivi e chiediti sempre se c'è un modo di ottimizzarlo ;)
chiaramente questi consigli saranno buoni anche quando ti dovrai avvicinare ad altri linguaggi più astratti e quindi, in certi casi, più produttivi.
khelidan1980
16-03-2008, 16:40
piu che altro il C non lo vedo adattissimo per un primo esame di informatica,io sarei più per java in quel senso,il C lo vedrei per per un esame di algoritmi,il fatto è che spesso la scelta dipende più dal background del docente che da scelte didattiche!
invece secondo me è molto più semplice e meno ambiguo di tanti altri linguaggi... l'unica cosa un po' complicata e l'I/O, infatti noi abbiamo cominciato con cin e cout e a circa metà corso (quando avevamo ormai acquisito le nozioni per capirlo) abbiamo visto come sono fatte "dentro".
variabilepippo
16-03-2008, 18:24
invece secondo me è molto più semplice e meno ambiguo di tanti altri linguaggi
Qualche esempio? :)
noi abbiamo cominciato con cin e cout e a circa metà corso
Ma non si parlava di linguaggio C?
Qualche esempio? :)
personalmente tra i linguaggi procedurali oltre al c ho sperimentato solo il pascal, molto scomodo, pesante (odiavo begin-end ad ogni blocco, sia quando li dovevo scrivere che quando li dovevo leggere) e troppo rigido... comunque, tra i linguaggi di "non così alto" livello, suppongo che il C sia il migliore perché, dove si rendono necessari linguaggi di questo tipo, è il più usato (forse l'unico che sta ancora saldamente in piedi).
Ma non si parlava di linguaggio C?
sì, noi usavamo un compilatore C++ ma scrivevamo codice C in tutto e per tutto, tranne che per l'I/O. poi nella seconda metà del corso abbiamo fatto le classi e la parte "non C" del C++ (chiamiamola OO...), per cui siamo potuti andati a spulciare il funzionamento degli iostream. printf e scanf generano troppa confusione in un principiante (in effetti sono tra le poche cose del c che non apprezzo particolarmente), quindi secondo me è una soluzione didatticamente valida.
Matte_487
16-03-2008, 20:54
Io faccio ingegneria biomedica e tra gli esami c'è anche informatica...stiamo facendo linguaggio C, ma il mio problema è passare dalla soluzione degli esercizi "matematicamente" al linguaggio C...non so se mi sono spiegato bene...:rolleyes:
Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
Non me ne volere ma fare una domanda del genere ormai non significa più nulla alle mie orecchie. E' come se io andassi in un monastero shaolin e chiedessi "ehi, sapreste darmi qualche dritta per il mio kung-fu? Vi ho visto spaccare mattoni con le mani e sembra figo!"
In sostanza la risposta è: "dai la cera, togli la cera".
Compra un libro per principianti con un sacco di esercizi e fanne più che puoi. Poi compra un libro di algoritmi e strutture dati e studia. Gli algoritmi sono l'ABC. Poi passa ad altri linguaggi con altri paradigmi (object oriented, funzionali, ecc) e ripeti. Fatto! Continua cosi per i prossimi 20 anni e programmerai discretamente bene.
cdimauro
17-03-2008, 08:07
Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
Primo consiglio: evita C & derivati (vedi sotto, nel link che posto a Furla )
Secondo: se vuoi IMPARARE a programmare, usa Python (qui http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm un'ECCELLENTE guida).
invece secondo me è molto più semplice e meno ambiguo di tanti altri linguaggi...
Non c'è dubbio: http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest e http://en.wikipedia.org/wiki/Obfuscated_code :asd:
Obfuscated code is source code that is very hard to read and understand, often intentionally. Some languages are more prone to obfuscation than others. C, C++ and Perl are most often cited as easily obfuscatable languages. Macro preprocessors are often used to create hard-to-read code by masking the standard language syntax and grammar from the main body of code.
:O
personalmente tra i linguaggi procedurali oltre al c ho sperimentato solo il pascal, molto scomodo, pesante (odiavo begin-end ad ogni blocco, sia quando li dovevo scrivere che quando li dovevo leggere) e troppo rigido...
Permettimi, ma fra Pascal e C quanto a leggibilità del codice non c'è proprio paragone (a favore del primo).
Quanto alla pesantezza nella scrittura di begin/end, ecc., penso tu soffra del famigerato "crampo dello scrivano"... ;)
Quanto alla pesantezza nella scrittura di begin/end, ecc., penso tu soffra del famigerato "crampo dello scrivano"... ;)
sì sono giusto un po' pigro :Prrr:
puoi fare programmi illeggibili con qualsiasi linguaggio, ma i confronti li devi fare tra programmi scritti bene.
io penso che una sintassi troppo esplicita e ricca di keywords, come quella del pascal e di altri linguaggi, appesantisca inutilmente la lettura e la comprensione del codice (oltre ad essere faticosa da scrivere :D )
cdimauro
17-03-2008, 16:50
Io ho un'opinione diversa: penso che il cervello faccia meno fatica a leggere keyword, come se stesse leggendo delle frasi (in inglese), piuttosto che un'accozzaglia di simboli a cui deve cercare di dare un significato. :)
sì sono giusto un po' pigro :Prrr:
puoi fare programmi illeggibili con qualsiasi linguaggio, ma i confronti li devi fare tra programmi scritti bene.
io penso che una sintassi troppo esplicita e ricca di keywords, come quella del pascal e di altri linguaggi, appesantisca inutilmente la lettura e la comprensione del codice (oltre ad essere faticosa da scrivere :D )
Sono d'accordo con Cesare qui.
Esempio tratto da Diamonds.
Prima:
public void update(int crushCounter)
{
if (crushCounter >= 2 && crushCounter > this.crushCounter)
{
if (!isPulsing())
{
show();
startPulsation(new SinglePulsation(crushBoxPulsationLength, crushBoxSizeMultiplier));
}
this.crushCounter = crushCounter;
setTexture(getTexture(crushCounter));
}
if (!isHidden())
{
if (getPulsation() != null)
{
if (getPulsation().ended())
{
stopPulsation();
}
}
else if (!isOffScreen())
{
setPosition(getPosition().getX() + speed, getPosition().getY());
} else
{
hide();
this.crushCounter = 1;
}
}
}
Dopo il refactoring:
public void update(int newCrushCounter)
{
if (canUpdateCounter(newCrushCounter))
{
updateCounter(newCrushCounter);
}
if (isHidden())
{
return;
}
updatePosition();
updatePulsation();
}
private void updatePosition()
{
if (isPulsing())
{
return;
}
if (isOffScreen())
{
hide();
resetCounter();
}
else
{
moveRight(speed);
}
}
Piccola nota: in tutto questo refactoring non ho mai lanciato il gioco, mai lanciato il debugger; ho solo lavorato attraverso i test.
Mi infastidiscono un po' le graffe, ma per il resto si legge come se fosse inglese.
Per il ragazzo che sta imparando a programmare: quando il tuo codice assomiglia al "dopo" e non piu' al "prima" sei sulla buona strada.
Ciao a tutti sono uno studente del primo anno di ingegneria e ho tra gli esami quello di informatica 1...il prof ci fa programmare con il linguaggio C usando visual studio! Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
da programmatore Java, ma soprattutto da ingegnere, ti posso dire che C è il migliore linguaggio per imparare a programmare.
Ovviamente non bisogna "fermarsi" al C. Il C è solo l'inizio, ma è il miglior modo per iniziare.
Questa è la bibbia che ogni programmatore dovrebbe tenere sul comodino:
http://www.b0sh.net/wp-content/uploads/2007/11/main.gif
da programmatore Java, ma soprattutto da ingegnere, ti posso dire che C è il migliore linguaggio per imparare a programmare.
Affermazione dimostrata falsa in lungo e in largo credo in almeno altri venti thread.
mindwings
17-03-2008, 19:09
Affermazione dimostrata falsa in lungo e in largo credo in almeno altri venti thread.
suvvia non esiste *LA* verità ;)
suvvia non esiste *LA* verità ;)
Ma esiste un'ottima probabilita' di avvicinarsi ;)
mindwings
18-03-2008, 09:38
Ma esiste un'ottima probabilita' di avvicinarsi ;)
in questo caso parli di una probabilità "soggettiva" ( il tuo grado di fiducia che riponi nel...) . E' scontato che l'approccio OOP è necessario , ma qui si parla di formazione e scoprire "com'eravamo" ci permette di apprezzare quello che siamo :O
Edit: non parlo per partito preso , ma per esperienza personale . Il mio percorso di studi è iniziato con java per poi proseguire verso c++
e dove dire che molti concetti dicasi "gestione della memoria" , "templates" e altri aspetti semantici non solo non li ho compresi bene ma ho già dimenticato . ( Il libro che ho adottato è C++ primer completissimo ma imho troppo vasto a causa della complessità del linguaggio)
banryu79
18-03-2008, 10:15
in questo caso parli di una probabilità "soggettiva" ( il tuo grado di fiducia che riponi nel...) . E' scontato che l'approccio OOP è necessario , ma qui si parla di formazione e scoprire "com'eravamo" ci permette di apprezzare quello che siamo :O
Edit: non parlo per partito preso , ma per esperienza personale . Il mio percorso di studi è iniziato con java per poi proseguire verso c++
e dove dire che molti concetti dicasi "gestione della memoria" , "templates" e altri aspetti semantici non solo non li ho compresi bene ma ho già dimenticato . ( Il libro che ho adottato è C++ primer completissimo ma imho troppo vasto a causa della complessità del linguaggio)
Ma guarda, non saprei, io ho fatto proprio il contrario: sono partito con C, proprio quando in questo campo avevo ZERO conoscenze e ho smazzato/bestemmiato parecchio tra pointer, pointer di pointer, assegnamento della memoria, bassissima astrazione (che non sapendo ancora cos'erano le librerie per un programma di esercizio che stavo scrivendo mi son dovuto implementare una linked list, e così via...
Non che faccia male eh, però poi per lavoro tutta sta roba non la uso, programmo in Java e il tempo e gli sforzi maggiori non sono stati concentrati nell'acquisire il linguaggio che ho dovuto imparare quasi in corso d'opera (a parte le basi che ho potuto studiarle con calma, quindi il resto l'ho imparato in modo un po' lacunoso) ma a imparare, progettare e studiare le soluzioni dei problemi da risolvere: il software è un CAD/CAM, quindi geometria, trigonometria per la costruzione di solidi 3D parametrizzati, sviluppi di superfici 3D nel piano, implementazione delle classi interne che formano il nucleo di entità che devono gestire tutti questi dati e le operazioni di trasformazione che possono subire fino a essere mandati in taglio (nesting delle facce nel materiale, produzione del codice per la macchina da taglio).
Insomma, problemi di memoria da allocare/deallocare non ce ne sono da gestire, e i pointer non sono più un problema grazie alle reference.
Se fossi partito subito con Java, avrei avuto più tempo da dedicare a cose "più importanti" (imho) tipo, imparare a suddividere un problema a risolverlo scrivendo poco codice e bene; colmare le mie lacune matematiche, eccetera, credo si sia capito il discorso.
Oddio, aver preso contatti con il C all'inizio mi torna utile per interfacciarmi con la libreria di nesting, ma è davvero poca cosa rispetto al tempo investito per impare giusto il minimo necessario, non per essere produttivi, ma per essere almeno coscienti delle cappelle mostruose che si possono commettere senza maneggiarlo con estrema cura.
Poi ognuno percorre il suo sentiero, però mi pare che ci siano delle ragioni più che valide per indirizzare il neofita verso linguaggi con livelli di astrazione più alta.
Altrimenti che senso ha la maggiore astrazione, in termini puramente umani?
Ciao :)
mindwings
18-03-2008, 10:26
@banryu
condivido il tuo lato pragmatico di vedere le cose , ad ogni modo conoscere il C
accresce il background del programmatore :) io non condivido l'idea che *bisogna* conoscere solo ciò che serve per il compito A.
in questo caso parli di una probabilità "soggettiva" ( il tuo grado di fiducia che riponi nel...) .
No, parlo di probabilita' empirica derivata da piu' di vent'anni passati a programmare in svariati linguaggi e lavorare con chi ha programmato in svariati linguaggi, non c'e' a leggere e osservare l'esperienza di altri. Diciamo che e' una probabilita' molto alta :)
Per un principiante alle prime armi il C e' altamente sconsigliato, come dimostrato altrove al di la' di ogni ragionevole dubbio.
@banryu
condivido il tuo lato pragmatico di vedere le cose , ad ogni modo conoscere il C
accresce il background del programmatore :) io non condivido l'idea che *bisogna* conoscere solo ciò che serve per il compito A.
Qui non si sta parlando di accrescere il background del programmatore, discorso sul quale sono per altro d'accordo, si sta parlando di che cosa dovrebbe affrontare un principiante che non ha mai programmatore per imparare a programmare. Non il C. Potra' affrontarlo dopo quando ha imparato per accrescere il suo background.
mindwings
18-03-2008, 10:33
No, parlo di probabilita' empirica derivata da piu' di vent'anni passati a programmare in svariati linguaggi e lavorare con chi ha programmato in svariati linguaggi, non c'e' a leggere e osservare l'esperienza di altri. Diciamo che e' una probabilita' molto alta :)
Per un principiante alle prime armi il C e' altamente sconsigliato, come dimostrato altrove al di la' di ogni ragionevole dubbio.
Detto tra noi il C non mi sembra molto complesso :) (il K&R consta di 300 pagine circa) . Studiarlo permette di provare sulla propria pelle tante cose
per esempio : "perchè le variabili globali sono il male" , il mio punto di vista è prettamente formativo.
"Dimmi e io dimentico , mostrami ed io ricordo , coinvolgimi ed io comprendo"(detto cinese).
Io mi sento "menomato" ad aver iniziato con java.
Detto tra noi il C non mi sembra molto complesso :) (il K&R consta di 300 pagine circa) . Studiarlo permette di provare sulla propria pelle tante cose
Ti rimando alle altre discussioni dove questa tesi e' stata abbondantemente smontata.
mindwings
18-03-2008, 10:40
Per un principiante alle prime armi il C e' altamente sconsigliato, come dimostrato altrove al di la' di ogni ragionevole dubbio.
:D Se ad una persona gli fai vedere un gelato con panna dubito che poi si accontenterà di uno senza panna , se ad un ragazzo gli fai vedere che non si deve preoccupare di gestire la memoria o altri dettagli a basso livello dubito
che poi si interesserebbe a studiare un linguaggio come il C o C++ .
Giusto per fare un esempio pratico io ho visto dei miei compagni sviluppare
strutture dati in c++ evitando come la peste l'allocazione dinamica della memoria:doh:
solo perchè si erano abituati troppo bene con java.
Giusto per fare un esempio pratico io ho visto dei miei compagni sviluppare
strutture dati in c++ evitando come la peste l'allocazione dinamica della memoria:doh:
solo perchè si erano abituati troppo bene con java.
E facevano piu' che bene.
mindwings
18-03-2008, 10:50
E facevano piu' che bene.
semplicemente non si sono presi il fastidio di studiare come funziona la gestione della memoria , mi sembra più un occasione persa che un bene :)
semplicemente non si sono presi il fastidio di studiare come funziona la gestione della memoria , mi sembra più un occasione persa che un bene :)
Al contrario, hanno fatto molto bene e dimostra ulteriormente come arrivare al C++ da Java sia un vantaggio, rispetto ad arrivarci dal C.
E' un errore da principiante pensare che l'esistenza di una feature in un linguaggio significhi doverla usare per forza.
In tantissime situazioni in C++ e' molto meglio non allocare oggetti dinamicamente e porta a soluzioni piu' eleganti e semplici. Ovviamente chi arriva dal C cerchera' subito di fare una malloc... oppure una new... complicandosi la vita inutilmente. Si vive molto bene senza new.
mindwings
18-03-2008, 11:04
non penso abbiano fatto queste congetture prima di sviluppare le strutture :D
dico solo che lo studio in questo settore è una costante cosi come dovrebbe essere la voglia di approfondire . Contenti loro :fagiano:
non penso abbiano fatto queste congetture prima di sviluppare le strutture :D
dico solo che lo studio in questo settore è una costante cosi come dovrebbe essere la voglia di approfondire . Contenti loro :fagiano:
Sono sicuramente piu' contenti di chi magari prova a scrivere qualche centinaia di migliaia di righe di codice costellati di new e poi si dispera quando vedere il primo "out of memory". Le gioie della frammentazione dell'heap in C++.
Prima di sapere che cos'e', e' meglio imparare a programmare. Fatevi un favore, ignorate C/C++ per qualche anno :)
mindwings
18-03-2008, 11:08
Sono sicuramente piu' contenti di chi magari prova a scrivere qualche centinaia di migliaia di righe di codice costellati di new e poi si dispera quando vedere il primo "out of memory". Le gioie della frammentazione dell'heap in C++.
Prima di sapere che cos'e', e' meglio imparare a programmare. Fatevi un favore, ignorate C/C++ per qualche anno :)
ignorare? Già fatto :D , il gelato lo preferisco con la panna
ricordo che si tratta di uno studente di ingegneria, quindi si tratta di argomenti che non può evitare. se trovo un ingegnere informatico che non ha idea di come viene allocata la memoria da un programma lo piglio a calci nel sedere finché non lo impara :grrr:
^TiGeRShArK^
18-03-2008, 20:22
ricordo che si tratta di uno studente di ingegneria, quindi si tratta di argomenti che non può evitare. se trovo un ingegnere informatico che non ha idea di come viene allocata la memoria da un programma lo piglio a calci nel sedere finché non lo impara :grrr:
A me basterebbe che sapessero programmare..
poi possono anche ignorare per quanto mi riguarda anche cosa sia la memoria.
Il problema è che trovare un ing informatico italiano che sappia programmare è come trovare la pignatta piena d'oro alla fine dell'arcobaleno.. :mbe:
marko.fatto
18-03-2008, 20:28
A me basterebbe che sapessero programmare..
poi possono anche ignorare per quanto mi riguarda anche cosa sia la memoria.
Il problema è che trovare un ing informatico italiano che sappia programmare è come trovare la pignatta piena d'oro alla fine dell'arcobaleno.. :mbe:
addirittura? :asd:
A me basterebbe che sapessero programmare..
poi possono anche ignorare per quanto mi riguarda anche cosa sia la memoria.
Il problema è che trovare un ing informatico italiano che sappia programmare è come trovare la pignatta piena d'oro alla fine dell'arcobaleno.. :mbe:
Pero' ti smenano tutti a memoria come funzionano gli interrupt dell'architettura X86. Ma quando gli dai due righe di codice da scrivere...
marko.fatto
18-03-2008, 20:33
Pero' ti smenano tutti a memoria come funzionano gli interrupt dell'architettura X86. Ma quando gli dai due righe di codice da scrivere...
e io che vorrei andare a fare ing. informatica :sob:
Ti rimando alle altre discussioni dove questa tesi e' stata abbondantemente smontata.
mi deve essere sfuggito :fagiano:
ho solo visto discussioni senza fine oppure discussioni dove si diceva che python è il meglio dell'universo perchè sì :D
mi deve essere sfuggito :fagiano:
Rileggile con piu' attenzione allora :fagiano:
io sono ing. informatico vecchio ordinamento, e su 30 esami solo in 2 c'era da da utilizzare seriamente un linguaggio di programmazione:
Fondamenti di Informatica 1 -> C++
Ingegneria del Software -> Java & C++
Ma... l'ingegnere informatico non ha certo la necessità di uscire dall'università e sapere programmare.
Ora purtroppo con il nuovo ordinamento l'ingegnere è troppo orientato a cose pratiche.
Fortunatamente quando l'ho fatta io si studiava ancora molta teoria.
io sono ing. informatico vecchio ordinamento, e su 30 esami solo in 2 c'era da da utilizzare seriamente un linguaggio di programmazione:
Fondamenti di Informatica 1 -> C++
Ingegneria del Software -> Java & C++
Ma... l'ingegnere informatico non ha certo la necessità di uscire dall'università e sapere programmare.
Ora purtroppo con il nuovo ordinamento l'ingegnere è troppo orientato a cose pratiche.
Fortunatamente quando l'ho fatta io si studiava ancora molta teoria.
perchè fortunatamente? sinceramente non concepisco molto la figura dell'ing informatico.
cdimauro
19-03-2008, 07:29
Pero' ti smenano tutti a memoria come funzionano gli interrupt dell'architettura X86. Ma quando gli dai due righe di codice da scrivere...
E sono fortunati, perché come architettura è abbastanza "commestibile".
Quelli che affermano che per un programmatore è necessario conoscere il funzionamento a basso livello di un'architettura li farei lavorare in linguaggio macchina con quella dell'Itanium.
Voglio vedere poi se avranno il coraggio di continuare a sostenere la loro tesi... :asd:
"Perché un giapponese più soffre e più è contento..." - Mai Dire Banzai
Pero' ti smenano tutti a memoria come funzionano gli interrupt dell'architettura X86. Ma quando gli dai due righe di codice da scrivere...
a ingegneria (polimi) non ho mai visto nulla di architettura X86.
l'unico processore trattato in modo molto breve (durante il corso di calcolatori elettronici) è MIPS.
a ingegneria non si studia la programmazione, si studia altro.
per chi fosse interessato a vedere in linea di massima cosa si studiava a calcolatori elettronici al v.o. : http://home.dei.polimi.it/silvano/calcolatori_elettronici.htm
khelidan1980
19-03-2008, 08:08
a ingegneria (polimi) non ho mai visto nulla di architettura X86.
l'unico processore trattato in modo molto breve (durante il corso di calcolatori elettronici) è MIPS.
a ingegneria non si studia la programmazione, si studia altro.
per chi fosse interessato a vedere in linea di massima cosa si studiava a calcolatori elettronici al v.o. : http://home.dei.polimi.it/silvano/calcolatori_elettronici.htm
e cosa si studia?cioè un ingegnere informatico di cosa dovrebbe occuparsi?Lo chiedo per ignoranza mia
e cosa si studia?cioè un ingegnere informatico di cosa dovrebbe occuparsi?Lo chiedo per ignoranza mia
almeno per il vecchio ordinamento.. le materie oggetto di studio a ingegneria informatica riguardavano principalmente
Matematica
Fisica
Chimica
Elettrotecnica
Elettronica
Automatica
Informatica
Elaborazione di Segnali
a ingegneria (polimi) non ho mai visto nulla di architettura X86.
l'unico processore trattato in modo molto breve (durante il corso di calcolatori elettronici) è MIPS.
a ingegneria non si studia la programmazione, si studia altro.
Sono laureato a Ing Inf a Torino, so che cosa ci si studia(va) :)
Ho fatto esami di C/C++/AsmX86/Architettura X86/Linguaggi/Sistemi Operativi/Database/Etc.
mindwings
19-03-2008, 11:59
Sono laureato a Ing Inf a Torino, so che cosa ci si studia(va) :)
Ho fatto esami di C/C++/AsmX86/Architettura X86/Linguaggi/Sistemi Operativi/Database/Etc.
E' meglio buttarsi subito nel mondo del lavoro ? O fare la specialistica ?
O lavorare in un'azienda e parallelamente specializzarsi? :D
Edit: se qualcuno vuole raccontare la propria esperienza... ciò sarebbe molto gradito :flower:
Sono laureato a Ing Inf a Torino, so che cosa ci si studia(va) :)
Ho fatto esami di C/C++/AsmX86/Architettura X86/Linguaggi/Sistemi Operativi/Database/Etc.
Visto che hai fatto anche tu ingegneria, saprai che a ingegneria informatica si studia(va) per diventare ingegneri e non per diventare programmatori.
Probabilmente sono principalmente esami che tu hai scelto di fare.
Comunque, Sistemi Operativi, Database non sono programmazione :)
Architettura, bè come ti ho detto da noi a calcolatori elettronici si faceva MIPS. (poi non so se c'erano robe più specializzate su architettura)
E c++ l'abbiamo fatto a fondamenti di informatica 1.
Figurati che mi pare che da noi si potesse anche non fare Ingegneria del Software.
E' meglio buttarsi subito nel mondo del lavoro ? O fare la specialistica ?
O lavorare in un'azienda e parallelamente specializzarsi? :D
sono molto perplesso sul nuovo ordinamento di ingegneria, cmq meglio fare l'università.
Visto che hai fatto anche tu ingegneria, saprai che a ingegneria informatica si studia(va) per diventare ingegneri e non per diventare programmatori.
Probabilmente sono principalmente esami che tu hai scelto di fare.
Erano parte del mio piano di studi standard sull'Ingegneria del Software.
Comunque, Sistemi Operativi, Database non sono programmazione :)
Architettura, bè come ti ho detto da noi a calcolatori elettronici si faceva MIPS. (poi non so se c'erano robe più specializzate su architettura)
E c++ l'abbiamo fatto a fondamenti di informatica 1.
Figurati che mi pare che da noi si potesse anche non fare Ingegneria del Software.
Sia l'esame scritto di SO sia di DB richiedevano di scrivere codice in C e SQL :)
Ho programmato anche all'esame di Reti Logiche, figurati.
L'unico esame di questo tipo nel quale non ho programmato e' stato: Ingegneria del Software II. Solo dopo anni ho capito quanto la professoressa (e questo gia' doveva essere un campanello d'allarme) non ci capisse nulla di Ingegneria del Software in realta'. Alla prima lezione disse "In questo esame non scriverete codice, solo documentazione". Ouch.
tomminno
19-03-2008, 12:42
A me basterebbe che sapessero programmare..
poi possono anche ignorare per quanto mi riguarda anche cosa sia la memoria.
Il problema è che trovare un ing informatico italiano che sappia programmare è come trovare la pignatta piena d'oro alla fine dell'arcobaleno.. :mbe:
Guarda che un ingegnere informatico non è un programmatore.
E giustamente ad Ingegneria di programmazione si fa molto poco, oltre a ripeterti per 5 anni che un ingegnere è una figura manageriale.
Poi che il lavoro lo trovi solo come programmatore è un problema del sistema Italia, insomma ti laurei per poi finire a fare il lavoro di un diplomato, tanto valeva non studiare.
Hai mai visto un ingegnere meccanico fare il meccanico nell'officina sotto casa?
Hai mai visto un dottore fare l'infermiere?
Hai mai visto un odontoiatra fare l'odontotecnico?
Ecco spiegami perchè vorresti vedere un ingegnere informatico fare il programmatore.
pensate che io per laurearmi in economia devo fare l'esame di programmazione c,cn lo stesso programma e gli stessi libri di ingegneria!!:confused: qualcuno sa a cosa mi servirà una volta che sn allo sportello di una banca??
Erano parte del mio piano di studi standard sull'Ingegneria del Software.
Bè appunto hai scelto un piano di studio orientato all'ingegneria del software, ma uno può diventare ingegnere informatico e vedere solo molto raramente la "programmazione".
Per quel che mi riguarda ai tempi ero bravo in matematica quindi le varie analisi e simili non mi avevano dato problemi.
Invece per passare Fisica Generale 1, Fisica Generale 2, Fisica Tecnica mi ero fatto un bel culo.. però complessivamente sono molto contento di aver fatto quella roba che mi ha formato dal punto di vista del "modo di ragionare".
Sono laureato a Ing Inf a Torino, so che cosa ci si studia(va) :)
Ho fatto esami di C/C++/AsmX86/Architettura X86/Linguaggi/Sistemi Operativi/Database/Etc.
Ma dai fek, magari siamo stati pure colleghi.
Comunque un po' di programmazione l'abbiamo fatta dai.
Fondamenti di informatica 2 era tutto in C++, applicato come giustamente deve essere sui modelli e gli algoritmi piu' corretti come liste, code, alberi, ordinamenti, hastable, etc.
E poi a Sistemi di Informazione 1 abbiamo imparato tutta l'architettura del 80386, compresi modalita' protetta, segmentazione, paginazione, le call gate...
Mi ricordo ancora del professore che in un'ultima mezz'ora aveva spiegato l'address Extension del Pentium Pro, appena uscito, per spiegarci come nei processori a 32 bit si potesse arrivare ad indirizzare fino a 64GB di RAM.
E Ingegneria del software 1 non ha spiegato i Pattern solo perche' erano troppo acerbi, ma se poco conosco quel professore penso che oggi li insegni o poco ci manca.
E sono anche d'accordo sul fatto che si sia studiata tutta quella matematica e geometria, sebbene allora mi sembrasse quasi un controsenso come mi sembra tuttora lo studio di centinaia di migliaia di ore uomo in Italia spese ogni anno per il Latino.
Insomma, sono contento di tutto cio' che mi hanno insegnato. non sono (erano?) programmi campati in aria.
Sono d'accordo che (forse) i chirurghi non si mettano a fare le operazioni ai brufoli, ma se glielo chiedessero dovrebbero essere in grado di farlo.
Spero che qualcuno non possa dire che un Ingegnere (o un Informatico) non sappia programmare. Un vero ingegnere informatico deve saper programmare, e almeno a noi hanno dato la possibilita' di impararlo.
Poi che io lo faccia o no e' una mia scelta, anche se appunto non e' forse l'occupazione primaria.
pensate che io per laurearmi in economia devo fare l'esame di programmazione c,cn lo stesso programma e gli stessi libri di ingegneria!!:confused: qualcuno sa a cosa mi servirà una volta che sn allo sportello di una banca??
Non e' la programmazione in se che conta.
Quello che conta e' che devi imparare il concetto di algoritmo, ovvero l'essere in grado di risolvere problemi complessi, avendo a disposizione funzionalita' di base semplici e limitate.
Il linguaggio di programmazione in se e' un pretesto per vedere se hai capito. Nessuno chiedera' mai ad un esame cose che vanno oltre "Stampa qui", "Digita la'"
khelidan1980
19-03-2008, 14:49
Non e' la programmazione in se che conta.
Quello che conta e' che devi imparare il concetto di algoritmo, ovvero l'essere in grado di risolvere problemi complessi, avendo a disposizione funzionalita' di base semplici e limitate.
Il linguaggio di programmazione in se e' un pretesto per vedere se hai capito. Nessuno chiedera' mai ad un esame cose che vanno oltre "Stampa qui", "Digita la'"
Altro motivo che avvalora la tesi dell'usare un altro linguaggio al posto del C! ;)
P.s:ma in parole spicce,l'ingegnere informatico cosa fa??Io non lo mica capito ancora! :D
mah oddio,i miei esami di informatica sono parecchio difficili,li ho fatti vedere al mio ragazzo ingegnere e me lo ha confermato:-)magari fossero solo leggi e scrivi...unica cosa è che in un contesto cm ingegneria ha senso,ad economia aziendale no..anche perchè se nn ho capito cm si ragiona cn i 10 esami di mate e statistica che ho fatto,non sarà di sicuro un esame di informatica che mi cambierà tutto..vabbè,l'importante è laurearmi ormai:-)
P.s:ma in parole spicce,l'ingegnere informatico cosa fa??Io non lo mica capito ancora! :D
Posso dirti per cosa vengono applicati di piu' qui gli ingegneri Informatici.
Un'azienda ha un problema, la cui soluzione si sa e' legata in qualche modo con i computer.
Questo problema viene spiegato ad un "Architetto" o "Project Engineer". Il piu' delle volte costui e' un Ingegnere Informatico, oppure un Informatico.
Costui deve essere in grado di trovare una soluzione al problema, descrivendolo in termini piu' semplici.
A loro volta questi elementi piu' semplici possono essere complessi, e si dovra' trovare una soluzione per questi sotto-problemi, descrivendoli in elementi ancora piu' semplici.
Vedila un po' come scatole cinesi.
Questo fino al punto in cui si trovano solo piu' problemi la cui specifica puo' essere risolta da un programmatore, oppure comprando direttamente i componenti sul mercato.
Il tutto tenendo sempre all'occhio tempi e costi (e futuri sviluppi) relativamente ai problemi che si sono risolti.
Insomma. Deve sapere tirare fuori gli algoritmi, a partire dai problemi complessi.
Per questo non puo' non saper programmare.
Per questo non puo' non saper programmare.
però non sa programmare....
soldi rubati ad un programmatore skillato :D
però non sa programmare....
soldi rubati ad un programmatore skillato :D
Le eccezioni ci sono dappertutto.
Ci sono anche i medici che diagnosticano la tonsillite a chi le tonsille non le ha piu' da 20 anni...
Bè appunto hai scelto un piano di studio orientato all'ingegneria del software, ma uno può diventare ingegnere informatico e vedere solo molto raramente la "programmazione".
Per quel che mi riguarda ai tempi ero bravo in matematica quindi le varie analisi e simili non mi avevano dato problemi.
Invece per passare Fisica Generale 1, Fisica Generale 2, Fisica Tecnica mi ero fatto un bel culo.. però complessivamente sono molto contento di aver fatto quella roba che mi ha formato dal punto di vista del "modo di ragionare".
Anch'io sono felicissimo di aver fatto tutti quegli esame che con la programmazione c'entrano niente, sono d'accordo con te.
Se prendi un indirizzo piu' tecnologico o da sistemista (tipo reti), vedrai sicuramente molta meno programmazione di quanta ne ho vista io, che ho scelto un indirizzo da programmatore.
Ah, un Ingegnere Informatico con indirizzo Ingegneria del Software e' un programmatore :)
E poi a Sistemi di Informazione 1 abbiamo imparato tutta l'architettura del 80386, compresi modalita' protetta, segmentazione, paginazione, le call gate...
Allora abbiamo avuto lo stesso professore! Aspetta che mi sfugge il nome, era uno famoso, ma sono passati quasi dieci anni ormai (ouch, sono vecchio).
Ricordo che fu uno dei miei ultimi esami ed andai a fare l'orale nel suo ufficio: in quel periodo programmavo quasi esclusivamente in assembly 386 e si trasformo' in una piacevole chiacchierata fra due nerd, non era neppure piu' un orale :D
PS. Io non ho mai passato l'esame di Informatica Grafica con Laurentini, mi ha bocciato quattro volte di fila, quando cercavo di spiegargli come facevo il bump mapping...
sebbene allora mi sembrasse quasi un controsenso come mi sembra tuttora lo studio di centinaia di migliaia di ore uomo in Italia spese ogni anno per il Latino.
Senza studiare latino pero' poi ti trovi con gente che scrive "propio" e ti da' dell'ignorante quando glielo fai notare.
tomminno
19-03-2008, 16:14
Ah, un Ingegnere Informatico con indirizzo Ingegneria del Software e' un programmatore :)
Io ho preso l'indirizzo Ingegneria del Software, ma di programmazione ho fatto meno di 0, diciamo che per quello che ho studiato sapevo più di elettronica che non di programmazione.
Avrei più competenze per fare il sistemista di rete che non il programmatore (che oltretutto è un lavoro mal pagato).
Si è vero mi sento un ingegnere fallito. :cry:
Io ho preso l'indirizzo Ingegneria del Software, ma di programmazione ho fatto meno di 0, diciamo che per quello che ho studiato sapevo più di elettronica che non di programmazione.
Ma va :D
Allora abbiamo avuto lo stesso professore! Aspetta che mi sfugge il nome, era uno famoso, ma sono passati quasi dieci anni ormai (ouch, sono vecchio).
Ricordo che fu uno dei miei ultimi esami ed andai a fare l'orale nel suo ufficio: in quel periodo programmavo quasi esclusivamente in assembly 386 e si trasformo' in una piacevole chiacchierata fra due nerd, non era neppure piu' un orale :D
PS. Io non ho mai passato l'esame di Informatica Grafica con Laurentini, mi ha bocciato quattro volte di fila, quando cercavo di spiegargli come facevo il bump mapping...
Il prof. e' Mezzalama, diventato poi rettore o quasi.
Stessa dinamica anche per il mio esame, uno degli ultimi pure per me.
Ehm... comunque anche io ho passato qull'esame 10 anni fa...
E anche io non ho passato l'esame con Laurentini, ma solo perche' ho cambiato il piano di studi.
Volevo usare le DirectX per la tesina, e lui si incaponiva con le OpenGL.
Gli avevo fatto notare che allora le DirectX stavano iniziando a promettere bene, e che se le avessi imparate magari mi sarebbero servite veramente nel mondo del lavoro. Insomma, la solita equazione, se sai qualcosa di utile e di nicchia qualcuno che ha bisogno proprio di te prima o poi lo trovi.
Putroppo non ci senti' e me ne andai, altrimenti se non ho capito male magari potremmo anche essere colleghi ora...
Il prof. e' Mezzalama, diventato poi rettore o quasi.
Lui!
Putroppo non ci senti' e me ne andai, altrimenti se non ho capito male magari potremmo anche essere colleghi ora...
Sicuramente ci conosciamo e abbiamo frequentato qualche corso assieme :)
Dopo l'esame di Inf. Grafica ho iniziato a scrivere per dispetto il mio primo engine. Quasi quasi mando a Laurentini una mail con il link alla mia sessione al GDC 2006 e lo ringrazio di cuore :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.