Ja też uczyłem się sam.
Ale to jest tak, że bardzo dobrze jest mieć mentora na starcie - głównie po to, żeby pokazał, że programowanie nie gryzie. Dobrze znam to uczucie, kiedy patrzę na cztery linijki kodu, a nie rozumiem ani jednej. A dobry nauczyciel potrafi opisać je w dwóch zdaniach.
W moim przypadku nie było mentora, ale był gość podrzucający pomysły w stylu: "słuchaj, a nie myślałeś o zaprogramowaniu...". Ale prawda - czasem mu odmawiałem, bo pracowałem nad czymś swoim.
Co do kursów: robię aktualnie kurs Pythona w realu (znajomy znajomego...), a podstawy to oczywiście edX