Uso dell'elettronica nella programmazione [chiuso]

4

Un programmatore deve avere una profonda conoscenza dell'elettronica digitale. V / s teorico pratico. Come quello che ci insegnano al college è piuttosto semplice?

Se sì, allora servono tutti i tipi di programmatori (sviluppatori di software / sviluppatori web / sviluppatori di app) (profonda comprensione), un appassionato di sicurezza (hacker) dovrebbe avere una buona conoscenza dell'elettronica digitale?

    
posta 45hook 28.10.2015 - 22:21
fonte

3 risposte

9

Il mondo informatico è un mondo di livelli.

  1. L'utilizzo dei transistor di fisica dei semiconduttori può essere progettato e realizzato.
  2. Usando i transistor è possibile creare porte logiche.
  3. Usando logiche combinatorie logiche e flip-flop possono essere costruite.
  4. Dalla logica combinatoria e dalle infradito realizziamo sistemi di logica digitale come processori e perhiper
  5. Questi processori interpretano un codice macchina e comunicano con i perpetali attraverso registri mappati in memoria (o occasionalmente si registrano in una "mappa IO" specifica.
  6. Utilizziamo compilatori e sistemi operativi per astrarre i dettagli dell'hardware
  7. Utilizziamo linguaggi interpretati o jit di alto livello con gestione della memoria automatizzata per astrarre ulteriormente le cose.

Qualcuno che lavora in un linguaggio di scripting interpretato troverà le informazioni sulla fisica dei semiconduttori del tutto irrilevanti, ma conoscere uno o due livelli al di sotto del livello su cui stai lavorando è spesso utile per capire perché le cose sono come sono e quali soluzioni sono probabili essere efficiente

    
risposta data 28.10.2015 - 22:46
fonte
1

"comprensione profonda" - no. È utile? - sì. Verrai esposto a algebra booleana e mappe di Karnaugh in particolare, che ho trovato utile. Potrai conoscere veramente, davvero, i tuoi AND e OR, ma non esclusivamente.

    
risposta data 28.10.2015 - 22:29
fonte
0

A seconda dell'esperienza che il programmatore vuole avere la risposta può variare. Se il programmatore è specializzato in driver su hardware specializzato, potrebbe essere necessaria una profonda comprensione. D'altra parte, uno sviluppatore web potrebbe non aver bisogno di approfondire il lato hardware e potrebbe semplicemente usare le astrazioni nella loro carriera.

Ciò che ti viene insegnato all'università dovrebbe darti la possibilità di sapere come imparerai a conoscere un set che potrebbe evolversi nel tempo. Quando viene creato un nuovo hardware, spesso può esserci la sfida di come imparerai i nuovi stili per le cose. Considera come ci sono tanti gesti nello sviluppo mobile che potrebbero non essere esistiti 15 anni fa.

Diverse specializzazioni possono richiedere diversi livelli sarebbe la risposta breve qui mentre mentre può aiutare a conoscere le cose, anche la misura della profondità è importante. Ad esempio, stiamo parlando di progettare CPU e GPU qui o semplicemente di utilizzare ciò che è già in commercio? Che livello di profondità intendi qui? Un dottorato in meccanica quantistica essere necessario o è sufficiente sapere come gli elettroni avrebbero una carica?

    
risposta data 28.10.2015 - 22:34
fonte