Apprendimento delle lingue di alto livello [chiuso]

5

Ho programmato attivamente con il montaggio ma ora sto perdendo motivazione. La mia produttività è semplicemente ridicolmente bassa rispetto a quella che gli altri sembrano avere con linguaggi di alto livello.

So che dovrei iniziare a utilizzare i linguaggi di alto livello ma tornerò sempre all'assemblaggio per qualche motivo. Come potrei abituarmi ai linguaggi di alto livello e finalmente diventare produttivo? Vorrei davvero dominarne almeno uno.

    
posta 0xHenry 17.01.2011 - 11:55
fonte

7 risposte

13

Forse iniziare con C. C è noto per essere "più vicino all'hardware" rispetto ad altri linguaggi di livello superiore, quindi sarebbe come immergere l'alluce nell'acqua per abituarsi ad esso senza saltarci dentro.

Modifica

Un altro punto da notare, è che C consente anche l'assemblaggio in linea. In modo che tu possa ancora codificare in assembly solo se è richiesto.

    
risposta data 17.01.2011 - 12:09
fonte
2

Scegli una lingua e poi segui il piano a 11 passaggi .

Nel complesso, un linguaggio di alto livello ti fornirà molta produttività semplicemente perché fornisce un livello così alto di astrazione. Ciò ti consente di sfruttare il lavoro degli altri in un modo più efficiente di quello che probabilmente troverai nelle lingue di livello inferiore.

Il lato negativo di questo è che apparentemente sacrifichi le prestazioni di runtime per aumentare la produttività degli sviluppatori (vedi Ruby come esempio). Tuttavia, in questi giorni di macchine estremamente potenti questo argomento è quasi completamente non valido . Permetterò che alcuni casi limite estremi (algoritmi di trading ad alta frequenza, architetture di supercalcolo massivamente parallele, ecc.) Rimangano poiché non rappresentano le solite applicazioni che gli sviluppatori incontrano.

Avere le conoscenze linguistiche di basso livello sarà estremamente utile per te nel dominio del linguaggio di alto livello perché sarai molto più attento a selezionare il meccanismo di archiviazione appropriato per i dati con cui lavorerai. Conoscere il tuo hardware è un requisito importante per gli sviluppatori.

    
risposta data 17.01.2011 - 14:19
fonte
2

Ti suggerisco di dare un colpo Ruby . È una delle lingue popolari, che è diventato il più lontano dalla macchina. Lo trovo molto piacevole e il libro che ho collegato è stato un'ottima introduzione.

Le lingue di alto livello sono spesso disapprovate e alcune persone affermano che dovresti iniziare con linguaggi di basso livello e aprirti la strada.
Sono abbastanza convinto, dovresti farlo al contrario. Le lingue di basso livello ti insegnano come funzionano i computer. Ti insegnano a fornire soluzioni espresse in modo efficace sul computer.
I linguaggi di alto livello si occupano di concetti molto più astratti, cercando di essere più vicini ai modelli di pensiero umano. Così ti permettono di concentrarti sulla modellazione di un dato problema e sulla creazione di soluzioni semplici ed eleganti.
Un problema è definito in termini di vincoli e l'astrazione di quelli lontani, che sono dati dai risultati dell'hardware nel ridurre il problema alla sua vera essenza.

Sto dicendo questo, perché quando ho iniziato con le lingue più alte, mi ci è voluto un po 'per riprendere la testa su molti concetti popolari. Ho cercato di capirli in termini di ciò che avevo imparato prima. Ma quando li guardavo dal lato opposto, sembravano abbastanza naturali. Quindi se inizi con un linguaggio alto, cerca di non classificare tutto ciò che impari in termini di ciò che sai. Considera questo un nuovo inizio.

Ad un certo punto, ti renderai conto, che devi andare al di sotto del livello attuale di astrazione (di solito perché ti manca il controllo o la velocità o entrambi). Questo è il posto giusto per usare le conoscenze che hai dai linguaggi di basso livello.

    
risposta data 17.01.2011 - 13:49
fonte
0

Confrontando la tua produttività sull'assemblaggio con un linguaggio di livello superiore è come paragonare un rullo e un pennello angolare. Sono scopi molto diversi. L'assemblaggio non dovrebbe in genere essere utilizzato ogni volta che è disponibile una lingua superiore.

Non sono sicuro di quale sia il tuo progetto principale per l'assemblaggio, ma so che più basso è il linguaggio, più mi piace perché devi ripetere la più banale codifica. Con un linguaggio di livello superiore puoi concentrarti sulla risoluzione del problema invece di passare il tempo ad aggiungere valori insieme. Ti suggerirei di iniziare a imparare qualcosa come Python, Ruby o Java e anche se all'inizio sembra strano, vai avanti e spingi oltre. Penso che una volta che avrai compreso meglio cosa puoi fare in un linguaggio di livello superiore, il tuo desiderio di assemblare si fermerà.

    
risposta data 17.01.2011 - 13:15
fonte
0

Negli ultimi anni ho rilevato alcune lingue di livello superiore e inizialmente le ho trovate leggermente irritanti perché le cose erano molto complicate e difficili da leggere, dato che ero abituato al codice sequenziale che era molto simile a una dimostrazione matematica. Dopo aver continuamente spinto me stesso, le cose sono scattate ei concetti che rendono i linguaggi di livello superiore ora sembrano intuitivi e le cose sono diventate molto facili da capire. Consiglio vivamente i tutorial per java forniti da Oracle poiché non ti chiedono di fidarti di loro su concetti non supportati (ad esempio, introducendo un concetto mentre ne parli e dicendo "non ti preoccupare più tardi") per la maggior parte limitano la portata delle cose. Detto questo, accettare le cose sulla fede è fastidioso ma fondamentale per molti tipi di apprendimento.

    
risposta data 17.01.2011 - 22:03
fonte
0

Consiglierei Ruby per alcuni motivi. Innanzitutto, è la mia Arma della scelta, quindi sono completamente prevenuto nei confronti di Ruby come lingua. In secondo luogo, Ruby ha una sintassi molto coerente, è stato progettato secondo "il principio della sorpresa minima". Ho trovato, in generale, di essere privo di sorprese. Terzo, puoi scrivere codice procedurale, passo dopo passo in Ruby se vuoi, e gradualmente metterti a tuo agio lavorando in modi diversi. Penso che questo sia uno dei punti di forza di Ruby più forti: è un linguaggio molto profondo con una curva di apprendimento molto superficiale.

    
risposta data 17.01.2011 - 22:15
fonte
-1

Prima apprendi una lingua come C o C ++ che ti aiuterà veramente nell'apprendimento di un linguaggio di alto livello e come ponte tra assembly e linguaggio come C # Se sei interessato alla tecnologia Microsoft

    
risposta data 17.01.2011 - 14:10
fonte

Leggi altre domande sui tag