Если учиться программированию, то следует начать с банальной математики и теории алгоритмов, далее уже заниматься дискреткой, матаном и углубленным изучением целевых ОС. Все идеи реализовывать согласно синтаксису выбранного языка, который в должной мере изучается где-то за неделю-две.