Я знаю двух хороших программистов, один закончил ПТУ в Краснодаре, второй школу в Узбекистане и какой-то радиотехнический факультет (с минимальным конкурсом при поступлении). И тоже востребованные программисты. Я считаю определенный уровень данных в человека заложен природой. Его можно слегка раскачать постоянными тренировками ( уроками, задачами). Но это будет очень одностороннее натаскивание, которое при первой же возможности забудется как ненужное. Олимпиадные задачи на постоянной основе в жизни решает, пожалуй, узкий круг преподавателей, которые эти задачи составляют и натаскивают детей. Всем, кто выберет в жизни другую стезю эти умения не пригодятся.