Лучше брать известные open-source программы от вменяемых разработчиков (Google, например) и разбираться в их устройстве. Писать свой код как можно больше, реализуя любые задачи что попадутся под руку.
А уже потом, обладая знаниями и/или зная точно что искать, можно приступать к чтению книг по программированию, если они вам понадобятся.