PDA

View Full Version : Ho preso libri,ho visto un pò questo ,un pò quello...,ora sono nel pallone!!!


Dolph69
14-10-2006, 21:58
Salve a tutti.
Ho un consiglio da chiedervi,ed anche cercando molto nel forum,le idee non soo molto chiare.
Sto iniziando a programmare,e lo faccio per ora solo come hobby.
Cercando in giro,e chidendo un pò,alla fine ho scaricato:
tutto sul Python,il c# express,ed il visual basic express.
Ho preso oltre ad un pò di documentazione in rete,ache un libro per ogni linguaggio ,libri introduttivi si intende.
Ho iniziato a fare dei programmini in Python,e mi sono trovato bene,ma nello stesso tempo ,giochicchiando con il VB,ed il c#,non ho potuto fare a meno di sbavare per la loro gui.
Il mio dubbio feroce riguarda il non riuscire a scegliere quale dei 3 imparare per bene.So la differenza tra i 2 linguaggi Microsoft,ed il Python,ossia che il ptitone è più indirizzato per gli script,ed è multipiattaforma.
iniltre la sintassi del Pythion è davvero amichevole,ma la mancanza di un'interfaccia come quella dei 2 concorenti mi pesa parecchio.
Cosa scegliere?Il VB ,è davvero cosi diverso dal c#,e quest'ultimo è davvero cosi più performante?
La sintassi del c#,e molto più difficile rispetto a quella del VB.2005?

Voi che cosa mi consigliate??

Altro piccolo dubbio.Lavorando un pochino con il Vb ,ed il c#,ho avuto l'impresione di non avere tutto sotto controllo,per via del fatto ,che creando interfacce in quel modo,ed altri "aiutini",generano un sacco di codice in automatico,e nei libri ,non approfondiscono quello che succede.

Come ho gia detto,in questo momento voglio imparare per hobby,ma non escludo che se un domani dovessi diventare bravo,questo non mi porti anche ad occuparmene in maniere professionale,visto che comunque lavoro in ambito informatico.

Datemi dei pareri vi prego.Sono in totale confusione.

AngeL)
14-10-2006, 22:14
ti consiglio di iniziare con python, per prendere confidenza con la programmazione... se iniziassi direttamente con c# o vb, che sono abbastanza complicati, ti sarebbe difficile capirli e quindi sfruttarli al meglio.

gl ;)

whiles_
14-10-2006, 23:47
secondo me tra vb.net e c# ti conviene iniziare col C#. Anche perchè imparando quest'ultimo potrai anche, in seguito, imparare C, Java o Php o qualunque altro linguaggio con sintassi c-like senza sforzarti più di tanto. Inoltre il C# è molto efficace (imho) per imparare per bene la teoria degli oggetti, e dopo che hai assimilato quella capire cosa succede "dietro alla gui" sarà facilissimo.

La sintassi di C# non è più complicata di vb anzi, per alcuni aspetti potrebbe essere anche organizzata meglio.

Su python non mi posso esprimere perchè non lo conosco, ma secondo me tra vb e C# sarebbe più utile il secondo (poi è anche questione di gusti personali, a me per esempio non piace per niente la sintassi stile vb).

Dolph69
15-10-2006, 00:07
Vi ringrazio entrambi.
Quindi per ora diciamo che il VB sarebbe da escludere.
Quindi diciamo che il Python si preferisce per una maggiore facilità,ed il c#,per un fatto sia di potenza,ma anche di lungimiranza.
Credete che per un neofita autodidatta,sia comuqnue fattibile partire dal c#?
Fate conto che con il Pythnon ,le cose che conosco sono,abbastanza basilari:
Le variabili,il ciclo while,l'istruzione if,else,elif(else if),le definizioni,le liste(di un tipo),operatori booleani.

Perry_Rhodan
15-10-2006, 00:26
Perchè non Java e C++ che sono i due linguaggi più utilizzati e per cui in rete si trova una grandissima quantità di documentazione, codice e librerie????

Dolph69
15-10-2006, 00:38
Perchè non Java e C++ che sono i due linguaggi più utilizzati e per cui in rete si trova una grandissima quantità di documentazione, codice e librerie????
Non saprei,di sicuro il c++ sarebbe il massimo,ma non faccio altro che leggere di quando sia difficile impararlo.In pratica,non essendo studente,e non avendo molto tempo (2 o 3 orette la sera),mi sono scoraggiato in partenza.
Sbaglio? :help:

PGI-Bis
15-10-2006, 00:50
Il panorama è ampio. Tu scegline uno e studialo bene. Se Python t'è piaciuto vai con quello: è più facile imparare una cosa "che piace" (in psicologia cognitiva la chiamano "teoria dell'atteggiamento"). E' un linguaggio a scopo generale, ci fai quello che vuoi :).

Perry_Rhodan
15-10-2006, 01:22
Non saprei,di sicuro il c++ sarebbe il massimo,ma non faccio altro che leggere di quando sia difficile impararlo.In pratica,non essendo studente,e non avendo molto tempo (2 o 3 orette la sera),mi sono scoraggiato in partenza.
Sbaglio? :help:

Anche io sono un (modesto) hobbista, ho iniziato con un po' di C ai tempi dell'Amiga (mitico), poi sono passato al C++ e recentemente ho scoperto Java.

Le basi non sono assolutamente difficili da apprendere, il più produttivo e facile da imparare è il Java, il più efficiente è il C++, secondo me sono complementari nel senso che a seconda delle esigenze è preferibile uno o l'altro, è anche possibile ma non consigliato per ragioni di stile usare librerie C++ in Java o chiamare la JVM e eseguire codice Java da C++.

In linea di massima per imparare a programmare un linguaggio vale l'altro cambia solo la sintassi ma i concetti di base sono gli stessi.

IMHO
Ciao

Dolph69
15-10-2006, 01:33
Anche io sono un (modesto) hobbista, ho iniziato con un po' di C ai tempi dell'Amiga (mitico), poi sono passato al C++ e recentemente ho scoperto Java.

Le basi non sono assolutamente difficili da apprendere, il più produttivo e facile da imparare è il Java, il più efficiente è il C++, secondo me sono complementari nel senso che a seconda delle esigenze è preferibile uno o l'altro, è anche possibile ma non consigliato per ragioni di stile usare librerie C++ in Java o chiamare la JVM e eseguire codice Java da C++.

In linea di massima per imparare a programmare un linguaggio vale l'altro cambia solo la sintassi ma i concetti di base sono gli stessi.

IMHO
Ciao


Ok,restringo il campo ta c++ e c#,il python per ora lo accantono.
Nominando l'amiga mi hai fatto venire il magone il mitico 68000....Sculpt4d...Imagine....Ice creeeeamm.....ice creeeeeeam....Elite.....Gods......Virus.....Snif sniff il workbeanch 1.3!!!!!Sob....
Scusate il vaneggio....

whiles_
15-10-2006, 10:48
Ok,restringo il campo ta c++ e c#,il python per ora lo accantono.
Nominando l'amiga mi hai fatto venire il magone il mitico 68000....Sculpt4d...Imagine....Ice creeeeamm.....ice creeeeeeam....Elite.....Gods......Virus.....Snif sniff il workbeanch 1.3!!!!!Sob....
Scusate il vaneggio....
prova a vedere un po' la sintassi dei due linguaggi, è possibile che C# non ti piaccia perchè troppo prolisso (effettivamente alcune volte lo è) o non ti piaccia C++ perchè troppo poco organico. Oppure a seconda di quello che vuoi fare, se importano molto le prestazioni è sicuramente meglio C++ o C.

Io ad esempio uso C# perchè mi sembra molto ordinato e semplice, non ho mai avuto l'esigenza di prestazioni elevate e moltre altre cose. Ma queste sono opinioni personali, non ti puoi basare su quello che più piace a gli altri :D. Prova a vedere un po' tu quello che più ti piacerebbe :O

AngeL)
15-10-2006, 12:17
se vuoi iniziare con c# o c++ ti consiglio il c++, perchè io ho iniziato col c++ da autodidatta senza sapere niente (conoscevo un po' il javascript) e devo dire che dopo la 'botta' iniziale è filato tutto liscio; il c# non lo conosco e quindi non posso esprimermi.

Dolph69
15-10-2006, 14:09
se vuoi iniziare con c# o c++ ti consiglio il c++, perchè io ho iniziato col c++ da autodidatta senza sapere niente (conoscevo un po' il javascript) e devo dire che dopo la 'botta' iniziale è filato tutto liscio; il c# non lo conosco e quindi non posso esprimermi.
Mi interessa molto la tua esperienza da autodidatta.
Dimmi un pò,come hai affrontato il tuo percorso di studio?
Mi spiego,hai imparato alcune istruzioni e poi hai lavorato solo con quelle per consolidare la cosa,oppure hai cercato di studiare il maniera maniacale un libro e poi hai iniziato a fare qualche cosa da solo?
Che libri hai utilizzato quando hai iniziato?
Grazie e ciao!

AngeL)
15-10-2006, 14:44
Mi interessa molto la tua esperienza da autodidatta.
Dimmi un pò,come hai affrontato il tuo percorso di studio?
Mi spiego,hai imparato alcune istruzioni e poi hai lavorato solo con quelle per consolidare la cosa,oppure hai cercato di studiare il maniera maniacale un libro e poi hai iniziato a fare qualche cosa da solo?
Che libri hai utilizzato quando hai iniziato?
Grazie e ciao!
mi sono avvicinato al c++ quasi per caso, perchè cercando su internet come creare un programma per crittare i file c'era spiegato che poteva essere scritto in c++, e c'erano degli spezzoni di codice, così ho cercato dei tutorial su internet, (ho letto quello su www.about.com ) e ho iniziato a leggere le prime cose.
quando ho iniziato a fare domande sul forum (qui (http://www.hwupgrade.it/forum/showthread.php?t=1220551) ) mi hanno consigliato di leggere Thinking in c++ di Bruce eckel (di cui è disponibile la versione italiana su www.umbertosorbo.it , ma il sito non funziona al momento ) e iniziai a leggerlo.
man mano che lo leggevo mi interessavo sempre di più e per ogni cosa che leggevo scrivevo uno o due programmi(ni) per capirla meglio.
il problema più grande secondo me è la fantasia: gli esercizi sono pochi (sia sul libro che su internet) e quindi ti tocca "inventare" cose da fare per tenerti allenato e per verificare l'apprendimento.
ho provato anche ad imparare altri linguaggi (java,vb.net,perl,asm) ma nessuno mi piace più del c++ :vicini:

Dolph69
15-10-2006, 14:49
mi sono avvicinato al c++ quasi per caso, perchè cercando su internet come creare un programma per crittare i file c'era spiegato che poteva essere scritto in c++, e c'erano degli spezzoni di codice, così ho cercato dei tutorial su internet, (ho letto quello su www.about.com ) e ho iniziato a leggere le prime cose.
quando ho iniziato a fare domande sul forum (qui (http://www.hwupgrade.it/forum/showthread.php?t=1220551) ) mi hanno consigliato di leggere Thinking in c++ di Bruce eckel (di cui è disponibile la versione italiana su www.umbertosorbo.it , ma il sito non funziona al momento ) e iniziai a leggerlo.
man mano che lo leggevo mi interessavo sempre di più e per ogni cosa che leggevo scrivevo uno o due programmi(ni) per capirla meglio.
il problema più grande secondo me è la fantasia: gli esercizi sono pochi (sia sul libro che su internet) e quindi ti tocca "inventare" cose da fare per tenerti allenato e per verificare l'apprendimento.
ho provato anche ad imparare altri linguaggi (java,vb.net,perl,asm) ma nessuno mi piace più del c++ :vicini:
Grazie mille per il racconto :)

AngeL)
15-10-2006, 14:59
Grazie mille per il racconto :)
prego ;)

Perry_Rhodan
15-10-2006, 18:21
Ok,restringo il campo ta c++ e c#,il python per ora lo accantono.
Nominando l'amiga mi hai fatto venire il magone il mitico 68000....Sculpt4d...Imagine....Ice creeeeamm.....ice creeeeeeam....Elite.....Gods......Virus.....Snif sniff il workbeanch 1.3!!!!!Sob....
Scusate il vaneggio....

:)

Non conosco nè C# nè python, il primo mi sembra tanto un java in salsa M$ :D , per quanto riguarda il secondo se ne parla bene come linguaggio didattico per avvicinarsi alla programmazione, ma non mi sembra molto diffuso.

Non tralasciare il Java come primo linguaggio, consente di vedere risultati concreti in metà tempo che in C++.

In ogni caso, scelto un linguaggio, ti conviene studiarlo tutto anche senza approfondirlo, non limitarti solo agli aspetti introduttivi, in fondo se non ti addentri nelle librerie, che sono vastissime, il linguaggio in se' è più semplice di quello che appare a prima vista e questo vale sia per java che per C++, come penso sia vero anche per gli altri linguaggi.

Everyman
15-10-2006, 19:05
Parti con Python.
Continua con Java.
Concludi con C++.

Questo e' perlomeno il mio consiglio.

TorpedoBlu
15-10-2006, 21:56
Mi scuso in anticipo.

Ma come si fa a usare un ambiente di lavoro come questi senza sapere nulla di ingegneria del software me lo spiegate... ci sono lauree per diventarne esperto, non sapete cosa sia un pattern, leggere UML, Ocl, cosa sia un modulo e cosa stia alla base della programmazione software... se poi entriamo nello specifico penso che la parola Algoritmo non vi dica un gran che.

Poi quanto sento che qualcuno dice che "un linguaggio vale l'altro, cambia un po' la sintassi", capisco che la differenza tra linguaggi di basso livelo e di alto livello è sottovalutata: programmate un modulo di sistema operativo in C#, o una socket in Python, oppure un algoritmo che necessita puntatori in Java....

scusatemi ancora, ma dietro la programmazione c'è lo studio del funzionamento della macchina, non è come imparare l'inglese per corrispondenza.

AngeL)
15-10-2006, 22:22
Ma come si fa a usare un ambiente di lavoro come questi senza sapere nulla di ingegneria del software me lo spiegate... ci sono lauree per diventarne esperto, non sapete cosa sia un pattern, leggere UML, Ocl, cosa sia un modulo e cosa stia alla base della programmazione software... se poi entriamo nello specifico penso che la parola Algoritmo non vi dica un gran che.

Poi quanto sento che qualcuno dice che "un linguaggio vale l'altro, cambia un po' la sintassi", capisco che la differenza tra linguaggi di basso livelo e di alto livello è sottovalutata: programmate un modulo di sistema operativo in C#, o una socket in Python, oppure un algoritmo che necessita puntatori in Java....
non ho capito cosa intendi dire :mbe:

Dolph69
15-10-2006, 22:45
Mi scuso in anticipo.

Ma come si fa a usare un ambiente di lavoro come questi senza sapere nulla di ingegneria del software me lo spiegate... ci sono lauree per diventarne esperto, non sapete cosa sia un pattern, leggere UML, Ocl, cosa sia un modulo e cosa stia alla base della programmazione software... se poi entriamo nello specifico penso che la parola Algoritmo non vi dica un gran che.

Poi quanto sento che qualcuno dice che "un linguaggio vale l'altro, cambia un po' la sintassi", capisco che la differenza tra linguaggi di basso livelo e di alto livello è sottovalutata: programmate un modulo di sistema operativo in C#, o una socket in Python, oppure un algoritmo che necessita puntatori in Java....

scusatemi ancora, ma dietro la programmazione c'è lo studio del funzionamento della macchina, non è come imparare l'inglese per corrispondenza.

Beh,questo è chiaro anche a me che sono un neofita ed autodidatta.Nessuno dice che imparare a programare sia come imparare l'inglese per corrispondenza.Ma ,prima di tutto non sono a digiuno di informatica,so perfettamente cos'è un algoritmo,e anche se per ora non conosco tutto quello che ci può essere dietro la programmazione,non vedo perchè non posso studiarmela al livello che voglio ,e senza per forza prendere una laurea in informatica.
Non capisco il senso del tuo intervento scusa.
Poi,non so tu ,ma io lavoro nel campo informatico da 17 anni,qualcosina mastico.

PGI-Bis
15-10-2006, 23:03
L'idea che si possa imparare solo in un'università è piuttosto triste, non vi pare? Mi sembra anche piuttosto lontana dalla realtà.

Dolph69
15-10-2006, 23:20
L'idea che si possa imparare solo in un'università è piuttosto triste, non vi pare? Mi sembra anche piuttosto lontana dalla realtà.
Gia,se fosse cosi sarebbe deprimente,grazie a Dio non è cosi.
Come dici tu è un'affermazione lontana dalla realtà.
Nel mio immaginario ,quando penso ad un ragazzo programmatore ricco di talento,me lo immagino sempre ,nel suo scantinato a farsi il mazzo nell'intento di inventarsi qualche cosa di rivoluzionario. :)

k0nt3
15-10-2006, 23:29
Mi scuso in anticipo.

Ma come si fa a usare un ambiente di lavoro come questi senza sapere nulla di ingegneria del software me lo spiegate... ci sono lauree per diventarne esperto, non sapete cosa sia un pattern, leggere UML, Ocl, cosa sia un modulo e cosa stia alla base della programmazione software... se poi entriamo nello specifico penso che la parola Algoritmo non vi dica un gran che.

cioè secondo te uno prima di iniziare a programmare deve sapere UML? ma cosa c'entra ingegneria del software.. è il gradino successivo, mica la base da cui partire!

Poi quanto sento che qualcuno dice che "un linguaggio vale l'altro, cambia un po' la sintassi", capisco che la differenza tra linguaggi di basso livelo e di alto livello è sottovalutata: programmate un modulo di sistema operativo in C#, o una socket in Python, oppure un algoritmo che necessita puntatori in Java....

con cambia un pò la sintassi si intendeva che una volta imparato un linguaggio C like ci impieghi poco ad adattarti a un altro linguaggio c like.
poi nessuno vieta di programmare un modulo del sistema operativo in C# (dipende dalle esigenze), il python che io sappia può fare qualsiasi cosa anche se non famoso per farlo con prestazioni elevate, inoltre gli algoritmi non necessitano i puntatori, ma per motivi di prestazioni a volte le loro implementazioni li usano (quindi niente vieta di implementare qualsiasi algoritmo in java).

scusatemi ancora, ma dietro la programmazione c'è lo studio del funzionamento della macchina, non è come imparare l'inglese per corrispondenza.
qui dipende da cosa ci devi fare con la programmazione.. a livello hobbistico non mi sembra necessario sapere tutto quello che c'è dietro.



comunque il mio consiglio è di evitare VB, se ti è piaciuto python ti consiglio di approfondirlo (è la prima volta che mi trovo a consigliare python.. :doh: ) e di non farti illudere dalle cose sbrillucicose che portano a nulla. anche in python puoi disegnare delle interfaccie, leggi qua http://www.python.it/topics/gui/ so che esiste wxDesigner anche se non l'ho mai provato.
dopo puoi anche imparare C#, anche se io preferisco java, ma comunque sono due linguaggi abbastanza simili, quindi non faresti molta fatica a intercambiarli ;) è tutto

Dolph69
16-10-2006, 00:05
cioè secondo te uno prima di iniziare a programmare deve sapere UML? ma cosa c'entra ingegneria del software.. è il gradino successivo, mica la base da cui partire!

con cambia un pò la sintassi si intendeva che una volta imparato un linguaggio C like ci impieghi poco ad adattarti a un altro linguaggio c like.
poi nessuno vieta di programmare un modulo del sistema operativo in C# (dipende dalle esigenze), il python che io sappia può fare qualsiasi cosa anche se non famoso per farlo con prestazioni elevate, inoltre gli algoritmi non necessitano i puntatori, ma per motivi di prestazioni a volte le loro implementazioni li usano (quindi niente vieta di implementare qualsiasi algoritmo in java).

qui dipende da cosa ci devi fare con la programmazione.. a livello hobbistico non mi sembra necessario sapere tutto quello che c'è dietro.



comunque il mio consiglio è di evitare VB, se ti è piaciuto python ti consiglio di approfondirlo (è la prima volta che mi trovo a consigliare python.. :doh: ) e di non farti illudere dalle cose sbrillucicose che portano a nulla. anche in python puoi disegnare delle interfaccie, leggi qua http://www.python.it/topics/gui/ so che esiste wxDesigner anche se non l'ho mai provato.
dopo puoi anche imparare C#, anche se io preferisco java, ma comunque sono due linguaggi abbastanza simili, quindi non faresti molta fatica a intercambiarli ;) è tutto

Grazie anche a te per i consigli.
Nella giornata di ogg,fino ad un'ora fa ,non ho fatto altro che leggere un libro sul c#.
Ho eseguito qualche tutorial,e mi sono divertito con il suo ambiente di sviluppo,nella versione express.
Beh,sicuramnete è presto ,però mi sono reso conto che l'aver passato una paio di settimane a scrivere codice in Python ,forse mi ha condizionato,e mi sa che farò come dici,approfondirò il Python per passare poi al c#,o Java.
Mi dici secondo te i vantaggi di programmare in Java?Anche questo è un linguaggio multipiattaforma vero?Esiste un ambiente tipo quello visual di microsoft?
Ciao e grazie.

TorpedoBlu
16-10-2006, 14:58
cioè secondo te uno prima di iniziare a programmare deve sapere UML? ma cosa c'entra ingegneria del software.. è il gradino successivo, mica la base da cui partire!

con cambia un pò la sintassi si intendeva che una volta imparato un linguaggio C like ci impieghi poco ad adattarti a un altro linguaggio c like.
poi nessuno vieta di programmare un modulo del sistema operativo in C# (dipende dalle esigenze), il python che io sappia può fare qualsiasi cosa anche se non famoso per farlo con prestazioni elevate, inoltre gli algoritmi non necessitano i puntatori, ma per motivi di prestazioni a volte le loro implementazioni li usano (quindi niente vieta di implementare qualsiasi algoritmo in java).

qui dipende da cosa ci devi fare con la programmazione.. a livello hobbistico non mi sembra necessario sapere tutto quello che c'è dietro.



comunque il mio consiglio è di evitare VB, se ti è piaciuto python ti consiglio di approfondirlo (è la prima volta che mi trovo a consigliare python.. :doh: ) e di non farti illudere dalle cose sbrillucicose che portano a nulla. anche in python puoi disegnare delle interfaccie, leggi qua http://www.python.it/topics/gui/ so che esiste wxDesigner anche se non l'ho mai provato.
dopo puoi anche imparare C#, anche se io preferisco java, ma comunque sono due linguaggi abbastanza simili, quindi non faresti molta fatica a intercambiarli ;) è tutto



1) programmare è una cosa, sviluppare software un'altra, per programmare basta avere in mano la sintassi del codice ed il progetto sviluppato dall'ingegnere, per sviluppare software beh... bisogna prima progettarlo, dove lavori tu fate diversamente?

2)sviluppami qualsiasi parte di un qualsiasi sistema operativo in Java e/o con il Pitone e giuro che ti offro una cena a te e a tutta la tua famiglia :D

3)se conoscete il significato di algoritmo sapete benissimo che con la programmazione procedurale ha significato, mentre con la programmaziona ad oggetti perde totalmente ogni interesse.

Per concludere ripeto: programmare in se è una pratica perfettamente inutile, la progettazione è la parte importante dello sviluppo software, i linguaggi di programmazione cambiano spesso e velocemente (ultimamente sto studiando la programmazione ad aspetti per la tesi di laurea, che è un posso dopo il paradigma object oriented) ogni linguaggio è studiato per un determinato scopo, e definire alcuni linguaggi come General Purpose non è molto preciso (provate a scrivere un algoritmo di ordinamento in Java e in C e vedrete la differenza).

il mio consiglio è: decidete in quale campo dello sviluppo software volete inserirvi e decidete di specializzarvi in quello (con i rispettivi linguaggi).

PS: il mondo del lavoro non attinge solo da persone laureate, anzi.. i problemi della produzione software sono a volte dati dal fatto che molta gente ha radicato modalità di lavoro assolutamente inefficienti, sottovalutano i passaggi del ciclo di produzione software e non fanno altro che impiegare troppo tempo per sviluppare decine di release bacate di un programma che è bacato in principio... da qui orari assurdi, sfruttamento, poca elasticità..... ma questi sono altri argomenti.

k0nt3
16-10-2006, 16:03
Grazie anche a te per i consigli.
Nella giornata di ogg,fino ad un'ora fa ,non ho fatto altro che leggere un libro sul c#.
Ho eseguito qualche tutorial,e mi sono divertito con il suo ambiente di sviluppo,nella versione express.
Beh,sicuramnete è presto ,però mi sono reso conto che l'aver passato una paio di settimane a scrivere codice in Python ,forse mi ha condizionato,e mi sa che farò come dici,approfondirò il Python per passare poi al c#,o Java.
Mi dici secondo te i vantaggi di programmare in Java?Anche questo è un linguaggio multipiattaforma vero?Esiste un ambiente tipo quello visual di microsoft?
Ciao e grazie.
java è multipiattaforma, ma anche C# volendo visto che esiste MONO (anche dotGNU per la verità) che è un'implementazione opensource e multipiattaforma del framework .NET di microsoft anche se non è proprio completo (comunque è già produttivo a sufficienza).
per programmare in java c'è forse il migliore IDE che sia mai stato progettato, e cioè eclipse che tra l'altro è opensource e gratuito. inoltre per java è disponibile tantissima documentazione su internet (il punto di riferimento è la javadoc sul sito di sun http://java.sun.com/j2se/1.5.0/docs/api/ che è un pò come MSDN per C#). eclipse però è molto pesante e necessita di un PC abbastanza recente, ma una volta che parte direi che offre veramente tutto quello che ti serve (nemmeno gli IDE commerciali di MS riescono a offrire tanti strumenti e facilitazioni nello scrivere il codice). inoltre eclipse è espandibile con dei plugins (anzi direi che quasi tutto è un plugin), e esiste il plugin per disegnare interfaccie che è VisualEditor. in realtà con eclipse si può programmare in qualsiasi linguaggio volendo.. basta scaricare il plugin giusto, ma essendo nato per sviluppare in java è molto più maturo per il linguaggio java! ho provato a usare il plugin per c++ ma non funzionava molto bene.
detto questo il mio consiglio comunque è di NON usare eclipse per imparare java! almeno non nella fase iniziale in cui si impara il linguaggio. una volta che senti di avere abbastanza confidenza con il linguaggio allora puoi provare a usare eclipse (o visual studio nel caso di C#), anche perchè sono ambienti abbastanza complessi ed è meglio non sommare la difficoltà di imparare il linguaggio con la difficoltà di imparare a usare l'ambiente di programmazione.
comunque sia la scelta tra C# e java è puramente soggettiva.. poi nel caso che uno vuole cambiare la scelta può farlo abbastanza agilmente perchè hanno molti punti in comune.

k0nt3
16-10-2006, 16:32
1) programmare è una cosa, sviluppare software un'altra, per programmare basta avere in mano la sintassi del codice ed il progetto sviluppato dall'ingegnere, per sviluppare software beh... bisogna prima progettarlo, dove lavori tu fate diversamente?

è vero che programmare è una cosa e sviluppare è un'altra cosa.. ma se non sai programmare è difficile che sai sviluppare.

2)sviluppami qualsiasi parte di un qualsiasi sistema operativo in Java e/o con il Pitone e giuro che ti offro una cena a te e a tutta la tua famiglia :D

http://www.jnode.org/


3)se conoscete il significato di algoritmo sapete benissimo che con la programmazione procedurale ha significato, mentre con la programmaziona ad oggetti perde totalmente ogni interesse.

assolutamente falso! dai un'occhiata qui http://it.wikipedia.org/wiki/Merge_sort al variare del linguaggio l'algoritmo è sostanzialmente lo stesso.

Per concludere ripeto: programmare in se è una pratica perfettamente inutile
:eek:

la progettazione è la parte importante dello sviluppo software
:eekk:

dire che sono importanti uguale no?

i linguaggi di programmazione cambiano spesso e velocemente (ultimamente sto studiando la programmazione ad aspetti per la tesi di laurea, che è un posso dopo il paradigma object oriented) ogni linguaggio è studiato per un determinato scopo, e definire alcuni linguaggi come General Purpose non è molto preciso (provate a scrivere un algoritmo di ordinamento in Java e in C e vedrete la differenza).

sostanzialmente l'algoritmo non cambia, cambia solo il modo in cui lo si implementa, perchè cambiano gli strumenti che il linguaggio mette a disposizione. poi non è vero che imparare un linguaggio significa servire solo a un determinato scopo! può essere complicato quando si cambia paradigma, ma i paradigmi non sono mica 2000! già imparare python e un linguaggio OO basta per avere una panoramica abbastanza vasta (ricordiamoci che la programmazione strutturata è contenuta nella programmazione a oggetti oltretuttto e la programmazione ad aspetti è comunque un'estensione di quella a oggetti).

il mio consiglio è: decidete in quale campo dello sviluppo software volete inserirvi e decidete di specializzarvi in quello (con i rispettivi linguaggi).

mi sembra chiaro che Dolph69 non farà il programmatore di professione, quindi non vedo la necessità di specializzarsi

PS: il mondo del lavoro non attinge solo da persone laureate, anzi.. i problemi della produzione software sono a volte dati dal fatto che molta gente ha radicato modalità di lavoro assolutamente inefficienti, sottovalutano i passaggi del ciclo di produzione software e non fanno altro che impiegare troppo tempo per sviluppare decine di release bacate di un programma che è bacato in principio... da qui orari assurdi, sfruttamento, poca elasticità..... ma questi sono altri argomenti.
qui posso essere daccordo, ma non vedo cosa c'entra in questo thread

thebol
16-10-2006, 16:46
Per concludere ripeto: programmare in se è una pratica perfettamente inutile, la progettazione è la parte importante dello sviluppo software,

in un ambito "agile" l'importanza della progettazione scende(non sparisce, ovvio) di molto, e la programmazione prenda la sua (imho) giusta importanza

facendo risaltare solo la progettazione come parte importante, spesso si ingessa il software rendendolo reticente al cambiamento


ps.per chi dice che .NET e multipiattaforma....in parte e vero, ma non si puo paragonare il supporto che sun da alle varie piattaforme(linux, win32, solaris) con quello raggiungibile da MONO e dotGNU...
a meno che microsoft non affidi ufficialmente il progetto di queste applicazioni, fornendo in tempo le specifiche

pequeno
17-10-2006, 11:07
Come al solito in queste discussioni si tende ad andare OT.
Il discorso università / non università è ben poco attinente, anche perchè è importante avere un buon metodo di studio e tanta buona volontà per raggiungere un livello di conoscenze che non resti legato al solo linguaggio di programmazione.
E' vero, ogni linguaggio ha le sue peculiarità, ma è più che altro una questione di adattamento.. mi spiego: importante è conoscere la programmazione strutturata, poi si può sviluppare in C o in Fortran, ma è relativo; al max dipende da ciò che si vuole realizzare e valutare nel caso specifico quale linguaggio è più efficiente o più produttivo per raggiungere lo scopo.
Questo vale ancora di più per la programmazione ad oggetti.. puoi imparare java, c#, etc etc.. ma è fondamentale acquisire delle ottime basi su questa tipologia di programmazione. Imho il linguaggio diventa solo un mezzo.. uno è preferibile all'altro a seconda degli scopi.
Io parlo per esperienza personale.. il mio background è fondamentalmente da autodidatta; diversi esami all'univ mi hanno fatto migliorare soprattutto in termini di metodo, ma ho ampliato le mie conoscenze soprattutto grazie allo studio personale. L'esperienza fa il resto..
Trovo che la progettazione e lo sviluppo siano complementari, tra l'altro come diceva qualcuno, con le metodologie agili si da molta più enfasi alla programmazione che alla progettazione, anche se è un discorso lungo.. poi un minimo di progettazione c'è sempre (uno deve pur sapere dove vuole andare a parare e come farlo..)

anche se.. sviluppare software non è come costruire case.. :p

Dolph69 è bene che inizialmente ti concentri su un solo linguaggio e pian piano cerchi di approfondire quegli aspetti non legati strettamente al linguaggio... code, liste, algoritmi, pattern.. etc. che ti danno le basi per affrontare in seguito lo studio di qualsiasi altro linguaggio.

TorpedoBlu
17-10-2006, 12:58
beh i concetti che ho espresso non sono miei ma vengono dritti dritti dalle conoscienze acquisite in ambito accademico, poi se una laurea in informatica non va le nulla vate voi.

Poi come si fa a programmare e andare più in la di un sistema dataEntry senza competenze di matematica/algebra/logica/analisi me lo spiegate in un'altra discussione.
Come si fa a implementare un algoritmo piutosto che un altro senza sapere la notazione asintotica me lo spiegate poi.
Come si fa a programmare un db relazionale senza possedere le nozioni di normalizzazione e tuning
Come si fa a programmare un modulo software senza sapere come testarlo (test in grande, test in piccolo, reti di petri)

queste e altre centinaia di faccende me le spiegate poi vero?

wikipedia non è la soluzione a tutti i mali, le cose bisogna averle in possesso, ho visto molta gente scrivere come scimmie blocchi try senza sapere che si strutturano in base all'albero di test..

pequeno
17-10-2006, 13:17
Quello che dici è assolutamente giusto. Nessuno mette in dubbio il valore di una preparazione accademica, soprattutto di un certo livello; solo che nella discussione iniziata da Dolph69 non c'entra un c.... infatti se non sbaglio diceva di voler imparare a programmare per hobby.. nient'altro.. :mbe:

Dolph69
17-10-2006, 13:41
Quello che dici è assolutamente giusto. Nessuno mette in dubbio il valore di una preparazione accademica, soprattutto di un certo livello; solo che nella discussione iniziata da Dolph69 non c'entra un c.... infatti se non sbaglio diceva di voler imparare a programmare per hobby.. nient'altro.. :mbe:
Gia.....,sembra quasi che l'idea di un tizio che programmi senza la laurea in informatica sia un eretico.

AngeL)
17-10-2006, 14:06
io programmo puramente per hobby e non credo che se non mi vada io debba per forza leggere 200 libri per prendere una laurea del cavolo che poi non serve a niente, visto che molti dei programmatori di hwupgrade sono molto più competenti della maggior parte dei professori, e se io devo sentirmi dire cavolate da una massa di pseudo-programmatori allora è meglio che programmo quando e come dico io, senza laurea ne niente, è molto piu bello. IMHO

aik
17-10-2006, 14:43
Guarda che con python puoi fare un sacco di applicazioni grafiche, ha un sacco di librerie supportate.
Prova ad usare il modulo pygtk e vedrai che non ha niente di inferiore rispetto a c#.
L'unico problema e; che non c'e' una gui builder degna di nome, ma i veri programmatori le fanno a mano le gui :fagiano: :fagiano: :fagiano:

PGI-Bis
17-10-2006, 15:26
Io penso che la preparazione universitaria sia fondamentale per una questione metodologica: chi abbia capito il percorso universitario che ha affrontato è in possesso di un metodo, il metodo che qualifica l'acquisizione di conoscenza nel campo del sapere in cui si è immerso.

Non è riduttivo dire che un laureato possiede il solo metodo della disciplina che ha appreso o avrebber dovuto apprendere. Perchè il modo in cui affronti il problema della mancanza di conoscenza, in un certo ramo del sapere umano, è determinante nella soluzione di problemi che non siano stati precedentemente affrontati.

E se alla fine del percorso non ci rende conto che il possesso di questo metodo è la differenza, allora l'università è un pila di 100-120 centimetri di libri che è poco meno della metà di quanto è richiesto per un qualsiasi esame di stato post-laurea.

AngeL)
17-10-2006, 15:31
Io penso che la preparazione universitaria sia fondamentale per una questione metodologica: chi abbia capito il percorso universitario che ha affrontato è in possesso di un metodo, il metodo che qualifica l'acquisizione di conoscenza nel campo del sapere in cui si è immerso.il metodo lo può avere chiunque, non c'è mica bisogno di un pezzo di carta che attesta che ce lhai...

PGI-Bis
17-10-2006, 19:07
il metodo lo può avere chiunque, non c'è mica bisogno di un pezzo di carta che attesta che ce lhai...

Io avrei aperto l'enciclopedia e cercato il significato del termine "metodologia". Comunque, non ci sono più le mezze stagioni.

AngeL)
17-10-2006, 19:20
Io avrei aperto l'enciclopedia e cercato il significato del termine "metodologia".scusa ma cosa intendi per metodo? metodo di studio?
Comunque, non ci sono più le mezze stagioni.non ho capito cosa intendi dire :confused:

TorpedoBlu
17-10-2006, 19:28
il metodo lo può avere chiunque, non c'è mica bisogno di un pezzo di carta che attesta che ce lhai...

sarà, ma per progettare devi essere un architetto o un ingegnere, per operare un medico chirurgo, per firmare atti un magistrato o un notaio... sai perchè la maggiorparte del software ha più bachi di quanto la teoria ne lascia irrisolti?? perchè molti si autonominano programmatori, anzi progettisti software! ma prima di buttarsi nella pratica di ogni disciplina dovrebbe esserci la teoria, no?
-puoi tradurre quacosa in una lingua straniera con il solo dizionario, ma cosa ne esce fuori?
-puoi operare qalcuno con un libro di chirurgia davanti ma cosa ne consegue?
-puoi progettare un'auto o una casa con solid-edge o 3dstudiomax....

sono tutte cose dove a livello di hobbie ci si può cimentare, ma bisogna comprendere che non serve ad un fiko secco.

Lo studio serve in ogni disciplina, nell'informatica (che per chi non lo sapesse in italia si chiama scienze dell'informazione e deriva dalla facoltà di matematica/fisica) purtroppo la gente prende la cosa sottogamba e sapete perchè? Il mio prof di Ingegneria del software ci disse: "siete dei privilegiati, gli altri progettisti se sbagliano vanno in galera, voi potete sfornare una patch". Ma non bisogna certamente abusare di questo concetto.

Con lo studio si capisce il perchè un linguaggio è strutturato in una certa maniera, ecco perchè io non studio nessun linguaggio in particolare, so che il C è un linguaggio di tipo 2 nella grammatica di Chomsky e mi serve una semplice appendice di 5 pagine per prorgammare, quando uscirà il linguaggio X che usa il paradigma ad aspetti non dovrò leggermi un libro di 1000pagine con esempi sul codice, ma leggere 20 pagine sugli automi usati per la nuova grammatica e poi fare pratica.

La differenza tra un programmatore ed un analista/progettista software è la stessa tra un meccanico che sa montare un carburatore e un ingegnere che lo ha progettato e sa "perchè".

AngeL)
17-10-2006, 19:54
sono tutte cose dove a livello di hobbie ci si può cimentare, ma bisogna comprendere che non serve ad un fiko secco.un hobby è una cosa che si fa per divertirsi, non per fini particolariLa differenza tra un programmatore ed un analista/progettista software è la stessa tra un meccanico che sa montare un carburatore e un ingegnere che lo ha progettato e sa "perchè".infatti io non sono l'ingegnere, ma il meccanico.

k0nt3
17-10-2006, 20:13
TorpedoBlu... secondo il tuo ragionamento non dovrei nemmeno cambiare una candela alla mia moto perchè non sono un meccanico (e quindi dovrei chiamare angel :asd: )
ma dai.. la programmazione è anche un hobby, non solo un lavoro! e può essere anche divertente e può portare anche soddisfazione

ps. tra le altre cose traspare dai tuoi discorsi che gli ingegneri sanno tutto mentre tutti gli altri no... io sono ingegnere ma mi vergognerei di esserlo se tutti gli ingegneri fossero come te

pps. si vede anche che non ti sei mai divertito a programmare... ah bei tempi quando da solo mi sono messo a imparare il pascal :sofico:

xglobusx
17-10-2006, 20:37
inizierei con java, secondo me riesci ad ottenere risultati più in breve tempo.
che programmi vorresti scrivere?
io ho quasi finito ing informatica, programmare per divertimento non significa farsi il mazzo per scrivere SO..non credo interessi farlo a chi programma per hobby, almeno all'inizio.

AngeL)
17-10-2006, 20:45
TorpedoBlu... secondo il tuo ragionamento non dovrei nemmeno cambiare una candela alla mia moto perchè non sono un meccanico (e quindi dovrei chiamare angel :asd: )
candele rrriparasii :D :asd:

AngeL)
17-10-2006, 20:45
programmare per divertimento non significa farsi il mazzo per scrivere SO..non credo interessi farlo a chi programma per hobby:mano:

TorpedoBlu
17-10-2006, 22:21
TorpedoBlu... secondo il tuo ragionamento non dovrei nemmeno cambiare una candela alla mia moto perchè non sono un meccanico (e quindi dovrei chiamare angel :asd: )
ma dai.. la programmazione è anche un hobby, non solo un lavoro! e può essere anche divertente e può portare anche soddisfazione

ps. tra le altre cose traspare dai tuoi discorsi che gli ingegneri sanno tutto mentre tutti gli altri no... io sono ingegnere ma mi vergognerei di esserlo se tutti gli ingegneri fossero come te

pps. si vede anche che non ti sei mai divertito a programmare... ah bei tempi quando da solo mi sono messo a imparare il pascal :sofico:


mi sono sempr divertito a programmare, per questo so quanto è importante conoscere la teoria che sta dietro.
Non ho mai detto che gli ingegneri sanno tutto, ma che sono preparati per la progettazione, non travisare le mie parole

Dolph69
17-10-2006, 22:22
inizierei con java, secondo me riesci ad ottenere risultati più in breve tempo.
che programmi vorresti scrivere?
io ho quasi finito ing informatica, programmare per divertimento non significa farsi il mazzo per scrivere SO..non credo interessi farlo a chi programma per hobby, almeno all'inizio.
Ringrazio anche te ,e tutti quelli che mi stanno dando consigli,e siccome non sono uno che si fissa sulle cose ,ma apprezza i consigli degli altri,mi sono anche documentato sul Java in questi giorni.
A prima vista,perchè di questo si tratta,ho notato che il linguaggio non è molto diverso dal c#,anche nella sintassi,il problema è che sto cercando di capire se mi conviene imparare qualche cosa di semplice come il Python,che però no ha una RAD,oppure sbattere la faccia in qualche cosa di più complesso per avere magari dei vantaggi in futuro.Sia chiaro che io intendo programmare per passione verso l'informatica,ma non vedo perchè in un futuro non possa rendere produttiva quasta mia passione ,chessò programmando un'interfaccia che mi permetta di creare e gestire un Dominio di una Lan ,o un proxy,o un server di posta,visto che ci sto dentro tutto il gorno :D
Sto valutando anche il VB2005 Express,mi sembra più semplice come sintassi,e forse adatto alle mie esigenze.
Giuro che se Python avesse una RAD non avrei esitazioni :)
ByeZ

gola
17-10-2006, 22:23
lascia stare torpedo, è una causa persa, lascia stare, se non capiscono che per fare gli esercizi prima bisogna studiare non è colpa loro..

PGI-Bis
17-10-2006, 22:35
lascia stare torpedo, è una causa persa, lascia stare, se non capiscono che per fare gli esercizi prima bisogna studiare non è colpa loro..

ah si? E di chi la colpa, visto che io non l'ho capito?

Dolph69
18-10-2006, 00:38
lascia stare torpedo, è una causa persa, lascia stare, se non capiscono che per fare gli esercizi prima bisogna studiare non è colpa loro..
Hem...mo mi sto un pò scocciando.
Se la mettiamo su questo piano,allora vi dico che un ragazzo che si chiama Valentino,insieme a me e ad un Team di Sviluppo di Prato ha programmato un Videogame che è stato distribuito in tutto il mondo.Valentino lo ha programmato in c ,66000 righe di codice ,autodidatta.Ha fatto il codice principale ,e i programmi satellite che si occupavano della compressione degli sfondi degli sprite ecc....
Se come dite voi senza univeristà non si va da nessuna parte ,come è roiuscito a fare tanto??E si parlava di c,non di Basic.

gola
18-10-2006, 14:28
Hem...mo mi sto un pò scocciando.
Se la mettiamo su questo piano,allora vi dico che un ragazzo che si chiama Valentino,insieme a me e ad un Team di Sviluppo di Prato ha programmato un Videogame che è stato distribuito in tutto il mondo.Valentino lo ha programmato in c ,66000 righe di codice ,autodidatta.Ha fatto il codice principale ,e i programmi satellite che si occupavano della compressione degli sfondi degli sprite ecc....
Se come dite voi senza univeristà non si va da nessuna parte ,come è roiuscito a fare tanto??E si parlava di c,non di Basic.

e che centra

TorpedoBlu
18-10-2006, 14:29
ah beh, ascolta non metto in dubbio la difficoltà che ci può essere dietro la programmazione di un videogame, ma il fatto che sia stato distribuito in grande stile non vuol certo dire che è stato programmato bene, ci sono altri parametri di valutazione sicuramente + di marketing.
Detto questo in un videogame, sicuramente ci sono librerie dedicate (non ha usato GC?) se poi lui ha fatto da zero la parte di fisica, di realtà virtuale allora è davvero un genio visto che ci sono calcoli di spazi vettoriali, diagrammi Hasse, differenziali, ecc. ecc..

Ammettiamo che sia un genio, lui ha studiato e non ha studiato laprogrammazione (il linguaggio C per definizione è PICCOLO, si apprende la sintassi in un paio d'ore) ma la fisica, la matematica discreta e la dinamica.

Non entro nel merito della programmazione di videogame poichè ne so poco (non niente) ma dire programmare vuol dire scrivere, oltre alla fantasia bisogna sapere cosa si sta scrivendo, non ci si mette davanti ad un file vuoto e si programma da zero, prima si progetta su un foglio la propria idea: chi ha studiato ha la metodologia di progettazione che permette lui di costruire un buon software seguendo il cliclo produttivo.

Ad esempio concetti come: analisi di fattibilità, analisi e modellazione del dominio applicativo, analisi dei requisiti progetto architetturale ,progetto dettagliato, modulo software....

AngeL)
18-10-2006, 14:53
il linguaggio C per definizione è PICCOLO, si apprende la sintassi in un paio d'ore
ah si... e ora il c è piccolo... :rolleyes:

TorpedoBlu
18-10-2006, 15:29
ah si... e ora il c è piccolo... :rolleyes:

per definizione del libro "C Didattica e Programmazione" di Al Kelley e Ira Pohl.

La sintassi del C è molto piccola, molto limitata, per questo è difficile da leggere, ma è un linguaggio procedurale quindi è giusto che sia così visto che non è di altissimo livello.
Lo standard ANSI poi definisce delle conenzioni che lo rendono meglio interpretabile, ma è cmq ostico alla lettura.

Tu la pensi diversamente da Kelley e Pohl ?

AngeL)
18-10-2006, 15:41
La sintassi del C è molto piccola, molto limitata, per questo è difficile da leggere, ma è un linguaggio procedurale quindi è giusto che sia così visto che non è di altissimo livello.
adesso salta fuori che il c è piccolo perchè i programmatori senza laurea lo usano... tu che sei un genio che linguaggio usi? assembly? --

k0nt3
18-10-2006, 15:43
ah beh, ascolta non metto in dubbio la difficoltà che ci può essere dietro la programmazione di un videogame, ma il fatto che sia stato distribuito in grande stile non vuol certo dire che è stato programmato bene, ci sono altri parametri di valutazione sicuramente + di marketing.
Detto questo in un videogame, sicuramente ci sono librerie dedicate (non ha usato GC?) se poi lui ha fatto da zero la parte di fisica, di realtà virtuale allora è davvero un genio visto che ci sono calcoli di spazi vettoriali, diagrammi Hasse, differenziali, ecc. ecc..

Ammettiamo che sia un genio, lui ha studiato e non ha studiato laprogrammazione (il linguaggio C per definizione è PICCOLO, si apprende la sintassi in un paio d'ore) ma la fisica, la matematica discreta e la dinamica.

Non entro nel merito della programmazione di videogame poichè ne so poco (non niente) ma dire programmare vuol dire scrivere, oltre alla fantasia bisogna sapere cosa si sta scrivendo, non ci si mette davanti ad un file vuoto e si programma da zero, prima si progetta su un foglio la propria idea: chi ha studiato ha la metodologia di progettazione che permette lui di costruire un buon software seguendo il cliclo produttivo.

Ad esempio concetti come: analisi di fattibilità, analisi e modellazione del dominio applicativo, analisi dei requisiti progetto architetturale ,progetto dettagliato, modulo software....
fisica o non fisica (che poco ha a che vedere con la programmazione e la progettazione), metodi rigorosi o metodi improvvisati... una cosa è certa: un programma di 66000 righe di codice in C non è facile da portare a compimento. quindi non credo che il programma sia fatto così male (con riserva perchè sarebbe bene provarlo prima), altrimenti non sarebbe arrivato nemmeno alla distribuzione.
penso che quello che conta di più in questo caso è la sete di conoscenza.. solo così si può camminare con le proprie gambe.
comunque per tornare al discorso del percorso accademico... secondo voi uno deve aspettare di andare a scuola/università per imparare a programmare? non so voi ma la mia passione è nata prima (quando insegneranno a programmare alle elementari? :sofico: ). che poi con un percorso accademico c'è un valore aggiunto non c'è dubbio, ma comunque non vedo perchè uno non può avere voglia di imparare a programmare senza essere un programmatore professionista. allora tutti quelli che suonano uno strumento per hobby dovrebbero smettere? è la stessa cosa.. anche loro dovrebbero fare il conservatorio per conoscere tutte le basi.. bah

k0nt3
18-10-2006, 15:49
adesso salta fuori che il c è piccolo perchè i programmatori senza laurea lo usano... tu che sei un genio che linguaggio usi? assembly? --
è vero che il C è piccolo, non intendeva dire che i programmatori senza laurea lo usano, alto livello indica altre cose.
è vero anche che la sintassi si impara in fretta (forse non un paio di ore, ma comunque in fretta).
ma saper programmare in C non vuol dire conoscere la sintassi del C! magari bastasse solo quello

TorpedoBlu
18-10-2006, 16:00
è vero che il C è piccolo, non intendeva dire che i programmatori senza laurea lo usano, alto livello indica altre cose.
è vero anche che la sintassi si impara in fretta (forse non un paio di ore, ma comunque in fretta).
ma saper programmare in C non vuol dire conoscere la sintassi del C! magari bastasse solo quello

esattamente


Certo ragazzi che se non sapete cosa vuol dire linguaggio piccolo e programmazione di alto livello..... di informatica non sapete proprio un fiko, e non è per fare il saputello, ma il concetto di linguaggio ad alto livello (lontano dalla macchina e vicino al mondo reale tramite processo di astrazione ) è un concetto base, diciamo da prima lezione, se non si capisce questo non si può capire la programmazione moderna (soprattutto quella ad oggetti)

Il C è piccolo come sintassi (nel senso che ci sono poche cose da sapere come sintassi) ma è molto difficile appunto per la teoria che ci sta sotto, quella che come autodidatta non si impara!! come si fa a programmare sistema operativo senza sapere quale algo di scheduling usa il sistema operativo o la differenza tra job e processo???? senza sapere come si calcola uno stack di memoria come si fa una funzione ricorsiva? senza sapere la matematica come si fa una funzione ricorsiva?????


Ultima cosa: il numero di righe non è indice di efficenza, anzi! meno sono le righe di codice e più è ottimizzato, leggero e manutenibile!!!! Sorvolo sul fatto che per la programmazione di videogames non serva la matematica e la fisica perchè è la dimostrazione dell'ignoranza in materia...

AngeL)
18-10-2006, 16:07
il numero di righe non è indice di efficenza, anzi! meno sono le righe di codice e più è ottimizzato, leggero e manutenibile!!!! Sorvolo sul fatto che per la programmazione di videogames non serva la matematica e la fisica perchè è la dimostrazione dell'ignoranza in materia...
ecco! vedi?
QUALUNQUE cosa faccia uno che non è laureato in informatica non va bene...
allora programmare un videogioco è una cavolata... e allora tutti quei cretini che lavorano per la microsoft e si fanno il mazzo dalla mattina alla sera a scrivere codice per i videogiochi, sono dilettanti?

pequeno
18-10-2006, 16:11
penso che quello che conta di più in questo caso è la sete di conoscenza.. solo così si può camminare con le proprie gambe.
..che poi con un percorso accademico c'è un valore aggiunto non c'è dubbio, ma comunque non vedo perchè uno non può avere voglia di imparare a programmare senza essere un programmatore professionista. allora tutti quelli che suonano uno strumento per hobby dovrebbero smettere? è la stessa cosa.. anche loro dovrebbero fare il conservatorio per conoscere tutte le basi.. bah
Mi trovi pienamente d'accordo..
Non credo sia un'eresia pensare di poter acquisire determinate conoscenze da autodidatta.. non capisco perchè risulti così assurdo pensare a qualcuno che studia certi argomenti pur non frequentando corsi universitari..
con questo voglio dire che una persona che studia un linguaggio di programmazione può affiancare tale studio a quello dell'ingegneria del software, delle reti, dei sistemi operativi, degli algoritmi, della matematica etc.. mica solo sapere a memoria la sintassi del c..
e se un meccanico volesse capire com'è fatto il carburatore e il perchè è fatto in quel modo? :rolleyes:

k0nt3
18-10-2006, 16:22
senza sapere la matematica come si fa una funzione ricorsiva?????
usavo la ricorsione prima ancora di saper fare le derivate :asd:


Ultima cosa: il numero di righe non è indice di efficenza, anzi! meno sono le righe di codice e più è ottimizzato, leggero e manutenibile!!!!
non ho detto che 66000 righe vuol dire programma efficiente, ma che 66000 righe non stanno in piedi per caso! certo bisogna provarlo per esserne certi, ma se è arrivato a finire il progetto vuol dire che l'ha organizzato bene! pensa che a volte si fallisce pure con le metodologie super testate.

ps. hai mai scritto 66000 righe di codice?

Sorvolo sul fatto che per la programmazione di videogames non serva la matematica e la fisica perchè è la dimostrazione dell'ignoranza in materia...

guarda io parlo per esperienza personale.. la matematica e la fisica non sono ostacoli insormontabili. uno si può documentare perchè ormai ogni tipo di gioco è stradocumentato e quindi le tecniche usate sono più o meno note.
ad esempio... considera la gestione delle collisioni. in teoria bisognerebbe conoscere a fondo la matematica e la geometria per fare un algoritmo efficiente, mentre in pratica uno apre google (o compra un libro) e cerca di documentarsi sui vari algoritmi possibili e sulle loro caratteristiche. in più può anche provare a ottimizzarlo ulteriormente per la propria applicazione (e se c'è la sete di conoscenza succede, per cui non è un banale copia-incolla).
c'è una frase nella firma di qualcuno qui nel forum che ora non ricordo che più o meno dice: "in teoria non c'è differenza tra pratica e teoria, ma in pratica sì".
pensateci :D

PGI-Bis
18-10-2006, 16:47
e se un meccanico volesse capire com'è fatto il carburatore e il perchè è fatto in quel modo? :rolleyes:

:D IMPOSSIBILE! Deve avere come minimo 400 lauree! Una per capire la farfalla, una per capire il tirante, una per la vite... :D

TorpedoBlu
18-10-2006, 19:28
non ho mai detto che scrivere un videogioco è una cazzata, continuate a travisare le mie parole, anzi è una cosa molto complicata, ma dipende com viene fata, come vedi anchetu ammetti che tanto ormai si trova tutto in rete, vero, ma non creerai mai nulla di innovativo perchè userai sempre le soluzioni proposte senza capirne il significato.

mi hai parlato di algoritmi di collisioni, va bene, allora se trovi 2 algoritmi che hanno anche i parametri di ottimizzazioni e hai :
algoritmo N.1 che impiega O(n^2) nel caso medio e Theta(n/2) nel caso migliore
algoritmo N.2 che impiega O(logn(n)) e O(n)

te quale usi?? cerchi in qualche formu chiedendo a qualcuno che lo sa magari??

Io non ho mai detto che uno non può studiare lo sviluppo software senza seguire l'università, le mie parole vogliono solo dire che bisogna studiare la teoria che sta dietro la programmazione, che è più importante.

Per inciso uno dei miei progetti è il passaggio da Web a WebServices tramite l’uso di tecniche di reverse engineering e modellazione OO e aspect Oriented.
Il software che sto sviluppandoi consentirà di evitare di scrivere codice soffermandosi solo sulla progettazione.

La maggiorparte dei team di professionisti che conosco (NOKIA, BancaIntesa, SUN, Progetto Artemis) sviluppano la maggiorparte delle ore sulla progettazione, gli schemi UML,OCL,ER, Disegno di Architettura e solo il 30% a scrivere codice.

Volete studiare la progettazione software? bene oltre al codice sorgente cercate di capire come si sviluppa il software.

Ci sono troppi programmatori autodidatti che vengono sfruttati a cottimo (in accenture molti sono pagati a riga di codice :doh: ) che oltre ad inflazionare il mercato rendono mediocre il prodotto finito.

Io vorrei vedere persone davvero curiose di scoprire come sviluppare software migliore e soprattuto libero, e credetemi è molto più divertente ed esaltante.

k0nt3
18-10-2006, 20:19
non ho mai detto che scrivere un videogioco è una cazzata, continuate a travisare le mie parole, anzi è una cosa molto complicata, ma dipende com viene fata, come vedi anchetu ammetti che tanto ormai si trova tutto in rete, vero, ma non creerai mai nulla di innovativo perchè userai sempre le soluzioni proposte senza capirne il significato.
perchè non se ne deve capire il significato? il concetto di algoritmo è abbastanza elementare nella programmazione.. penso che qualsiasi algoritmo possa essere capito anche da autodidatti (serve sempre carta e penna prima di tutto :asd: ).
detto questo anche un autodidatta può inventare un algoritmo e quindi fare qualcosa di innovativo

mi hai parlato di algoritmi di collisioni, va bene, allora se trovi 2 algoritmi che hanno anche i parametri di ottimizzazioni e hai :
algoritmo N.1 che impiega O(n^2) nel caso medio e Theta(n/2) nel caso migliore
algoritmo N.2 che impiega O(logn(n)) e O(n)

te quale usi?? cerchi in qualche formu chiedendo a qualcuno che lo sa magari??

ora stai un attimo scollegandoti dalla realtà... non c'è bisogno di formalizzare il problema per capire che un algoritmo ha una complessità inferiore e l'altro superiore! prendi l'algoritmo e vedi quale esegue meno confronti (nel caso delle collisioni) e si fa benissimo a occhio, mica c'è bisogno di chissà quale concetto matematico. poi c'è sempre la prova sul campo, e cioè l'algoritmo migliore è quello che ci impiega di meno ;)

Volete studiare la progettazione software? bene oltre al codice sorgente cercate di capire come si sviluppa il software.
e chi ha detto che vuole studiare la progettazione software? in questo thread si parlava di imparare a programmare! e sfido chiunque a imparare a progettare prima di imparare a programmare

Ci sono troppi programmatori autodidatti che vengono sfruttati a cottimo (in accenture molti sono pagati a riga di codice :doh: ) che oltre ad inflazionare il mercato rendono mediocre il prodotto finito.
il problema è solo italiano

Io vorrei vedere persone davvero curiose di scoprire come sviluppare software migliore e soprattuto libero, e credetemi è molto più divertente ed esaltante.
è divertente e esaltante anche programmare! sono proprio due punti diversi che non sono nemmeno in mutua esclusione

TorpedoBlu
18-10-2006, 20:42
scusa scusa scusa??? tu vai a vedere il codice quanti confronti o quanti cicli while??? e se hai un grafo da visitare, o un albero di decisione? (strutture dati elementari) che fai? ti disegni l'albero? con tutti i suoi n nodi??? ma stai ammattendo??? e cmq qualsiasi analista che scrive un algoritmo scrive la complessità appunto per indicarci come e quando usarlo.... eh eh se gli algoritmi sono una cosa facile.....guarda più parli e più capisco quanto sai poco in materia, come fai ad applicare un algoritmo greedy o la programmazione dinamica??? la ricorsione la conosci?? e come fai a scrivere una ricorsione (vera) senza le equazioni di ricorsione?? scusa ma ad esempio se devi trovare il percorso più corto in uno grafo, anzi in uno stradario(così sono + concreto) tu come ti muovi? cerchi stradario su google???? oppure provi tutte le strade possibili???? no cerchi chiaramente un algoritmo, ma come fai a scegliere???? se non sai come si applicano???????
Sai quante sono le situazioni del genere???

k0nt3
18-10-2006, 22:14
scusa scusa scusa??? tu vai a vedere il codice quanti confronti o quanti cicli while???
non ho parlato di codice, ma di algoritmo che è a un livello di astrazione superiore

e se hai un grafo da visitare, o un albero di decisione? (strutture dati elementari) che fai? ti disegni l'albero? con tutti i suoi n nodi??? ma stai ammattendo???

e chi ha bisogno di disegnare il grafo! a parte che esiste l'intelletto umano, e quindi se inizi a simulare l'algoritmo dopo pochi passi capisci come va a finire e arrivi alla conclusione. poi molto spesso la soluzione si può trovare qualitativamente a intuito senza bisogno di invocare nessun concetto strano.

e cmq qualsiasi analista che scrive un algoritmo scrive la complessità appunto per indicarci come e quando usarlo.... eh eh se gli algoritmi sono una cosa facile.....
nessuno ha detto che gli algoritmi sono facili, ma solo che non serve essere un analista per scriverne uno. l'analista non fa altro che esprimere mediante un modello matematico qualcosa che già tutti sanno informalmente.

guarda più parli e più capisco quanto sai poco in materia
mi dispiace deluderti :asd:

come fai ad applicare un algoritmo greedy o la programmazione dinamica???
c'è bisogno di sapere che l'algoritmo si chiama greedy per applicarlo a qualcosa? è semplicemente una soluzione comune a molti problemi e perciò gli si è dato un nome! per farti un esempio.. una volta in completa autonomia ho implementato un algoritmo branch and bound, ma non avevo la più pallida idea di averlo fatto, l'ho scoperto molto dopo quando l'ho studiato ;)

la ricorsione la conosci??
ti ho già detto.. la ricorsione ho iniziato a usarla prima di saper fare le derivate :sofico:

e come fai a scrivere una ricorsione (vera) senza le equazioni di ricorsione??
equazioni alle ricorrenze? che bisogno c'è di formalizzare il problema? l'algoritmo funziona lo stesso

scusa ma ad esempio se devi trovare il percorso più corto in uno grafo, anzi in uno stradario(così sono + concreto) tu come ti muovi? cerchi stradario su google???? oppure provi tutte le strade possibili???? no cerchi chiaramente un algoritmo, ma come fai a scegliere???? se non sai come si applicano???????
Sai quante sono le situazioni del genere???
se devo cercare il percorso più breve in un grafo mi metto di impegno e scrivo un algoritmo che lo fa (principalmente ci sono 2 grandi famiglie, breath first e depth first), poi pian piano lo ottimizzo in modo da renderlo efficiente.
comunque io con il cerca con google intendevo che si può imparare a usare gli algoritmi anche al di fuori del contesto scolastico. è ovvio che quando uno ha un pò di esperienza non cerca nemmeno su google perchè sa già quale strada prendere

mindwings
18-10-2006, 22:34
mi inserisco nella discussione ma solo per riportare il commento del mio presidente di facoltà di informatica (tecno. prod. softw.)

"Voi principlamente dovete progettare il software e produrre progetti implementando varie tecnologie , il codice lasciamolo scrivere ai cinesi"

k0nt3
18-10-2006, 22:46
mi inserisco nella discussione ma solo per riportare il commento del mio presidente di facoltà di informatica (tecno. prod. softw.)

"Voi principlamente dovete progettare il software e produrre progetti implementando varie tecnologie , il codice lasciamolo scrivere ai cinesi"
bene allora spiega a dolph69 come si fa a imparare a progettare il software prima di imparare a programmare. forse vi è sfuggito il reale senso di questo thread

ps. comunque casomai saranno gli indiani che scrivono il codice

pps. non vedo perchè privarci del piacere di scrivere codice (anche perchè scrivere bene il codice non affatto banale)

TorpedoBlu
18-10-2006, 23:04
bene allora spiega a dolph69 come si fa a imparare a progettare il software prima di imparare a programmare. forse vi è sfuggito il reale senso di questo thread

ps. comunque casomai saranno gli indiani che scrivono il codice

pps. non vedo perchè privarci del piacere di scrivere codice (anche perchè scrivere bene il codice non affatto banale)


esiste un modo solo per scrivere codice preciso, leggibile ed elegante di un modulo software.
altresì esistono n modi per implementare un modulo software.

Pensa ad una catena di montaggio, gli operai assemblano la macchina (possono decidere con che mano impugnare il trapano e se respirare o meno mentre trapanano, pensano che montare una macchina li renda costruttori di autoveicoli e che gli ingegneri siano degli idioti)
poi guarda l'ingegnere che ha progettato il veicolo.

Sei la negazione dell'informatica, quello che sai dell'informatica deriva dal lavoro di gente che ha sudato su libri.


PS: per il calcolo dei cammini non c sono mica solo le alternative che hai detto.. hai dimenticato la programmazione dinamica, l'ordinamento topologico, e le soluzioni a problemi difficili (commesso viaggiatore). ad esempio negli algoritmi di routing si usano algo greedy per il calcolo dei cammini, ma se non sai nemmeno quanto è grande un pakketto del protocollo ethernet come fai a capire l'instradamento e gli algoritmi usati??

senti siccome è una causa persa, rimani nella tua mediocrità, ok? non rispondo più perchè mi sono scocciato...

k0nt3
18-10-2006, 23:17
esiste un modo solo per scrivere codice preciso, leggibile ed elegante di un modulo software.
altresì esistono n modi per implementare un modulo software.
la prima cosa che ti insegnano è che esistono infiniti modi per implementare la stessa cosa e non si può dire che uno è meglio dell'altro.

Pensa ad una catena di montaggio, gli operai assemblano la macchina (possono decidere con che mano impugnare il trapano e se respirare o meno mentre trapanano, pensano che montare una macchina li renda costruttori di autoveicoli e che gli ingegneri siano degli idioti)
poi guarda l'ingegnere che ha progettato il veicolo.

peccato che programmare non sia come asseblare in una catena di montaggio.. è solo il sogno dei primi ingegneri del software. per fortuna ci si è evoluti

Sei la negazione dell'informatica, quello che sai dell'informatica deriva dal lavoro di gente che ha sudato su libri.

e da cosa l'hai capito? quello che so in realtà deriva dal mio sudore

PS: per il calcolo dei cammini non c sono mica solo le alternative che hai detto.. hai dimenticato la programmazione dinamica, l'ordinamento topologico, e le soluzioni a problemi difficili (commesso viaggiatore).
principalmente sono due le categorie di algoritmi per visitare i grafi, poi ci possono essere casi particolari a seconda della situazione (non ho escluso altre soluzioni)

ad esempio negli algoritmi di routing si usano algo greedy per il calcolo dei cammini, ma se non sai nemmeno quanto è grande un pakketto del protocollo ethernet come fai a capire l'instradamento e gli algoritmi usati??

ormai stai delirando.. continua a autoconvincerti che non so tutte queste cose :rolleyes: per dirtene una... quando ho fatto il corso sui protocolli per internet ho passato ore a catturare pacchetti dalla rete per vedere come erano fatti nella realtà (e ho anche scoperto cose molto interessanti :asd: )

senti siccome è una causa persa, rimani nella tua mediocrità, ok? non rispondo più perchè mi sono scocciato...
come desidera magnifico progettatore di software che non si sporca le mani nel codice :asd:

ps. ti do un consiglio.. smettila di usare termini tecnici che non fai paura a nessuno ;) ti ricordo che in questo thread c'è gente che vuole imparare a programmare, quindi sarebbe bene usare un linguaggio semplice

Dolph69
18-10-2006, 23:53
ah beh, ascolta non metto in dubbio la difficoltà che ci può essere dietro la programmazione di un videogame, ma il fatto che sia stato distribuito in grande stile non vuol certo dire che è stato programmato bene, ci sono altri parametri di valutazione sicuramente + di marketing.
Detto questo in un videogame, sicuramente ci sono librerie dedicate (non ha usato GC?) se poi lui ha fatto da zero la parte di fisica, di realtà virtuale allora è davvero un genio visto che ci sono calcoli di spazi vettoriali, diagrammi Hasse, differenziali, ecc. ecc..

Ammettiamo che sia un genio, lui ha studiato e non ha studiato laprogrammazione (il linguaggio C per definizione è PICCOLO, si apprende la sintassi in un paio d'ore) ma la fisica, la matematica discreta e la dinamica.

Non entro nel merito della programmazione di videogame poichè ne so poco (non niente) ma dire programmare vuol dire scrivere, oltre alla fantasia bisogna sapere cosa si sta scrivendo, non ci si mette davanti ad un file vuoto e si programma da zero, prima si progetta su un foglio la propria idea: chi ha studiato ha la metodologia di progettazione che permette lui di costruire un buon software seguendo il cliclo produttivo.

Ad esempio concetti come: analisi di fattibilità, analisi e modellazione del dominio applicativo, analisi dei requisiti progetto architetturale ,progetto dettagliato, modulo software....

Per inciso,la Virgin non avrebbe mai preso un Game programmato a cacchio.
La cosa che mi infastidisce è che siccome è autodidatta allora ha sicuramente programmato male.Era ed è un gran programmatore ,senza per questo essere un genio esclusivamente perchè non ha fatto l'università.
66000 righe di codice in C con i compilatori che ci stavano al tempo sul dos....erano caxxi amari.Eppure......

Dolph69
18-10-2006, 23:54
esattamente


Certo ragazzi che se non sapete cosa vuol dire linguaggio piccolo e programmazione di alto livello..... di informatica non sapete proprio un fiko, e non è per fare il saputello, ma il concetto di linguaggio ad alto livello (lontano dalla macchina e vicino al mondo reale tramite processo di astrazione ) è un concetto base, diciamo da prima lezione, se non si capisce questo non si può capire la programmazione moderna (soprattutto quella ad oggetti)

Il C è piccolo come sintassi (nel senso che ci sono poche cose da sapere come sintassi) ma è molto difficile appunto per la teoria che ci sta sotto, quella che come autodidatta non si impara!! come si fa a programmare sistema operativo senza sapere quale algo di scheduling usa il sistema operativo o la differenza tra job e processo???? senza sapere come si calcola uno stack di memoria come si fa una funzione ricorsiva? senza sapere la matematica come si fa una funzione ricorsiva?????


Ultima cosa: il numero di righe non è indice di efficenza, anzi! meno sono le righe di codice e più è ottimizzato, leggero e manutenibile!!!! Sorvolo sul fatto che per la programmazione di videogames non serva la matematica e la fisica perchè è la dimostrazione dell'ignoranza in materia...


Cosa ne sai tu se le 66000 righe erano troppe o il giusto...ma guarda questo...

marco.r
19-10-2006, 00:26
mi inserisco nella discussione ma solo per riportare il commento del mio presidente di facoltà di informatica (tecno. prod. softw.)

"Voi principlamente dovete progettare il software e produrre progetti implementando varie tecnologie , il codice lasciamolo scrivere ai cinesi"
Cosi' come lasciavamo fare i vestiti, le scarpe e i pc. Il problema e' che ora se li progettano, se li fanno e ce li vendono. Sara' la stessa cosa per il software.

marco.r
19-10-2006, 00:46
Una volta si capiva il cambio di stagione con l'arrivo del freddo, ora che non ci son piu' le mezze stagioni devo accontentarmi dell'inizio dei corsi e il conseguente fiorire di discussioni in questa sezione :D.


sai perchè la maggiorparte del software ha più bachi di quanto la teoria ne lascia irrisolti?? perchè molti si autonominano programmatori, anzi progettisti software!
ma prima di buttarsi nella pratica di ogni disciplina dovrebbe esserci la teoria, no?

Ci vogliono entrambe e l'ideale e che procedano di pari passi. La pratica e' un ottimo metodo per capire la teoria.



Con lo studio si capisce il perchè un linguaggio è strutturato in una certa maniera, ecco perchè io non studio nessun linguaggio in particolare, so che il C è un linguaggio di tipo 2 nella grammatica di Chomsky e mi serve una semplice appendice di 5 pagine per prorgammare, quando uscirà il linguaggio X che usa il paradigma ad aspetti non dovrò leggermi un libro di 1000pagine con esempi sul codice, ma leggere 20 pagine sugli automi usati per la nuova grammatica e poi fare pratica.

Balle, e mi si perdoni il giudizio stringato.Un linguaggio di programmazione ha caratteristiche che vanno al di la' della grammatica e della definizione (non per nulla a progettare i linguaggi di programmazione sono di solito i programmatori e non i progettisti). Ad un progettista magari di questi dettagli non importa nulla, ma da qui a dire che bastano poche pagine per programmare. Se preferisci, diciamo che stai sottovalutando quel tuo "e poi far pratica".


La differenza tra un programmatore ed un analista/progettista software è la stessa tra un meccanico che sa montare un carburatore e un ingegnere che lo ha progettato e sa "perchè".
Esatto, ma magari non lo sa montare.

cionci
19-10-2006, 01:45
Ragazzi...cerchiamo di darci una calmata...
Se posso dire la mia, un po' di teoria nella programmazione serve sempre, ma non è detto che sia necessaria un'università per impararla, molta la si impara con la pratica, altra la si impara sui libri...quindi sicuramente nessuna strada è preclusa a chi non ha fatto l'università...
Altresì si può riconoscere che l'approccio di chi conosce già una teoria è sicuramente più indolore e riesce ad applicarla prima e probabilmente senza eccessive perdite di tempo...ma non è detto... Molte volte le teorie ci si scordano e siamo nuovamente costretti a ritornare a studiare... Non credete che una volta finita l'università possiate chiudere i libri e godete i frutti del vostro studio...anzi, è proprio a questo punto che probabilmente dovrete studiare di più ed argomenti più complessi...

thebol
19-10-2006, 09:42
esiste un modo solo per scrivere codice preciso, leggibile ed elegante di un modulo software.
altresì esistono n modi per implementare un modulo software.

Pensa ad una catena di montaggio, gli operai assemblano la macchina (possono decidere con che mano impugnare il trapano e se respirare o meno mentre trapanano, pensano che montare una macchina li renda costruttori di autoveicoli e che gli ingegneri siano degli idioti)
poi guarda l'ingegnere che ha progettato il veicolo.
senti siccome è una causa persa, rimani nella tua mediocrità, ok? non rispondo più perchè mi sono scocciato...

è un pensiero che sta diventando sempre piu vecchio. I metodi agili (non si sono ancora imposti per svariate ragioni, ma stanno prendendo piede) dicono "quasi" il contrario di quello che dici tu. Niente 90% a progettare e 10% a codare. Anche perche in fase di progettazione non si puo prevedere tutto, per limiti umani, per limiti sulle richieste, sulle definizioni, e sopratutto perche spesso i requisiti cambiano col tempo, senza essere prevedibili a priori(come è facile prevedere un cambiamento che poi non avverrà mai)

In fase di coding invece si puo stare agili al cambiamento, senza un determinato scopo stabilito a priori, e senza dover disegnare diagrammi UML per ogni singola cosa, e senza imporre scelte sul futuro


ps.scendi dal pero della tua uber laurea e del tuo uber sapere plz, e se per caso ti scoccia stare a discutere :ciaociao:

mindwings
19-10-2006, 21:31
ad ogni modo imho la programmazione è importantissima :D
ma è una pratica che "chiunque" attrezzato di buone tecniche (che si affinano negli anni)
può esercitare (poi ovviamente dipende da altri fattori - sto semplificando)

premetto che ho iniziato da poco e mi diverto a vedere piccolissime applicazioni che girano con il codice che ho scritto indicando alla macchina cosa deve fare :D


La fase più complessa è sicuramente l'analisi e la progettazione quelle che richiedono
competenze "esclusive" :)

il commento del presidente secondo me si traduce in questo modo

Programmare è importante ma tu non venderti solo come programmatore
acquisci le competenze per la progettazione perchè sono quelle che fanno fare il
salto di qualità

TorpedoBlu
19-10-2006, 21:50
boh ragazzi fate come volete, io non ho espresso miei pensieri, ma cose che ho imparato da professori che al politecnico insegnano cos'è l'informatica, non è certo il forum di hwupgrade che può confutare tali parole.

Per il resto se qualcuno vuole materiale per studiare sono ben lieto di aiutare chiunque.

D4rkAng3l
19-10-2006, 23:10
la cosa che mi chiedo..io ho l'hobby dell'informatica e mi sono iscritto ad informatica o cmq vorrò lavorare nel campo...

ma non capisco...come si può avere l'hobby della programmazione se ciò poi non porta a nulla?cioè poi chi inizia come autodidatta vuole approdare a qualcosa di concreto (magari in ambito professionale) o cosa?

PGI-Bis
19-10-2006, 23:57
"Voi principlamente dovete progettare il software e produrre progetti implementando varie tecnologie , il codice lasciamolo scrivere ai cinesi"

E parliamo di un preside di facoltà, cioè uno che dovrebbe garantire che il cervello sia connesso prima di aprire bocca. Se a quel livello si spaccia questo ciarpame siam messi bene siamo...

cionci
20-10-2006, 00:07
ma cose che ho imparato da professori che al politecnico insegnano cos'è l'informatica, non è certo il forum di hwupgrade che può confutare tali parole.
Beh...certo non ti vengono a dire che l'univarsità non serve a niente :D

Comunque come ho già detto la teoria è importante, ma si può imparare sia con la pratica e sia essendo autodidatti...

Come ti hanno detto le metodologie agili non rispecchiano assolutamente quello che hai scritto sopra...eppure cominciano ad avere un interesse anche a livello accademico...

PS: forse ho convinto il mio prof a farmi fare una tesi sul test driven development :sofico:

dierre
20-10-2006, 00:13
L'ingegneria del software è quella branca dell'informatica che fa fare volume all'azienda che produce software, ma un ingegnere del software, se non è passato per la programmazione e non sa che significa programmare non è un ingegnere del software. Quindi...

k0nt3
20-10-2006, 09:33
Come ti hanno detto le metodologie agili non rispecchiano assolutamente quello che hai scritto sopra...eppure cominciano ad avere un interesse anche a livello accademico...
quoto! tant'è che le metodologie agili le ho affrontate in ingegneria del software 2. comunque secondo me l'ideale è una via di mezzo.. anche l'XP ha i suoi difettucci (vedi diamonds :asd: )
una cosa è certa! mi rifiuto di credere che al politecnico di milano abbiano insegnato che programmare è come assemblare in una catena di montaggio. è un errore madornale (ripeto.. i primi ingengeri del software la pensavano così e presto ci si è accorti che non era vero).
ma non capisco...come si può avere l'hobby della programmazione se ciò poi non porta a nulla?cioè poi chi inizia come autodidatta vuole approdare a qualcosa di concreto (magari in ambito professionale) o cosa?
chiedi a tutti quelli che strimpellano la chitarra... se non incidono un disco cosa lo fanno a fare? :huh:

D4rkAng3l
20-10-2006, 11:01
vabbè io strimpello la chitarra ma è una cosa diversa...strimpellare è rilassante...almeno la vedo come una cosa fine a se stessa ma programmare lo vedo come fine pratico per realizzare un progetto di qualche tipo...posso strimpellare e cazzeggiare quanto mi pare ma se pensassi che rimarrei sempre a fare esercizietti di C e che ciò non mi portasse oltre insomma non mi rilasserebbe poi troppo...

dierre
20-10-2006, 11:03
vabbè io strimpello la chitarra ma è una cosa diversa...strimpellare è rilassante...almeno la vedo come una cosa fine a se stessa ma programmare lo vedo come fine pratico per realizzare un progetto di qualche tipo...posso strimpellare e cazzeggiare quanto mi pare ma se pensassi che rimarrei sempre a fare esercizietti di C e che ciò non mi portasse oltre insomma non mi rilasserebbe poi troppo...

Io ti dico solo che prima per rilassarmi giocavo online, ora programmo.

ivenuti
20-10-2006, 11:52
TorpedoBlu, fammi capire: tu hai iniziato la laurea in informatica senza nemmeno iniziare a programmare una linea di codice? Solo così si capisce il senso del tuo intervento.

Però renditi conto che lo strano sei tu, non il 99% di chi programma per professione!

Mia esperienza: ho iniziato a programmare alle medie (in un dialetto del basic per computer MSX). I primi programmi erano idioti, scritti male e con tanti if/then/else e Goto. A rivederli ora mi chiedo se ero scemo.
Risposta: NO, ero semplicemente un autodidatta che non conosceva alcunché di programmazione.

Pero' se la passione ti guida vai avanti e arrivi in fondo (ora ho la laurea, scrivo articoli/libri di informatica e sviluppo in ambiente J2EE programmi professionali). Ovviamente comprendo l'importanza della formazione (e mai mi sognerei di dire che una laurea è inutile, tutt'altro!)

Però dai tuoi discorsi sembra: o parti da professionista o non ne fai nulla. Ma scusa: allora fino all'università (medie/superiori) non faresti manco vedere un compilatore ad un ragazzo???

Davvero non lo capisco. Diverso il discorso di dire "se sai scrivere un programma, non è detto che tu sia un programmatore e tanto meno un analista"

Ma qui si sta parlando di come iniziare, non di come considerarsi "arrivati"...

----

Ritornando al problema iniziale... (finalmente!):

intanto ti consiglio di capire le basi della programmazione Object Oriented, inizialmente almeno per comprendere i programmi scritti da altri

Poi impara un linguaggio (io non mi farei troppi problemi a iniziare con il C# o Java; python lo conosco poco). COmprati un buon libro e inizia da lì. Per problemi specifici vai in Rete (forum, ricerche mirate...)

Appena riesci a scrivere codice in maniera abbastanza veloce e hai padronanza dei concetti base, impara ad usare i "design pattern": ti aprono la mente! (ti fanno vedere quanto eleganti possono essere certe soluzioni a problemi ricorrenti).

Per l'UML: impara il minimo a capire i vari libri (puoi benissimo imparare a "Leggerli", per lo meno i diagrammi di classe, senza per forza andare oltre)

Spero di esserti stato utile...

icecube_HU
20-10-2006, 12:30
ma non capisco...come si può avere l'hobby della programmazione se ciò poi non porta a nulla?cioè poi chi inizia come autodidatta vuole approdare a qualcosa di concreto (magari in ambito professionale) o cosa?

Ma perche', scusa...???
Se e' un hobby, PER DEFINIZIONE non e' una professione !

Anch'io programmo per hobby da tanti anni, mi sarebbe piaciuto molto :cry: farlo diventare la mia professione, anche se per la verita' non ho mai fatto niente di concreto in proposito.... :O , e allora ?

Ho continuato ad interessarmi di informatica e a fare i miei programmi, alcune conoscenze le ho poi riportate nella mia professione, dove utilizziamo il computer a tempo pieno, divertendomi nello "stupire" i miei colleghi con modifiche in VBA ai loro banalissimi fogli Excel per automatizzare certi lavori, o a fornigli dei piccoli programmi "su misura" fatti da me, ecc....

Certo, ti auguro di riuscire in quello che non ho saputo fare io, e guadagnarti da vivere "divertendoti" ! ;)

cionci
20-10-2006, 12:40
Infatti... Seondo me programmare deve essere prima di tutto una passione e dopo una fonte di guadagno... Altrimenti chi ce lo fa fare ? Se volevo guadagnare e basta andavo a fare l'avvocato o il notaio :D

pequeno
20-10-2006, 13:50
Infatti... Seondo me programmare deve essere prima di tutto una passione e dopo una fonte di guadagno... Altrimenti chi ce lo fa fare ? Se volevo guadagnare e basta andavo a fare l'avvocato o il notaio :D

:asd: beh non ti saresti divertito al lavoro (in quel caso si parla di codice civile, penale, tributario etc. ma non di codice sorgente :D ) , ma in compenso sai quanti € per divertimenti vari?
Cmq sono d'accordo, io sono riuscito a trasformare quella che era un forte passione o hobby in un lavoro che mi permette di guadagnarmi la pagnotta..
beh è soddisfacente :)

Dolph69
20-10-2006, 14:18
----

Ritornando al problema iniziale... (finalmente!):

intanto ti consiglio di capire le basi della programmazione Object Oriented, inizialmente almeno per comprendere i programmi scritti da altri

Poi impara un linguaggio (io non mi farei troppi problemi a iniziare con il C# o Java; python lo conosco poco). COmprati un buon libro e inizia da lì. Per problemi specifici vai in Rete (forum, ricerche mirate...)

Appena riesci a scrivere codice in maniera abbastanza veloce e hai padronanza dei concetti base, impara ad usare i "design pattern": ti aprono la mente! (ti fanno vedere quanto eleganti possono essere certe soluzioni a problemi ricorrenti).

Per l'UML: impara il minimo a capire i vari libri (puoi benissimo imparare a "Leggerli", per lo meno i diagrammi di classe, senza per forza andare oltre)

Spero di esserti stato utile...

Si mi sei stato utile,e ti ringrazio.
Di certo ,tanto per riprendere il discorso riguardo hobby = perdita di tempo,il fatto di programmare per passione,non preclude al fatto che fra un pò di tempo non possa sviluppare una piccola applicazione per un utilizzo circoscritto alla mia azienda ,che si occupa di informatica quasi a 360 gradi.
Grazie ancora cmq.Ciao.

cionci
20-10-2006, 17:55
Dolph69:ecco il MUST sui design pattern: http://en.wikipedia.org/wiki/Design_Patterns
Il libro è quello citato in alto ;)

k0nt3
20-10-2006, 18:08
vabbè io strimpello la chitarra ma è una cosa diversa...strimpellare è rilassante...almeno la vedo come una cosa fine a se stessa ma programmare lo vedo come fine pratico per realizzare un progetto di qualche tipo...posso strimpellare e cazzeggiare quanto mi pare ma se pensassi che rimarrei sempre a fare esercizietti di C e che ciò non mi portasse oltre insomma non mi rilasserebbe poi troppo...
scrivere una canzone o scrivere un programma sono due cose molto ma molto simili. infatti in tutti e due i casi si ha a disposizione un set finito di elementi da combinare insieme e un set di regole che definiscono cosa si può combinare con cosa (nella musica dovete pensare alla melodia o al tempo, mentre nella programmazione c'è la sintassi, ma anche lo stile). il risultato è comunque qualcosa di unico! certo a meno che non ci sia plagio.. ma questo accade anche nella musica :asd:

D4rkAng3l
20-10-2006, 18:15
Infatti... Seondo me programmare deve essere prima di tutto una passione e dopo una fonte di guadagno... Altrimenti chi ce lo fa fare ? Se volevo guadagnare e basta andavo a fare l'avvocato o il notaio :D

quello ovvio ma per darmi stimolo deve essere finalizzata a qualcosa di più impegnativo del classico esercizio fine a se stesso

k0nt3
20-10-2006, 18:27
quello ovvio ma per darmi stimolo deve essere finalizzata a qualcosa di più impegnativo del classico esercizio fine a se stesso
in realtà di solito si fa qualcosa di utile a se stessi, unendo l'utile al dilettevole come si dice. se lo fai come hobby comunque per definizione non è impegnativo, ma è solo un modo di passare il tempo. ad esempio io molto tempo fa ero affascinato dalla grafica tridimensionale nei giochi, e per quel motivo mi sono messo a scrivere un piccolo motore grafico in C++/OpenGL che se lo guardo adesso mi viene da ridere per le soluzioni strampalate che ho usato al tempo, ma allo stesso tempo mi chiedo dove sarei adesso senza aver avuto quell'esperienza (che ritengo ancora adesso molto preziosa). certo era molto impegnativo, ma gli stimoli erano di gran lunga superiori ;) studiare sui libri è una cosa, mentre toccare con mano è un'altra.. quella non te la insegnano all'università.

dierre
20-10-2006, 19:23
quello ovvio ma per darmi stimolo deve essere finalizzata a qualcosa di più impegnativo del classico esercizio fine a se stesso

Gli esercizietti sono finalizzati appunto ad esercitarti. Io non è che mi rilasso facendo esercizietti, faccio dei software che servono a qualcosa.

xglobusx
21-10-2006, 12:10
Se tutti stessero ad ascoltare Fulvio Pierangelini nessuno oserebbe più preparare una cena agli amici.
Il primo programma che ho scritto per uno scopo non didattico serviva a calcolarmi la formazione nel noto gioco online hattrick, fui orgoglioso del mio lavoro per mesi e lo sono tuttora.

TorpedoBlu
21-10-2006, 14:12
:D

Abdujaparov
21-10-2006, 16:21
Personalmente ti consiglio di partire con JAVA, puoi fare un pò tutto, le librerie sono facilissime da consultare, trovi miliardi di esempi, interfaccia grafica semplice stile C# e dato che conosci C# non noterai differenze sintattiche particolari.
Iniziare con il C++ direttamente è dura, meglio farlo se si ha alle spalle un pò di C.
Ciao ciao.