Вот что учишь, то и продолжай учить. Только задания по изученному выполнять не забывай (от знания тех же машин Тьюринга и Поста толку нет, есть толк от понимания как под них составлять программы, от понимания самого принципа работы)
Чтобы научиться программировать надо.... программировать. То бишь практика в первую очередь и очень большое желание делать программы. Вон в школе все делают программы, но не все становятся программистами, так как не становятся математиками, физиками и тд. Так что просто напиши программу по выводу Hello World! и уже можешь сказать, что что-то можешь запрограммировать или создать простейшую программу вывода текста. А для сложных программ часто надо изучить область применение программу, будь то физика, биология или еще чё.
Нужно пытаться решать практические задачки. Самая простая (после helloworld) -- генератор паролей -- задаёте длину пароля, количесто паролей, классы символов, из которых составляются допустимые пароли -- и получаете списочек на экране. Посложнее -- всякие программы сортировки и поиска. Заодно алгоритмы подучите. Ещё сложнее -- динамические структуры данных (очереди, стеки, графы). На графах вообще куча алгоритмов построены, например, алгоритмы обхода графа в ширину и в глубину, поиск кратчайшего расстояния между узлами.