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