batonski, программирование - это способность думать. Составлять алгоритмы. Для программирования драйверов, а так же: баз данных, игр, графических интрефейсов, мультимедиа и тд, необходимо ещё, дополнительно к умению программировать, знать: математику, психологию, операционные системы, компьютерное железо и тд. и тп В зависимости от области специализации.
И я бы не сказал, что программирование, например, БД намного проще драйверов, или компьютерного моделирования реальных процессов. Просто каждая область требует своих специальных знаний. В каждой из них есть свои заморочки. Поэтому начинай с программирования, английского да русский на забывай (твой пост #4)