Dovresti essere a conoscenza di tutti i tipi di processi utilizzati in un pc, della struttura, delle tecniche usate per costruirlo, delle tecnologie implementate per migliorarne l'uso, dei modelli di allocazione della memoria, di tecniche di hacking per poterti difendere proprio da eventuali attacchi oltre che di reverse-engineering, oltre che, ovviamente, dei linguaggi di programmazione ad alto e basso livello (alto livello implicano solitamente programmi che devono essere poi codificati in linguaggio macchina, basso livello vorrebbe dire proprio il linguaggio macchina quale l'Assembly che ti permette di dialogare con le periferiche).
L'inglese va bene ma per l'Assembler (che in sostanza è il programma che traduce il linguaggio Assembly) o l'hacking te ne faresti poco. Considera poi che un Linguaggio di Programmazione, qualunque esso sia, deve avere rispettate funzioni di logica e di struttura per permettere di ottenere il miglior risultato col minimo sforzo (nei termini di programmazione questa si dice eleganza del codice) ed inoltre, un programma deve essere integro, cioè privo di bug i quali sono delle eccezioni non previste dalle routine che devono essere comunque messi in preventivo e di norma, isolati ad uno ad uno senza creare buchi di vulnerabilità nel codice stesso per i quali il reverse-engineering, l'hacking basato sullo heap e sullo stack devono perlomeno risultare inefficaci.
Mi fa piacere l'ambizione ma non credi di volare un pò troppo alto?
Un ragazzo di 14 anni in australia ha bucato un sistema di protezione parental-control su internet costato circa 40 milioni di dollari, ne è diventato amministratore in mezz'ora...
E lui non è Bill Gates...
PS in ogni caso nelle comuni aziende saper programmare diventa sempre più irrisorio, esistono script precompilati e lasciano agli altri il compito di fare solo due clic per attivarli, VB è sicuramente un alternativa semplice, orientata ad oggetti che stà diventando di uso sempre più comune, Assembly è decisamente più ostico...