I'm undergrad in comsci and I think enrolling in that course is the better way to learn the programming.. Actually, some teacher is not really good.. Wherein they will just discuss it in a simple way.. And I'm getting mad on them.. But one thing I learned is making friends with your classmate then try to ask to them and put in practice..
You can also learn it by searching through net or reading in books.. BUT practice is really important to test out if your getting it in the right way.
Actually this coming may I'm going to continue my studies.. And it's time to work my brain again and dealing with many codes..
You can try to join in forums who have a programming topic..