Programator by mel umet skriptovaci jazyk, to je samozrejme silna zbran pro rychly vyvoj, mel by take umet nejake komercni prostredi - dnes tedy Javu nebo .NET, ale zaroven by mel rozumet klasice - cecko, kompilace, linkovani, princip volani funkci operacniho systemu.
Programator, který v rámci své pracovní náplně nepoužívá skriptovací jazyky je umět nemusí, pokud nemusí vyvíjet v komerčním prostředí tak o něm také nic vědět nemusí (proč bych měl proboha .NETit? .NET nemám rád:) etc.
Programátor by měl mít altoritmické myšlení a vědět něco o složitosti. Aby byl dobrý, měl by znát i něco o překladači, kterým se jeho zdrojáky budou překládat. Bohužel je to v současné době právě spíš tak, že lidi se hlavně učí .NET, C#, Eclipse, ale napsat stavovej automat neumí :D