PDA

Visualizza la versione completa : Linguaggio "Base"


davidinho
26-11-2012, 20:59
Ciao a tutti, vorrei iniziare uno studio approfondito che mi porti ad una conoscenza tale da poter iniziare a lavorare immediatamente una volta terminati gli studi, conosco in modo accettabile vari linguaggi: C, PHP, Java, Visual Basic...
La mia prima idea è stata di approfondire un linguaggio in particolare e vedendo le offerte di lavoro ho pensato al Java, ma mi mancano ancora 5 anni al termine degli studi, le cose potrebbero cambiare quindi ho paura di fare una scelta troppo azzardata puntando allo studio di Java, mi chiedevo quindi:
Secondo voi quale potrebbe essere un linguaggio che mi permetta di poter passare con la minor difficoltà possibile ad un altro linguaggio? Piuttosto che il Java potrebbe essere più utile in questo caso lo studio di un linguaggio più "classico" come ad esempio il C++?

Spero di essermi spiegato nel migliore dei modi...

MdE2005
26-11-2012, 22:09
Ignorando il concetto fondamentale che ogni linguaggio (o gruppo di linguaggi) è più adatto e talora indispensabile per la realizzazione di certi tipi di software (per esempio non si più programmare un microkernel in Java o VB..), voglio che ti rimanga un concetto fondamentale: acquisire una capacità di ragionamento logico-matematico congrua e una dimestichezza con tutta la Matematica che ruota attorno all'informatica può richiedere vari anni di studio intenso, applicazione e fatica; i paradigmi e le regolette di un linguaggio di programmazione si imparano in pochi giorni.
Ti posto un link in cui un collega (MAW1968) spiega quali sono le fasi per un apprendimento corretto e per diventare un 'vero' programmatore.

Ioprogrammo.it - Linguaggio (http://www.ioprogrammo.it/4_chiacchiere_in_libertagrave/cosa_scelgo_se_volessi_imparare-t12469.0.html;wap2=+)

infoartenovo
26-11-2012, 22:48
Non ci hai detto che studi stai facendo.

davidinho
27-11-2012, 00:05
sto seguendo il corso di Informatica all'università
leggendo il post di M.A.W 1968 mi sembra di capire che il miglior metodo di studio(almeno dal punto di vista dell'utente) è ripercorrere l'evoluzione naturale dei computer...
Comunque è in parte lo stesso percorso che si tenta di seguire durante i corsi universitari, unico dubbio è che in quel post è scritto "programmazione in assembly su baby CPU a 8 e 16 bit", io le basi dell'assembly(su architettura MIPS) le conosco già, e conosco anche più o meno come funziona un processore(sempre architettura MIPS), può tornare utile approfondire o mi conviene passare avanti?

infoartenovo
27-11-2012, 09:59
Carissimo, cerco di darti il mio parere, anche se ciò mi fa sentire vecchio :( .
Attualmente, anche a seguito dell'adozione sempre più diffusa della metodologia Agile nelle sue varie declinazioni, il profilo più ricercato è quello dell'analista-programmatore e il trend sembra essere questo.
Quindi, io mi costruirei un buon bagaglio di metodologie di analisi dei requisiti e gestione dei rischi. Sono a conoscenza di interessanti interazioni tra il mondo accademico e il mondo Rational (adesso di proprietà di "mamma" IBM) per l'approfondimento e l'adozione del RUP (Rational Unified Process) e quindi l'UML 2.0 già dagli studi universitari. Informati se la tua facoltà ha in essere questa collaborazione e cerca di entrare nel gioco. Se nella tua facoltà ci sono opportunità di approfondire metodologie Agili non mancare di approfittarne.
Per quanto riguarda la Programmazione, vale l'assioma:

"Algoritmi + Strutture Dati = Programmi" (Autore: Niklaus Wirth, Editore: Tecniche Nuove, ISBN: 88-7801-259-6, 1987
Ovvero, approfondisci lo studio degli algoritmi e delle strutture dati e non avrai enormi difficoltài a passare da un linguaggio all'altro e, se non lo faranno già i tuoi docenti, datti degli obiettivi sempre più sfidanti e rimani aggiornato su quello che succede nel mondo.
In ultimo, due cose:
impara bene l'inglese e, se puoi, un'altra lingua (Cinese, Spagnolo o Portoghese);
e non dire mai, non lo dovresti nemmeno pensare se è possibile: "Io conosco abbastanza bene questo o quel linguaggio o questo o quell'argomento". Questo approccio blocca il processo dell'apprendimento. Cerca di rimanere sempre insoddisfatto e non ti accontentare mai.
Spero di non avere annoiato te e gli altri lettori. D'altra parte, si sa, gli anziani tendono ad essere prolissi e noiosi :)

ZioLuffio
27-11-2012, 13:03
Ciao. Se conoscessi approfonditamente il C allora saresti a cavallo, perché ritengo che sia il linguaggio che aiuta meglio a capire come programmare e che mette le basi per la programmazione ad alto livello.

Poi l'Assembler aiuta a capire come agisce esattamente un processo a livello macchina. Da noi ci insegnano l'assembler dell'8086 (16 bit).

Concordo a pieno con infoartenovo, stupenda la sua citazione "Algoritmi + Strutture Dati = Programmi" :unz: , infatti se conosci gli algoritmi maggiormente utilizzati tutto il resto va da sé, altrimenti è come andare da Torino a Milano passando per Napoli ( <- es. di non-ottimizzazione :fagiano: ), ché poi in tutti i linguaggi di programmazione gli algoritmi sono sempre gli stessi, cambiano solo le strutture dati e il modo nel quale vi si accede :) .

Ecco, ti ho fatto il riassuntino della questione :D

MdE2005
27-11-2012, 13:44
Originariamente inviato da davidinho
sto seguendo il corso di Informatica all'università
leggendo il post di M.A.W 1968 mi sembra di capire che il miglior metodo di studio(almeno dal punto di vista dell'utente) è ripercorrere l'evoluzione naturale dei computer...
Comunque è in parte lo stesso percorso che si tenta di seguire durante i corsi universitari, unico dubbio è che in quel post è scritto "programmazione in assembly su baby CPU a 8 e 16 bit", io le basi dell'assembly(su architettura MIPS) le conosco già, e conosco anche più o meno come funziona un processore(sempre architettura MIPS), può tornare utile approfondire o mi conviene passare avanti?

Dipende molto da ciò che vuoi fare 'da grande': se sei interessato a diventare un programmatore di sistemi critici devi necessariamente seguire le indicazioni fornite nel post citato, altrimenti puoi seguire un percorso più soft dedicandoti quindi alla programmazione desktop o web. Un aspetto comunque da considerare - valido anche per discipline non ingegneristiche come l'architettura, la medicina, la giurisprudenza - è che gran parte delle competenze vengono acquisite durante i primi anni di lavoro (ovviamente se l'azienda prevede un certo grado di formazione interna) per cui la tua formazione dipenderà molto dalla tipologia di ambiente lavorativo in cui ti inserirai.

davidinho
27-11-2012, 14:53
Ho trovato alcune cose che non conosco in questa discussione quindi ho tentato di documentarmi, se ho capito bene...
La metodologia Agile è una metodologia di sviluppo che ha come punti fondamentali la diretta interazione con il cliente e il rilascio del software in via di sviluppo mano a mano che si procede, non attendendo quindi lo sviluppo completo
L'analista-programmatore non è altro che un programamtore che si occupa anche del colloquio con il cliente per capire quale problema bisogna risolvere e riporta poi tutto agli altri programmatori.
Sono giuste queste due brevi spiegazioni?


Per quanto riguarda il diventare programmatore di sistemi critici sinceramente non è proprio il mio sogno, anche se con gli studi universitari mi sto rendendo conto che con l'esperienza inizio a vedere molte cose sotto un punto di vista diverso, quindi mai dire mai...



Comunque riassumendo un buon percorso di studi potrebbe essere quindi:
1-capire abbastanza bene come funziona un computer(per cui anche l'assembly)
2-Studiare in breve come un SO si occupa della gestione della memoria e dei processi
3-Studiare strutture e algoritmi piu comuni
4-Passare ad uno studio approfondito della OOP

Avrei già dei libri che penso possano tornarmi utili per i punti 1, 2 e 3:
"Computer Organization And Design: The Hardware/Software Interface" Patterson, Hennessy
"Operating Systems: Internals and Design Principles" Stallings
"Introduzione agli algoritmi e strutture dati" Cormen, Leiserson, Rivest, Stein

potrebbe andar bene?


Comunque intanto cerco anche di informarmi riguardo eventuali approfondimenti che offre la mia università

infoartenovo
27-11-2012, 15:34
Ecco, vedere le opportunità che offre la tua facoltà/università è strategico.
Ultima riraccomandazione: non trascurare, per nessun motivo, lo studio della lingua Inglese. Ciao

davidinho
29-11-2012, 00:46
Originariamente inviato da infoartenovo
Ecco, vedere le opportunità che offre la tua facoltà/università è strategico.
Ultima riraccomandazione: non trascurare, per nessun motivo, lo studio della lingua Inglese. Ciao si per l'inglese non credo di essere messo molto male, insomma per ora riesco a studiare senza troppi problemi(a parte ogni tanto qualche termine che non conosco) da libri in inglese, ammetto però di non essere in grado di elaborare un discorso, spero di riuscire a migliorare nel futuro prossimo

Comunque ripeto, pensate che il percorso di studi riassunto nel mio post precedente possa andare bene? altrimenti cos'altro mi consigliereste di aggiungere(o eventualmente cosa levare)?

Loading