DOMANDA Testo per iniziare architettura degli elaboratori

Pubblicità

Dvorak Tarantino

Utente Attivo
Messaggi
1,184
Reazioni
419
Punteggio
76
Buonasera a tutti, sono circa 3 mesi che vorrei iniziare a programmare, e chiedendo a qualcuno più esperto di me mi è stato suggerito di iniziare con una lettura su architettura degli elaboratori (argomento che tra l'altro mi interessa abbastanza), per poi passare ad Assembly ed infine C e C++, per poi passare ad altri linguaggi.

Mi sapreste consigliare un buon libro sull'architettura degli elaboratori in cui viene spiegato un po' tutto? Non mi interessa avere un riassunto di 50 pagine che poi devo decifrare con fatica, mi piacerebbe che sia spiegato tutto in modo dettagliato e preciso. Vanno bene sia libri in italiano che in inglese.

Avevo già trovato una discussione simile qua nel forum ma risale al 2013 e non so come si siano evolute le cose, così nel dubbio chiedo. Nella discussione si consigliavano principalmente i testi di Patterson e soprattutto Tanenbaum.

Grazi per l'attenzione e grazie in anticipo per i consigli
 
Per iniziare a programmare non è necessario comprare un testo di Patterson e/o di Tanenmbaum: sono testi universitari e trattano SOLO l'architettura, niente programmazione se non (cenni di) assembler. Sono testi da 600-700 pagine o più, se non fai l'università non ti servono.

Per iniziare a programmare, riguardo al funzionamento super-basilare del computer, basta e avanza il capitolo introduttivo di qualunque testo di introduzione alla programmazione. Al più trova un po' di dispense sul sistema binario e sul calcolo dei valori di verità. Poi basta.

Riguardo al consiglio che ti hanno dato lasciamelo dire: è ridicolo (prima assembly, poi C, poi C++, poi... poi cosa?)
Ti basta UN LINGUAGGIO, fai esercizi, allenati a codificare, e soprattutto risolvi problemi, questo è ciò che conta. A studiare un altro linguaggio fai sempre in tempo, ricorda che non è studiando 20 linguaggi che diventi bravo anche se vederne più di uno è oggettivamente istruttivo.

Se fai una scuola dove è inclusa la programmazione rimani sul linguaggio che studi a scuola e approfondiscilo più che puoi facendo IL PIU' ESERCIZI POSSIBILE. Se invece non hai questo vincolo, didatticamente parlando suggerisco Java, che non è né il più bello, né il più efficiente prestazionalmente tra i linguaggi moderni; però libera il principianti da alcune serie preoccupazioni (niente gestione esplicita di memoria e/o puntatori) che all'inizio procurano tanti (ma tanti!) mal di testa.
All'inizo ti devi concentrare a risolvere problemi. Quando diventi pratico valuta se proseguire con Java (magari per sviluppare in Android) o se vuoi cambiare linguaggio.
 
Ultima modifica:
Grazie per i consigli, avresti un testo o un sito per iniziare?

Più che imparare un linguaggio in particolare vorrei imparare a "progettare" un programma (passami il termine), nel senso strutturarlo scomponendolo in problemi semplici etc., poi ad imparare linguaggi si fa sempre in tempo, giusto?

Dato che faccio lo scientifico (quarto anno per la precisione) non studio programmazione (anche se il prof di matematica ci ha fatto qualche ora di Qbasic in prima e seconda), ho provato a vedere qualcosina di Java da un mio amico che stava iniziando ma non ci capivo assolutamente niente :asd:
In matematica vado abbastanza bene e mi piace molto la logica, mentre quello che mi piace di meno è la geometria analitica.

Preciso che vorrei iniziare perché tra circa un anno dovrò scegliere un'Università e sono indeciso tra ingegneria informatica, ingegneria elettronica e ingegneria meccanica. Le ultime due sono quelle che mi attraggono di più (anche perché in questi due campi un minimo di esperienza ce l'ho), d'altro canto penso che in futuro (qualche decina di anni) la figura dell'ingegnere informatico assumerà un ruolo sempre più importante, però fino ad ora ho zero esperienza nel campo della programmazione.
 
Rimanendo su Java direi senza dubbio il testo di Savitch: Programmazione di base e avanzata con Java
un testo che parte da zero e pieno di esercizi da fare (e devi farli altrimenti non impari nulla) ed inoltre, caso più unico che raro, davvero ben tradotto.
E' adottato in molti corsi di laurea di informatica/Ingegneria informatica.
Come "ripiego" (si fa per dire) ci sarebbe il testo di Horstmann: Concetti di informatica e fondamenti di Java
Personalmente trovo che quello di Savitch sia più abbordabile, più chiaro e altrettanto completo, mentre quello di Horstmann secondo me va affrontato da persone che già hanno un po' di esperienza.
 
Ultima modifica:
Ovvio che se parti da zero non capisci nulla se leggi il manuale di un linguaggio, che sono fatti per chi sa già cosa voglia dire "programmare", che è poi quello che si impara nei primi corsi dell'Università e negli istituti specializzati. Sapere un minimo di come funzioni un computer aiuta molto, ma basta conoscere la architettura di un computer, senza troppi dettagli. Bisogna poi imparare almeno l'algebra booleana, altrimenti ti trovi in difficoltà appena cerchi di scrivere una istruzione di test condizionale. Sapere un minimo di matematica binaria aiuta, perché ti fa capire come funzioni la matematica di un computer. Poi occorre imparare cosa sia un algoritmo, ossia come "tradurre" la soluzione di un problema in una serie di istruzioni che il computer sia capace di eseguire (indipendentemente dal linguaggio). Infine imparare come "strutturare" i dati, ossia come rappresentarli e memorizzarli. Questo è in pratica il piano di studi base del primo corso di informatica. Ti assicuro, imparare un linguaggio è La parte più facile.
 
Ovvio che se parti da zero non capisci nulla se leggi il manuale di un linguaggio, che sono fatti per chi sa già cosa voglia dire "programmare", che è poi quello che si impara nei primi corsi dell'Università e negli istituti specializzati. Sapere un minimo di come funzioni un computer aiuta molto, ma basta conoscere la architettura di un computer, senza troppi dettagli. Bisogna poi imparare almeno l'algebra booleana, altrimenti ti trovi in difficoltà appena cerchi di scrivere una istruzione di test condizionale. Sapere un minimo di matematica binaria aiuta, perché ti fa capire come funzioni la matematica di un computer. Poi occorre imparare cosa sia un algoritmo, ossia come "tradurre" la soluzione di un problema in una serie di istruzioni che il computer sia capace di eseguire (indipendentemente dal linguaggio). Infine imparare come "strutturare" i dati, ossia come rappresentarli e memorizzarli. Questo è in pratica il piano di studi base del primo corso di informatica. Ti assicuro, imparare un linguaggio è La parte più facile.
Quindi secondo te va bene il libro di Savitch che mi è stato consigliato?

Inviato da Moto G (5) Plus tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 
Ovvio che se parti da zero non capisci nulla se leggi il manuale di un linguaggio, che sono fatti per chi sa già cosa voglia dire "programmare", che è poi quello che si impara nei primi corsi dell'Università e negli istituti specializzati. Sapere un minimo di come funzioni un computer aiuta molto, ma basta conoscere la architettura di un computer, senza troppi dettagli. Bisogna poi imparare almeno l'algebra booleana, altrimenti ti trovi in difficoltà appena cerchi di scrivere una istruzione di test condizionale. Sapere un minimo di matematica binaria aiuta, perché ti fa capire come funzioni la matematica di un computer. Poi occorre imparare cosa sia un algoritmo, ossia come "tradurre" la soluzione di un problema in una serie di istruzioni che il computer sia capace di eseguire (indipendentemente dal linguaggio). Infine imparare come "strutturare" i dati, ossia come rappresentarli e memorizzarli. Questo è in pratica il piano di studi base del primo corso di informatica. Ti assicuro, imparare un linguaggio è La parte più facile.

Quelli da te elencati sono argomenti che vengono svolti al 1° anno del liceo scientifico (poi se l'insegnante non li svolge è un altro "paio di maniche" :asd:), ad esempio nello studio degli insiemi e della logica vengono "introdotte" le proprietà di idempotenza, di assorbimento e le leggi di De Morgan (oltre naturalmente alla commutativa, all'associativa e alla distributiva), seguono poi le proposizioni e i predicati, quindi i connettivi logici (personalmente propongo anche delle analogie con alcuni semplici circuiti elettrici), le tabelle di verità (truth-tables), le equivalenze logiche e così via :sisi:
Vengono altresì proposti sistemi di numerazione in diverse basi con relativi passaggi da un sistema all'altro e relative operazioni :sisi:
Infine vengono introdotti gli algoritmi (generalmente viene adottato un linguaggio di "progetto", cioè la pseudo-codifica), vengono illustrate, se non ricordo male, la parte "dichiarativa" (concetto di "variabile" e concetto di "costante") e quella "esecutiva" (ad es. l'istruzione di "assegnazione"), le principali strutture di controllo, gli schemi di flusso, infine si passa, a discrezione del docente, ad un linguaggio di programmazione vero e proprio (può essere il Pascal come può essere il Visual Basic o un altro ma in genere questi due sono quelli didatticamente più validi) ;)
Ciao, a presto :)
 
... (può essere il Pascal come può essere il Visual Basic o un altro ma in genere questi due sono quelli didatticamente più validi) ;)
Ciao, a presto :)
Scusa, ma direi che Visual Basic "didatticamente" sia un disastro :) lo dice uno che lo usa ancora :) :)
A parte che sia ormai un linguaggio in via di estinzione (non più supportato da Microsoft, usare a proprio rischio e pericolo) sostituto da VB.NET
Favorirei Java.
 
Pubblicità
Pubblicità
Indietro
Top