Best sources are books but we can also learn programming through some good websites like CodeAcademy, Coursera, edX, Code Avengers, Tutorials point, W3Schools etc .
My personal recommendation is to go with books as well as these websites along with an android app Sololearn.