Why do most programming jobs require tool knowledge?