I third NorthGuy's comments! In addition to studying various MCUs, study standard programming algorithms and program them yourself. There are many books and internet resources that describe common algorithms you should know and be comfortable with. I took a course in the subject years ago and my company had internal training brought in on the same subject.
Find yourself a problem to solve. It's a lot easier to stay motivated if you are doing something which has a meaningful end result. It's fine to start with flashing LEDs and the like but program a maze solver or a robot or a software radio or whatever grabs you interest.