masalapianta ha scritto:
dipende, se vuoi solo scrivere software buttati su java (è più utilizzato in ambito lavorativo ed è più portabile di c#); se vuoi imparare a programmare, nessuno dei due (non subito almeno), prima procurati dei buoni testi universitari su architettura degli elaboratori (parallelamente studiati anche un pochino di assembly, non perchè ti capiterà di utilizzarlo per programmare, ma perchè ti fa capire cosa realmente accada quando fai determinate cose in un linguaggio di alto livello), algoritmi e sistemi operativi, poi inizia a studiarti il C, dopodichè passa ad un linguaggio orientato agli oggetti.
La scelta di quest'ultimo dipende fortemente da cosa ci dovrai fare e dove dovrà girare il tuo codice; se devi sviluppare applicazioni in ambiente enterprise la scelta è solo una: java; se devi sviluppare per hobby buttati su python; se devi sviluppare per lavoro in ambiente desktop buttati su c#; se devi sviluppare prevalentemente in ambiente apple, buttati su objective-c; ecc... ecc...
Non credo sia la scelta migliore per iniziare da zero a programmare: si rischia di buttare troppa carne al fuoco secondo me.
Se poi atomix600 ha davvero voglia di impararne di più sul mondo della programmazione e di tutto quel che c'è dietro (e si sconfina anche nell'elettronica), allora l'approccio dal basso che proponi tu è l'ideale; tuttavia, se volesse giusto farsi una base con un qualche linguaggio e "buttare giù" in breve tempo qualche programmino funzionante, farà sempre in tempo a complicarsi la vita in seguito e vedere cosa c'è sotto l'ambaradan o come si tradurrebbe qualcosa che ha già realizzato e funziona in un linguaggio di più basso livello.
Per questo credo gli convenga scegliere come primo linguaggio un linguaggio di alto livello come Python, che non è forzatamente ad oggetti.
Se poi si tratta di conoscenze da mettere su un eventuale curriculum, allora "chi più ne ha più ne metta" e anche l'assembly è ben accetto
masalapianta ha scritto:
Lo studio, iniziando dal più basso livello di astrazione, via via salendo, è fondamentale quando si progetta un'applicazione e si buttano giù gli algoritmi che la comporranno; se non capisci come funzionano le cose, non riuscirai mai a scrivere buoni algoritmi (e ad ottimizzarne l'implementazione, a prescindere dal linguaggio)
Vero... in parte. Oggigiorno, per come la vedo io, gli algoritmi non sono più il "focus" della programmazione.
Certo, sono fondamentali in software che dipendono da calcoli estenuanti (es: software di calcolo scientifico, di simulazione, raytracing ecc.) e la loro efficienza deve essere portata verso il massimo possibile per non perdere anni in computazione; tuttavia, dubito che come inizio atomix600 si ponga subito il problema di scrivere i suoi programmi in maniera ottima e perfettamente efficiente, anche perché è impossibile essendo alle prime armi.