Per iniziare con la programmazione del sistema? [chiuso]

7

Da quando ho scoperto la programmazione cinque anni fa, ho fatto un sacco di cose. Ho imparato numerosi linguaggi e tecnologie di programmazione e ho provato molte cose interessanti. Ho scritto giochi, sia su console che con grafica, console e applicazioni con finestre che girano sul desktop, applicazioni web CRUD, il mio (schifoso) database di file flat basato su XML PHP. Oltre al Web e al desktop, ho provato lo sviluppo mobile con Android ma non mi è piaciuto, quindi l'ho interrotto. Ho appena finito un mio progetto Web e sto imparando la programmazione funzionale proprio ora (Haskell).

Ma non mi sono mai dedicato alla programmazione di sistema prima d'ora. L'idea di costruire software (non sono nemmeno sicuro se questa è la terminologia corretta da usare per questo) a un livello basso che interagisce con il sistema operativo sembra interessante. Il problema è che non sono sicuro di come esattamente iniziare, e ho bisogno di più esempi di ciò che faccio con questo.

Devo iniziare imparando l'API Win32? Conosco un C ++ come l'ho usato per creare alcune app e giochi per console, ma non l'ho usato in pochi anni. E 'la strada da percorrere? Inoltre, che dire di C? Sto pensando di saperne di più su C (usando il libro di K & R) prima che finisca l'estate e inizi il college. Voglio iniziare bene come matricola del college con un solido background di programmazione.

    
posta Ryan 16.07.2011 - 05:43
fonte

3 risposte

6

The idea of building software (I'm not even sure if that's the correct terminology to use for it) at a low level that interacts with the operating system seems interesting.

Credo che stai ricevendo programmazione di sistema confuso con sviluppo di applicazioni . La programmazione del sistema sarebbe più simile a scrivere il sistema operativo, senza interagire con esso. Probabilmente suggerirei di iniziare con lo sviluppo di applicazioni regolari (su Windows che sarebbe il WinAPI ), quindi passare all'esplorazione di sottosistemi trovi interessante in profondità.

K & R è ovviamente la guida definitiva su C, e se hai intenzione di scegliere come target le applicazioni Windows ti consiglio vivamente di raccogliere una copia di Programmazione di Windows .

Se sei veramente interessato alle interazioni di "basso livello", ti suggerisco anche di l'assemblaggio di Win32 Assembly di Iczelicon (< a href="http://www.masm32.com/"> MASM è fantastico, ed è anche gratuito).

Se riesci a cogliere anche solo una minima parte di queste informazioni prima del tuo primo anno di college, sarai più avanti di anni luce di quasi tutti gli altri.

    
risposta data 16.07.2011 - 06:08
fonte
10

Considera di scrivere un piccolo progetto incorporato su un controller integrato come Arduino. Questo è un ottimo modo per iniziare il processo dei sistemi di apprendimento programmazione, perché ti fa iniziare a un livello base e ti consente di svilupparlo.

    
risposta data 16.07.2011 - 05:46
fonte
4

Se ti interessa la programmazione dei sistemi, niente batte effettivamente lavorando su un sistema operativo (o sul nucleo del kernel del sistema operativo o sui relativi driver di dispositivo)

Suggerirei quindi di essere coinvolto nello sviluppo di Linux: è una comunità molto buona per conoscere gli interni del sistema operativo. Ho imparato moltissimo sui sistemi operativi semplicemente seguendo gli elenchi di discussione di linux-kernel ....

È anche un'opportunità per intraprendere un progetto tangibile e migliorare le tue capacità. Come reclutatore di sviluppatori di software, prendo atto di un reale preavviso quando qualcuno ha contribuito a un progetto open source: è quasi sempre un indicatore positivo di abilità e impegno!

    
risposta data 16.07.2011 - 14:07
fonte

Leggi altre domande sui tag